groepsmail op basis van een query

Status
Niet open voor verdere reacties.

HankMegens

Gebruiker
Lid geworden
1 sep 2015
Berichten
86
Hallo,

Middels een VBA code (geleend van het internet) maak ik op een formulier een selctie om een groep mesen te selecteren die een mail moeten ontvangen.
Echter dit werkt niet.
Om een en ander te onderzoeken heb ik de code aangepast om voor het versturen van de email de query te openen. Dit laatste doet hij wel degelijk, echter vandaaruit krijg ik een foutmelding.

De foutmelding zit op de regel: Set rs = db.OpenRecordset("SELECT voornaam, achternaam, email FROM Qemail") uit de code.

Code:
Public Sub SendgroupEmail()

   
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Dim emailTo As String
    Dim emailSubject As String
    Dim emailText As String

    Dim outApp As Outlook.Application
    Dim outMail As Outlook.MailItem
    Dim outlookStarted As Boolean
        
    
    On Error Resume Next
    Set outApp = GetObject(, "Outlook.Application")
    On Error GoTo 0
    If outApp Is Nothing Then
        Set outApp = CreateObject("Outlook.Application")
        outlookStarted = True
    End If

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT voornaam, achternaam, email FROM Qemail")
    Do Until rs.EOF

        emailTo = Trim(rs.Fields("voornaam").Value & " " & rs.Fields("achternaam").Value) & _
                    " <" & rs.Fields("email").Value & ">"
                    
        emailSubject = "Amazing newsletter"
        If IsNull(rs.Fields("voornaam").Value) Then
            emailSubject = emailSubject & " for " & _
                            rs.Fields("voornaam").Value & " " & rs.Fields("achternaam").Value
        End If
        
        emailText = Trim("Hi " & rs.Fields("voornaam").Value) & "!" & vbCrLf
        
       
        
        emailText = emailText & _
        "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. " & _
        "Maecenas porttitor congue massa. Fusce posuere, magna sed " & _
        "pulvinar ultricies, purus lectus malesuada libero, sit amet " & _
        "commodo magna eros quis urna."

                    
        Set outMail = outApp.CreateItem(olMailItem)
        outMail.To = emailTo
        outMail.Subject = emailSubject
        outMail.Body = emailText
        outMail.Send

        rs.MoveNext
    Loop
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    
    If outlookStarted Then
        outApp.Quit
    End If
    
    Set outMail = Nothing
    Set outApp = Nothing
    
End Sub



Deze code roep ik aan met de VBA code.

Code:
Private Sub onderdeelkeuze_DblClick(Cancel As Integer)

    Me.Requery
    'DoCmd.OpenQuery "Qemail", acViewNormal
    Call SendgroupEmail
        
End Sub

Ik zal hoogstwaarschijnlijk iets over het hoofd zien, maar wat?


Alvast bedankt.

Hank Megens
 
Dat was idd niet zo slim om die er niet bij te zetten.

De melding die ik krijg is:

fout 3061 bij uitvoering:

Er zijn te weinig parameters. Het verwachte aantal is: 1.


Hank
 
Ik herken dit probleem. Had het zelf laatst ook, maar weet er nog geen oplossing voor. De work around die ik uiteindelijk gemaakt heb is om in plaats van (in jouw geval) gegevens te halen uit Qemail, die query hier uit te schrijven.

 
Die code heb je duidelijk niet van mij, dan had-ie wel gewerkt :). Het probleem zit 'm m.i. vooral in je Onderdeelkeuze.

Code:
Private Sub onderdeelkeuze_DblClick(Cancel As Integer)
    Me.Requery
    'DoCmd.OpenQuery "Qemail", acViewNormal
    Call SendgroupEmail
End Sub

1. Waarom een requery?
2. Waarom open je überhaupt die query?
3. 'Call' is al ruim vóór het eerste kabinet Rutte niet meer nodig. Al betwijfel ik of hij dat geregeld heeft :).
4. Waarom een Dubbelklik op het veld/keuzelijst?

Zonder voorbeeldje is het lastig om te zien wat je wilt bereiken, maar het herkennen van het probleem is bij mij dus totaal niet aan de orde. Al stuur ik nooit een mail naar een set messen :d. Maar leg eens uit hoe je aan die selectie van personen komt. En waarom je mail functie zo onlogisch is.
 
Hoi,

1. Mocht ik vanuit het formulier waar ik de groep aan wie ik wil mailen, nogmaals wil gebruiken, voor een groepsmail aan een andere groep, zal ik mijn query toch opnieuw uit moeten voeren?
2. Die query heb ik alleen er in gezet om te kijken of de selectie wel werkte. Deze laat ik nu ook vooraf gaan door een '. Deze open ik dus niet.
3. Als het zonder call kan, haal ik dat wel weg.
4. een dubbelklik op de keuzelijst lijkt me handiger dan een enkele klik.

Wat ik wil bereiken is dat ik een mail aan een groep mesnen kan sturen uit een vereniging. Of het bestuur, of het jeugdorkest of de muziekcommissie.
Ik heb dus een tabel met leden, een tabel met onderdelen en een tabel lidonderdeel want mensen kunnen lid zijn van verschillende onderdelen.
Middels de query selecteer ik dan de juiste mensen die lid zijn van de betreffende groep.

Kan de db niet uploaden.

Hank
 
Ad 1: Nee. Je formulier laat altijd zien wat je gebruikt. Dus als je een andere selectie maakt op je formulier heb je daar de nieuwe selectie staan.
Ad 2: Goed plan :)
Ad 3: Nog een goed plan :)
Ad 4: Dubbelklikken op een keuzelijst is onhandiger als een enkele klik op een keuzelijst. Maakt je keuzelijst alleen maar gebruiksonvriendelijker

Middels de query selecteer ik dan de juiste mensen die lid zijn van de betreffende groep.
Net schreef je dat je dat op een formulier doet. Confused now :confused:.
 
Goedemorgen,

Hierbij de database.

Ik denk dat bij jouw laatste opmerking misschien de oorzaak zou kunnen zijn van het probleem.




Hank
 

Bijlagen

  • ledenadmin.rar
    147,4 KB · Weergaven: 11
Ik heb wat zaken verbeterd, zodat het in ieder geval weer werkt. Kijk maar of je er mee uit de voeten kan.
 

Bijlagen

  • ledenadmin.zip
    108,6 KB · Weergaven: 13
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan