[ Shoyo77 @ 15.01.2008. 21:37 ] @
Pocetnik sam i muci me jedan, verovatno mali problem. Naime kako da pošaljem jedan mail npr. cestitku za novu godinu svim strankama iz tabele? Probao sam sa SendObjekt, ali problem je kako u Bcc ubaciti vise od jednog polja. Verovatno Query, koji ih pokupi iz tabele i... Da ne pametujem -da sam znao ne bih pitao.
[ Scelle @ 16.01.2008. 13:44 ] @
Treba da napravis funkciju koja ce proci kroz citavu tabelu, pokupiti sve e-mail adrese i dodavati ih u string razdvajajuci ih tackom i zarezom (;). Nakon toga ovaj string smjestis u zeljeno polje i gotovo...
[ Shoyo77 @ 17.01.2008. 23:06 ] @
Mislim da nisam dovoljno naglasio da sam početnik. Ako moze molim za primer koda za pravljenje stringa. SendObject znam.
[ lo-community @ 18.01.2008. 07:19 ] @
Ovako
[ nidisa @ 18.01.2008. 08:23 ] @
Recimo da imas tabelu "tblKlijenti" i u tabeli jednu kolonu koja se zove "email". Na dugme u formi kojim pozivas slanje maila za sve klijente uradis sljedece:

Private Sub cmdSendEmail_Click()
Dim strLista As String
Dim rst As DAO.Recordset 'u Tools/References moras da ukljucis opciju MS DAO 3.6
Dim strSQL As String

strLista ="" 'ponistavanje
strSQL = " SELECT * FROM tblKlijenti"
Set rst = CurrentDb().OpenRecordset(strSQL, dbOpenSnapshot)

If rst.RecordCount < 1 Then Exit Sub 'ako ne nadjes ni jednu e-mail adresu u tabeli prekini izvrsenje
rst.MoveLast
rst.MoveFirst
Do While rst.EOF = False
strLista = strLista & rst.Fields("Email").Value & ";"
rst.MoveNext
Loop
Set rst = Nothing
On Error Resume Next
DoCmd.SendObject , , , strLista, "[email protected]", , "Sretna Nova Godina", "Postovani," & vbCr & "U ime nase kompanije i u svoje ime zelim da Vam cestitam nastupajucu 2008 godinu."
End Sub


Ako ti ovo ne pomogne, zakacicu i primjer.

Pozdrav.

[Ovu poruku je menjao nidisa dana 18.01.2008. u 11:52 GMT+1]
[ Shoyo77 @ 18.01.2008. 09:51 ] @
Hvala mnogo, mislim da je to ono sto sam hteo. Probacu kad odem kuci. Mada nema razloga da ne radi. Zaboravio sam na LOOP, i kako da postavim ';'. Javljam posle podne sta sam uradio. Sve sam razumeo osim onog DAO -sta je to t stvari i sta radi? Prvi put sam na ovom forumu i oduševljen sam. Do sad sam sve sam učio, iz helpa, primera u Accessu, kodove sam dobijao tako sto sam makro pretvarao u modul, nikoga nisam imao da pitam. Dve baze su vec u upotrebi, a ja vas tek nasao. Biće tu jos pitanja, brže se uči!
[ nidisa @ 18.01.2008. 10:51 ] @
Citat:
Sve sam razumeo osim onog DAO


Hmm, onako ukratko, Data Access Object (DAO) je jedan od osnovnih nacina pristupa i manipulacije podatcima bilo u Access-u ili u drugim bazam apodataka koje podrzava MS. DAO se najcesce koristi za uredjivanje podataka u tabelama u FrontEnd - BackEnd verzijama baza podataka gdje su tabele linkovane u bazu gdje se nalaze forme.
Meni je to najlakse bilo shvatiti kao DLOOKUP naredbu koja je isto jednostavna za koristiti, ali je prednost DAO to sto mozes i mijenjati a ne samo "povlaciti" podatke iz tabela.

E sad, moj problem je taj sto nisam bas najvicniji objasnjavanju onog sto znam. Nadam se da sam uspio ovo objasniti na najjednostavniji moguci nacin bez da te dodatno zbunim. Mozda je najbolje da ti to malo naucih iz kakvih knjiga od inih strucnjaka koji to objasnjavaju puno bolje nego ja, pa kad malo sazvaces osnove ti se opet javi. Onda ce biti puno lakse.

Za sada je samo bitno da znas da ce ovo raditi samo ako u code odes na meni 'Tools/References' i ukljucis opciju:

"Microsoft DAO 3.6 Object Library"


Ovdje cu samo jos pozvati one koji DAO znaju objasniti puno bolje nego ja da se jave

;-)
[ Shoyo77 @ 20.01.2008. 22:37 ] @
Uz male prepravke kod radi, ali pravi problem kad u polju MAIL nema podataka, kako da izbegnem prazna polja. Hvala.
[ nidisa @ 21.01.2008. 09:17 ] @
Evo, isto je samo jedna mala ispravka:

Private Sub cmdSendEmail_Click()
Dim strLista As String
Dim rst As DAO.Recordset 'u Tools/References moras da ukljucis opciju MS DAO 3.6
Dim strSQL As String

strLista ="" 'ponistavanje
strSQL = " SELECT * FROM tblKlijenti"
Set rst = CurrentDb().OpenRecordset(strSQL, dbOpenSnapshot)

