Probleem met scheiding email-adressen

Status
Niet open voor verdere reacties.

Lubbie87

Gebruiker
Lid geworden
16 feb 2009
Berichten
23
Situatie:
Ik heb een doorlopend formulier waarbij ik met behulp van de query "Openstaande Service Mails" kan zien welke klanten nog een email moeten krijgen.
Door op de knop "Verstuur service mails" te klikken wordt een Loop opgestart om alle e-mailadressen in het formulier te kopiëren naar een e-mailbericht.
Ook is er al een standaardonderwerp en tekst geschreven... Dit werkt allemaal naar behoren maar nu mijn probleem:
het scheidingsteken voor de e-mails is nu een komma ( , ) maar in Outlook werkt alleen een puntkomma ( ; ) als scheidingsteken voor e-mailadressen.
Ik heb geen zin om altijd handmatig de komma's te vervangen door puntkomma's. Heeft iemand hier een oplossing voor?

Code:
Private Sub knpVerstuur_service_mails_Click()
Dim rst As DAO.Recordset
Dim strEmailAddress

Set rst = CurrentDb.OpenRecordset("qryOpenstaande Service Mails")

Do Until rst.EOF
  strEmailAddress = strEmailAddress & rst("emailadrs") & ", "
  rst.MoveNext
Loop

strEmailAddress = Left(strEmailAddress, Len(strEmailAddress) - 1)
strSubject = "Onderwerp"
strEmailMsg = "Geachte heer/mevrouw," & vbNewLine & vbNewLine & _
"Tekst regel 1" & vbNewLine & _
"Tekst regel 2" & vbNewLine & vbNewLine & _
"Met vriendelijke groet," & vbNewLine & vbNewLine & _
"Naam"


DoCmd.SendObject , , acFormatRTF, , , strEmailAddress, strSubject, strEmailMsg, True, False

rst.Close
Set rst = Nothing
End Sub
 
Volgens mij kun je in Outlook ook een komma gebruiken; dat kun je instellen. Maar wat is er op tegen om dit (strEmailAddress & rst("emailadrs") & ", ") te vervangen door dit (strEmailAddress & rst("emailadrs") & "; ")?
 
Dat heb ik geprobeerd maar dat werkt niet. Access geeft dan een foutmelding, ik weet niet meer welke. Zal t morgen wel posten...
 
Daar snap ik helemaal niks van, want het enige dat Access doet is een string samenstellen, en of daar nu komma's in zitten of puntkomma's, dat maakt echt niet uit. Ik zou zelf proberen te voorkomen dat er een lege ; of , aan het eind zit, maar zelfs dat mag niet uitmaken. Hoe ziet de string er uit als je hem in een Inputbox afvangt?
 
Hij geeft de melding : "Fout 2295 tijdens uitvoering: De naam van de geadresseerde(n) is onbekend. Het bericht wordt niet verzonden."
Ik zal ff wat prutsen om het proberen op te lossen...

Hmm apart, foutopsporing leidt tot de volgende regel:

Code:
DoCmd.SendObject , , acFormatRTF, , , strEmailAddress, strSubject, strEmailMsg, True, False

Kan het er misschien aan liggen dat er bij sommige records ook geen e-mailadres beschikbaar is?
 
Laatst bewerkt:
Wou je zeggen dat je je query [Openstaande Service Mails] niet filtert op lege email adressen? Dat zou een hoop verklaren.
 
Opgelost

Heb m al opgelost. Had dus inderdaad te maken met ontbrekende e-mailadressen in de query.
Code aanpassing als volgt:
Code:
Do Until rst.EOF
 [COLOR="#FF0000"] If Len(rst("emailadrs") & vbNullString) <> 0 Then[/COLOR] strEmailAddress = strEmailAddress & rst("emailadrs") & "; "
  rst.MoveNext
Loop
 
Wou je zeggen dat je je query [Openstaande Service Mails] niet filtert op lege email adressen? Dat zou een hoop verklaren.

Inderdaad, ik wil ook weten welke klanten een e-mail moeten krijgen maar waarvan geen e-mailadres bekend is zodat die acties open blijven staan en ik ze kan bellen.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan