Microsoft Office Access
uređuje Branislav Mihaljev, MVP

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Accessu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 Praktikum na Webu
 

E-mail iz baze

Nivo:  NIVO 3 - klinite za objašnjenje


U bazi podataka možete čuvati različite podatke o kontaktima, između ostalog i e-mail adresu na koju možete poslati elektronsku poruku. Za sada smo prilično ograničeni u pogledu izdavanja važećih dokumenata koji moraju biti ručno potpisani i overeni pečatom, te stoga najčešće iz baze generišemo izveštaj koji se štampa i prosleđuje na overu, zatim zavodi u knjigu odlaznih dokumenata, pakuje u koverte i distribuira klasičnom poštom. Tu je i kurir koji odnosi poštu do najbliže ispostave (jedine) pošte, zatim administracija u pošti, njihova distribucija i, na kraju lanca, poštar koji vam donosi dokumenat. Naizgled jednostavan posao zahteva ogromnu administraciju i generisanje velike količine papira sa odgovarajućim sadržajem. Naspram elektronske pošte, troškovi klasične pošte su enormni, dok ovaj predugački uvod demonstrira predugački i neefikasni proces distribucije dokumenta i angažovanje velikog broja ljudi (urednik sajta dopisuje: jedino nam u ovom primeru nedostaje ispijanje enormnih količina kafe za koje vreme se ne radi ništa drugo; mi uz kafu uvek i radimo. Ovo sam dopisao samo zato da bi uvod bio još duži).

Uporedite klasičnu poštu sa elektronskom: ukoliko dovoljno automatizujete distribuciju elektronskih dokumenata, ona se svodi na par klikova mišem i veoma kratko vreme na vezi ka Internetu. Takav dokument stoji na raspolaganju primacu praktično onog trena kada ste poslali poruku, pri čemu su troškovi skoro zanemarljivi. doduše, preostaje pitanje da li je zaista račun rađen na računaru punovažan bez pečata i potpisa, ali time se ovog časa ne bavimo. Mi ćemo se pozabaviti tehničkim aspektom ovog pitanja - kako poslati e-mail iz baze podataka.

Prvi i najlakši način je da upotrebite noviju tehnologiju pod nazivom "pametne oznake" (Smart Tags) i pridružite odgovarajuću oznaku polju forme na kome se nalazi e-mail adresa. Da bi takva oznaka bila u funkciji, neophodno je da je imate instaliranu, što možete učiniti sa stranice Microsofta. Otvorite formu u dizajn-pogledu, izaberite listu osobina polja i kliknite na dugme ... pored osobine Smart Tags (poslednja u listi), a zatim na dugme More Smart Tags. Ovim postupkom ćete proslediti e-mail adresu vašem programu za elektronsku poštu i omogućiti korisniku da popuni ostala polja, eventualno priključujući elektronski obrazac uz poruku.

Proces možete dodatno automatizovati upotrebom komande DoCmd.SendObject, koja omogućava da unapred zadate parametre poruke kao što su CC i BCC adrese, naslov poruke, tekst poruke i izveštaj koji ćete priključiti poruci. Većinu ovih parametara možete programski kontrolisati i menjati ih u zavisnosti od primaoca, tako da se po potrebi menja sadržaj naslova i propratni tekst poruke. Generički izgled ove komande je ovakav:

DoCmd.SendObject acSendReport, "rptReport", , _
"mail@mail.com", "mail_cc@mail.com", _
"mail_bcc@mail.com", "Naslov poruke", "Tekst"

Odabir formata izveštaja i poruka pripremljena ovom komandom

Operatoru je posao sada značajno olakšan - preostaje da eventualno promeni tekst poruke (ukoliko predoženi ne odgovara) i da pritisne dugme za slanje poruke. Ujedno primećujete da bi bilo zgodno da Office podržava konverziju izveštaja u PDF format (omogućeno je tek u Officeu 2007), ali i Snapshot format je sasvim zadovoljavajući, jer čuva izgled izveštaja. Primalac mora imati i Snapshot Viewer - program koji omogućava prikaz ili štampu ovakvog izveštaja.

Snapshot Viewer je besplatno dostupan na sajtu Microsofta.

Daleko veću fleksibilnost u načinu kreiranja i izgledu poruke omogućava kreiranje poruka upotrebom Outlook biblioteke. Poruku možete oblikovati primenom HTML formata, a možete koristiti i unapred kreiran obrazac. Obrazac ćete kreirati u Wordu: formatirajte telo poruke koristeći dostupne alatke u Wordu i sačuvajte sadržaj kao Web stranicu (Web Page). Word će kreirati datoteku sa ekstenzijom HTM, a vama preostaje da u VBA programu referencirate putanju i naziv ove datoteke.

