E-mail versturen op basis van Query

  • Onderwerp starter Onderwerp starter bvos
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

bvos

Nieuwe gebruiker
Lid geworden
14 okt 2015
Berichten
2
Hallo,

ik heb een database in access 2010 hier wil ik door middel van een formulier een e-mail versturen.
Hier op het forum al de nodige zaken voor gevonden om dit via vba en een button op het formulier te regelen. Echter nu moeten de mail adressen in vba worden ingegeven.

Kan ik het ook zo maken dat de e-mail adressen gevuld worden op basis van een query? nu even genaamd query1

de query die de mail adressen ophaalt heb ik ook reeds, het gaat mij er dus om hoe krijg ik dit in vba juist voor elkaar.

Ik dacht heel simpel door bij .To = Query1 in te vullen maar helaas gaat dat niet goed
 
Volgens mij snap je niet helemaal wat je binnenhaalt als je .To = Query1 invult :). Maar dat kan dus inderdaad niet. Je zult een string moeten maken, waarbij je een recordset opent die je vult met de opgehaalde waarden.
Code:
Sub eMail()
Dim strSQL As String, eMail As String
strSQL = "SELECT * FROM Query1 WHERE ([Email] Is Not Null And Not [Email] = """")"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.RecordCount > 0 Then
       Do Until rs.EOF
            If Not eMail = vbNullString Then eMail = eMail & ";"
            eMail = eMail & rs!eMail
            rs.MoveNext
        Loop
    Else
        MsgBox "Geen email adressen..."
        Exit Sub
   End If
End Sub
 
Ha Octafisch,

bedankt voor de snelle reactie.

Ik heb jou code op de volgende manier samengevoegd.

Code:
Private Sub Knop0_Click()
Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        Dim strSQL As String, eMail As String
strSQL = "SELECT * FROM Query1 WHERE ([Email] Is Not Null And Not [Email] = """")"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.RecordCount > 0 Then
       Do Until rs.EOF
            If Not eMail = vbNullString Then eMail = eMail & ";"
            eMail = eMail & rs!eMail
            rs.MoveNext
        Loop
    Else
        MsgBox "Geen email adressen..."
        Exit Sub
   End If
        .Subject = "Testfile"
        .Body = "Hi! This is a test message"

        '.Attachments.Add "c:\temp\database.mdb"

        .Send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

Als ik nu echter op de knop druk krijg ik eerst het verzoek om een profiel te kiezen in outlook. Kan ik dat ook omzeilen zodat men de keuze niet heeft of hoeft te maken?
 
Laatst bewerkt:
Nog welkom bij HelpMij trouwens :). Zou je je code willen opmaken met de CODE tag? Zoals je kunt zien, is die van mij een stuk leesbaarder als die van jou. Ik doe dat zelf door vóór het begin van de code [ code ] te typen en [ /code ] er achter. Zonder spaties trouwens, want die staan er alleen omdat je anders de code niet ziet :). Je kunt je huidige code gewoon aanpassen met de knop <Bericht aanpassen>.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan