|
Microsoft Office Access |
|
|
E-mail iz bazeNivo:
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.
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: 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
|
|
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. |