Jag har en accessdatabas med ett antal personer som ska ha epost. Jag har fått det att fungera att skicka mail från en ASP-sida med CDONTS. Hej Lissu. Hej saw! Jag började med detta på jobbet på en Win XP-maskin med Office XP. Nu sitter jag hemma och testar samma applikation också på en maskin med XP, men de uppträder olika. Du kan ändra denna raden:Mail från Access
Jag har försökt att göra en liknande rutin i Access med hjälp av SendObjects men får det inte att fungera. Det rullar första varvet men inte mer.
I ASP-applikationen var hemligheten
Set objMail = Nothing
för att det skulle fungera.
Jag hittar inte vad jag ska skriva i Access för att få slingan att snurra igenom recordsetet.
Någon som vet? Eller som kanske har en fungerade kod att bjuda på...Sv: Mail från Access
Att det fungerade när du satte in "Set objMail = Nothing" tycker jag låter märkvärdigt, vad den raden gör, är ju helt enkelt att den tar bort objMail ifrån minnet.
Du beskriver inte hur du försöker att göra det ifrån Access, så jag får gissa.
Du har ett formulär, och har lagt in en knapp, och under klick så försöker du skapa i VBA-editorn.
<code>
Set CDOMail = Server.CreateObject("CDONTS.NewMail")
CDOMail.From = 'vem_som_skickat_mailet
CDOMail.To = 'till_vem_som_skall_ha_mailet
CDOMail.Bcc = 'kopia_på_mailet
CDOMail.Cc = 'kopia_på_mailet
CDOMail.Subject = "Här skriver du något trevligt
CDOMail.BodyFormat = 0'ändra till ett om du vill ha HTML-formatering
CDOMail.MailFormat = 0
CDOMail.Body = "Här skall skälva texten in som du vill skicka"
CDOMail.Send
Set CDOMail = Nothing
</code>
Är denna koden till någon hjälp??Sv: Mail från Access
Såg nu att jag nog hade lite för bråttom i mitt inlägg - läste det inte heller tillräckligt noga innan jag skickade ! Fort men fel! :-)
Set objMail = Nothing var nödvändigt INNAN jag loopade tillbaka - tydligen måste det ske för att just ta bort och sedan lägga dit objMail igen... men det funkar och det är ju ok...
Jag tackar för ditt kodexemepel -något liknande har jag också försökt att använda... men Access protesterar mot redan första raden... Server.Create...
Är det något jag måste göra innan dess kanske???Sv: Mail från Access
Jag är inte bra på operativet så jag vet inte om det är där eller i Outlook eller i brandväggen som skillnaden ligger.
Detta är den kod som jag har fått att fungera någorlunda...
<kod>
strÄrende = "Bekräftelse "
strAvs = "info@lissu.nu"
Set dbs = CurrentDb()
strSQL = "qryEposttrue"
Set rst = dbs.OpenRecordset(strSQL)
Do Until rst.EOF
antal = antal + 1
intID = rst!id
'strMottagare = rst!Epost
strMottagare = "lissu@lissu.nu"
strMeddelandeTEXT = "Hej " & rst!förnamn & "!" & vbNewLine & vbNewLine & _
"Du har anmält dig ...........:" & vbNewLine & vbNewLine
DoCmd.SendObject acSendNoObject, , , strMottagare, , , strÄrende, strMeddelandeTEXT, False
rst.MoveNext
Loop
MsgBox "Skickat till " & antal & " st"
</kod>
Dock händer detta när jag kör det hemma: jag får en varning från Outlooka att ett program försöker skicka mail och en fråga om jag godkänner det. Jag måste svara ja för varje mail... inget bra om det är många... Var kan jag ändra.... tro?
Saw's kod fungerar inte hemma heller - på Server får jag Kompileringsfel, odefinierad variabel.
Finns det någon referens jag kan lägga till för att det ska fungera?Sv: Mail från Access
<code>
Set CDOMail = Server.CreateObject("CDONTS.NewMail")
</code>
till:
Set CDOMail = CreateObject("CDONTS.NewMail")
</code>
Orsak:
När du kör Access lokalt, så har du ju ingen server som kan creata några object.