If rst.RecordCount < 1 Then Exit Sub 'ako ne nadjes ni jednu e-mail adresu u tabeli prekini izvrsenje
rst.MoveLast
rst.MoveFirst
Do While rst.EOF = False
strLista = strLista & rst.Fields("Email").Value & "" & ";" 'ovo je u slucaju da nema nista u poljima tabele
rst.MoveNext
Loop
Set rst = Nothing
On Error Resume Next
DoCmd.SendObject , , , strLista, "[email protected]", , "Sretna Nova Godina", "Postovani," & vbCr & "U ime nase kompanije i u svoje ime zelim da Vam cestitam nastupajucu 2008 godinu."
End Sub

[ draganil @ 04.03.2009. 22:38 ] @
kako bi ovaj kod izgledao da treba da se pošalje različit text na različite adrese
[ Scelle @ 06.03.2009. 18:02 ] @
Kako bi izgledalo malo konkretnije pitanje?

Ozbiljno, mogao bi malo da pojasniš šta ti je potrebno. Ti bi da praviš mailing liste?
[ draganil @ 06.03.2009. 18:38 ] @
sorry,
izvorno ova tema tretira slanje emaila iz baze određeni text " sretna nova godina...bla bla" na više adresa. meni je potrebno da na mailove iz baze posaljem obavestenje pojedinačno ali sa drugačijim textom. vidim da ovaj kod izlistava različita imena i tako im se pojedinačno obraća "Postovani," & vbCr & ". ja bih još izvukao podatak u kome ga obavestavam koja mu je nova lozinka, recimo i tako 70 različitih korisnika baze ili npr treba poslati obavestenje korisnicima o dugovanju, gde se dinarske vrednosti razlikuju od korisnika do korisnika u nekoj bazi koja prati plaćanja, itd.
prosto, meni konkretno treba da 70 korisnika obavestim koja im je lozinka za koriscenje nove baze!
mada, možda mi to neće ni trebati jer gledam da napravim formu u kojoj će moći sami da kreiraju svoju lozinku. ako imas nesto o tome bio bih ti zahvalan. by the way, iskoristio sam delimično tvoj kod za pravljenje login forme, samo mi nisu malo jasne grupe ali nemam sada vremena za to jer je rok kratak.
inače, svaka cast za tvoj doprinos ovom forumu!
pozdrav
[ Scelle @ 06.03.2009. 20:46 ] @
Hvala...

Evo ovako: ja sam malo prepravio kod iz ove teme i to u principu radi posao. Međutim, poruke se šalju preko default e-mail klijenta na tvom računaru, tako da on mora biti aktivan prilikom izvršavanja ove komande (neće poslati poruke dok ga ne pokreneš, samo ih smjesti u Outbox). Druga stvar koja ne valja je što za svaku poruku traži potvdu od korisnika, vjerovatno da bi spriječio zloupotrebe. Ovo nikako nije dobro, jer u bazi ima previše adresa na koje treba poslati poruku, pa ako budeš morao za svaku da klikneš na YES.......... Ovo se možda može isključiti u nekim podešavanjima e-mail klijenta (kod mene je MS Outlook), ali ja nisam probao. Šta još.... Ne znam. Poruku prilagodi svojim potrebama, ja sam samo onako stavio nešto bezveze da vidim da li radi.

Evo kako izgleda kod:
Code:
Private Sub cmdPosalji_Click()
Dim email As String
Dim ime As String
Dim pass As String
Dim brojac As Integer
Dim rst As DAO.Recordset 'u Tools/References moras da ukljucis opciju MS DAO 3.6
Dim strSQL As String

email = ""
ime = ""
pass = ""
bojac = 0
strSQL = " SELECT * FROM tblKorisnik"

Set rst = CurrentDb().OpenRecordset(strSQL, dbOpenSnapshot)

If rst.RecordCount < 1 Then Exit Sub 'ako ne nadjes ni jednu e-mail adresu u tabeli prekini izvrsenje
rst.MoveLast
rst.MoveFirst
'Slavko Scekic:
'Prolazi kroz SVE zapise u tabeli tblKorisnik i svima salje e-mail sa trenutnim password-om.
Do While rst.EOF = False
email = rst.Fields("Email").Value
ime = rst.Fields("Ime")
pass = rst.Fields("Password")
If (pass <> "") Then 'Slavko Scekic: Za slucaj da e-mail adresa nije upisana u bazu, nista se nece desiti.
    DoCmd.SendObject , , , email, , , "Tema poruke", "Zdravo " & ime & vbCr & vbCr & "Vas novi Password je " & vbCr & pass, 0
    brojac = brojac + 1
End If
rst.MoveNext
Loop
MsgBox "Broj poslatih poruka: " & brojac, vbInformation, "Poslate poruke"
Set rst = Nothing
On Error Resume Next
End Sub


Evo, na ovoj adresi pise kako se ovo radi mnogo, mnogo elegantnije:
http://www.everythingaccess.co...-mail-Without-Security-Warning
[ draganil @ 06.03.2009. 23:19 ] @
evo tek sad stigoh da pogledam tvoj odgovor. hvala. sutra cu pokusati da ga primenim pa javljam.
odoh na spavanje :)
[ draganil @ 09.03.2009. 20:01 ] @

danas završih slanje emailova, sve je prošlo ok, jeste da je malo smaranje, Outlook-ov alert, ali i to je kraće nego pojedinačno slanje. hvala još jednom.
nešto sam pronašao na netu kako može da se prevaziđe ovaj alert ali nisam imao vremena da primenim pa ko hoće može ovde pronaći http://www.add-in-express.com/...-security-manager-automate.php
pozdrav