Famille de systèmes de gestion de bases de données relationnelles Microsoft conçus pour être faciles à utiliser.
Essaie
Private Sub CmdEnvoiConvocation_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim rs As DAO.Recordset
Const sReportName = "Convocation"
On Error GoTo Error_Handler
Set db = CurrentDb
Set qdf = db.QueryDefs("convocationvmai")
For Each prm In qdf.Parameters
prm = Eval(prm.Name) 'ne change pas ceci, aucun besoin.
Next prm
Set rs = qdf.OpenRecordset
With rs
If .RecordCount <> 0 Then
Do While Not .EOF
DoCmd.OpenReport sReportName, acViewPreview, , "[ID]=" & ![ID] '*********
DoCmd.SendObject acSendReport, sReportName, acFormatPDF, ![email], , , "Convocation", _
"Bonjour," & vbCrLf & vbCrLf & "Suite à votre inscription, veuillez trouver en pièce jointe votre convocation."
DoCmd.Close acReport, sReportName
.MoveNext
Loop
End If
End With
Error_Handler_Exit:
On Error Resume Next
DoCmd.Close acReport, sReportName
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
If Not prm Is Nothing Then Set prm = Nothing
If Not qdf Is Nothing Then Set qdf = Nothing
If Not db Is Nothing Then Set db = Nothing
Exit Sub
Error_Handler:
If Err.Number <> 2501 Then
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: CmdEnvoiConvocation_Click" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl), _
vbOKOnly + vbCritical, "An Error has Occurred!"
End If
Resume Error_Handler_Exit
End Sub
Et change le filtre "[ID]=" & ![id] pour le nom du champ de ta clef primaire.