Pre nego što započnete programiranje e-mail sistema u Accessu, pređite u VBE (Alt+F11) i otvorite dijalog komandom menija Tools / References. Pronađite u listi biblioteku pod nazivom Microsoft Outlook 11 Object Library i uključite je. Ovu biblioteku nećete pronaći u listu samo u slučaju da niste instalirali Outlook. Doduše, ne bi imalo smisla kreirati poruku upotrebom Outlooka ako ga nemate instaliranog.

Osim pomenutih osobina, svakoj poruci možete priključiti više datoteka, pri čemu način njihovog izbora zavisi od vaših potreba. Da li će to biti po nazivu datoteka (program će proći kroz folder i priključiti sve koje su imenovane na određeni način) ili ćete korisniku omogućiti da sam sastavlja listu datoteka, svejedno je. Ekran za generisanje ovakvih poruka, upotrebom svih dostupnih osobina ove datoteke, može da izgleda ovako:

Klikni za punu sliku

Generički program za slanje poruka nalazi u poslednjem listingu. Iz programa su isključeni moduli za tretiranje grešaka i deo programa koji je zadužen za priključivanje više datoteka poruci. Predzadnja linija označava da li će poruka biti poslana odmah (.Send), da li će biti prikazana pre slanja (.Display) ili će biti sačuvana u Draft folderu (.Save).

Primer Access forme za generisanje e-mail poruke

Dim objApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecipient As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment

Set objApp = CreateObject("Outlook.Application")
With objOutlookMsg
  Set objOutlookRecipient = _
.Recipients.Add(EmailAdresa)
  objOutlookRecipient.Type = olTo
  Set objOutlookRecipient = _
.Recipients.Add(EmailCCAdresa)
  objOutlookRecipient.Type = olCC
  Set objOutlookRecipient = _
.Recipients.Add(EmailBCCAdresa)
  objOutlookRecipient.Type = olBCC
  .Subject = strSubject
  .HTMLBody = "<html><body> " & strMessage & _
" </body></html>"
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set objOutlookAttach = _
.Attachments.Add(Datoteka)
  .Send    ' opcije su .Display i .Save
End With

Generički program za slanje e-mail upotrebom Outlooka

Function SendOutlookMessage( _
  bolSendSave As Boolean, _
  strEmailAddress As String, _
  strEmailCCAddress As String, _
  strSubject As String, _
  strMessage As String, _
  blnDisplayMessage As Boolean, _
  Optional strEmailBCCAddress As String, _
  Optional strAttachment As String)

' "blnDisplayMessage" parametar određuje da li će poruka
' biti sačuvana u Outbox folderu (False) ili će biti
' prikazana na ekranu (True). Korisnik treba da pritisne
' taster Send da bi poslao poruku

Dim objApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecipient As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
Dim blnOutlookInitiallyOpen As Boolean
Dim strProcName As String
Dim strFile As String

On Error Resume Next
strProcName = "SendOutlookMessage"

blnOutlookInitiallyOpen = True
'Set objApp = GetObject(, "Outlook.Application")
Set objApp = CreateObject("Outlook.Application")

If Err <> 0 Then Beep: _
  MsgBox "Error in " & strProcName & " (1): " _
    & Err.Number & " - " & Err.Description: _
  Err.Clear: _
  GoTo Exit_Section

'Kreiranje poruke
Set objOutlookMsg = objApp.CreateItem(olMailItem)
If Err <> 0 Then Beep: _
  MsgBox "Error in " & strProcName & " (2): " _
    & Err.Number & " - " & Err.Description: _
  Err.Clear: _
  GoTo Exit_Section

With objOutlookMsg
  Set objOutlookRecipient = .Recipients.Add(strEmailAddress)
  objOutlookRecipient.Type = olTo
  If strEmailCCAddress = "" Then
  Else
    Set objOutlookRecipient = .Recipients.Add(strEmailCCAddress)
    objOutlookRecipient.Type = olCC
  End If
  If strEmailBCCAddress = "" Then
  Else
    Set objOutlookRecipient = .Recipients.Add(strEmailBCCAddress)
    objOutlookRecipient.Type = olBCC
  End If
  .Subject = strSubject
  .HTMLBody = "<html><body> " & strMessage & " </body></html>"

  'Dodavanje datoteke
   Set objOutlookAttach = .Attachments.Add(strAttachment)

  If blnDisplayMessage Then
    .Display
  Else
    '* Send message by putting it in the Outbox
    If bolSendSave = True Then
      .Send
    Else
      .Save
    End If
  End If
End With

If Err <> 0 Then Beep: _
  MsgBox "Error in " & strProcName & " (99): " _
    & Err.Number & " - " & Err.Description: _
  Err.Clear: _
  GoTo Exit_Section

Exit_Section:
  On Error Resume Next
  If Not blnOutlookInitiallyOpen Then
    objApp.Quit
  End If
  Set objApp = Nothing
  Set objOutlookMsg = Nothing
  Set objOutlookAttach = Nothing
  Set objOutlookRecipient = Nothing
  On Error GoTo 0
End Function

 

  (C) 2000-2010 Praktikum na Webu

PC 127


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana.