Verzenden en printen rapport met een knop

Status
Niet open voor verdere reacties.

SignaL

Gebruiker
Lid geworden
15 mrt 2013
Berichten
7
Met een knop heb verzenden van rapport gemaakt met een tabel met email en klantnummer veld. Dit werkt, maar nu wil ik ook voor de klanten die geen email hebben hun rapport laten printen. Dus het mailadres ontbreekt in de tabel. Verder wordt het voor het laatste mailadres nu niet verzonden.De opdracht eindigt na het verzenden van het voorlaatste mailadres. Kan iemand mij helpen? Bij voorbaat mijn dank.
 

Bijlagen

Ik zou in ieder geval de optelvariant vervangen door deze:

Code:
strSQL = "SELECT * FROM tblEmail WHERE ([Email] Is Not Null)"
With CurrentDb.OpenRecordset(strSQL)
    'Records doorlopen, en rapport voor elk record instellen en mailen
    .MoveLast
    .MoveFirst
    iAantal = .RecordCount
    If iAantal = 0 Then Exit Sub
    
    Do While Not .EOF
        DoCmd.OpenReport sRapport, acViewDesign, , , acHidden
        sTabel = Reports(sRapport).RecordSource
        If InStr(1, UCase(sTabel), "WHERE") > 0 Then
            strSQL_Rapport = Left(sTabel, InStr(1, sTabel, "WHERE ") - 1)
        Else
            If InStr(1, UCase(sTabel), "SELECT") = 0 Then
                If InStr(1, sTabel, " ") > 0 And InStr(1, sTabel, "[") = 0 Then
                    sTabel = "[" & sTabel & "]"
                End If
                strSQL_Rapport = "SELECT * FROM " & sTabel & " "
            Else
                strSQL_Rapport = sTabel
            End If
        End If
        'Extra loopje, om de punt-komma's te verwijderen.
        Do Until Right(strSQL_Rapport, 1) <> ";"
            strSQL = Left(strSQL_Rapport, Len(strSQL_Rapport) - 1)
        Loop
        'Klantfilter op rapport zetten
        sFilter = " WHERE (Klantnummer =" & !KlantID & ");"
        strSQL_Rapport = strSQL_Rapport & sFilter
        Reports(sRapport).RecordSource = strSQL_Rapport
        DoCmd.Close acReport, sRapport, acSaveYes
        'Controle of een mailadres aanwezig is
        'Factuur verzenden
        DoCmd.SendObject acSendReport, sRapport, acFormatSNP, !Email, , , "Van Zomerschool voor " _
        & !Volledigenaam, " Hierbij het bericht voor uw activiteit(en) Zomerschool 2013", True
    .MoveNext
    Loop
    .Close
End With
Door de string te filteren op email adres, heb je alleen nog geldige email adressen. Voor het printen kun je een aparte knop maken, die omgekeerd filtert, dus op ontbrekende email adressen. Omdat een rapport zowiezo in zijn geheel wordt afgedrukt, hoef je alleen de Recordbron aan te passen, en een print commando te geven.
 
Hallo Michel,
Bedankt voor de aanpassing voor het tellen. Ik nog 'n oplossing gevonden voor de enkele knop actie. Ik heb in de emailtabel een veld erbij gezet met 0 en 1 en 1 is record met mailadres. Het werkt voor mij naar tevredenheid. Nu verder met ClikYes.

Groet,

Leo
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan