Famille de systèmes de gestion de bases de données relationnelles Microsoft conçus pour être faciles à utiliser.
C'est par ce que ta requête a des parametres, donc il te faut les évaluer pour fonctionner.
Consulte https://www.devhut.net/2011/11/07/ms-access-vba-run-parameter-query-in-vba/ pour en savoir plus.
Ceci dit, tu peux soit modifier la requête en te servant de Eval() ou le code VBA.
Donc, si on reste avec le code VBA, tu devrais être en mesure de faire quelque chose du genre
Private Sub CmdEnvoiConvocation_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim rs As DAO.Recordset
On Error GoTo Error_Handler
Set db = CurrentDb
Set qdf = db.QueryDefs("convocationvmai")
For Each prm In qdf.Parameters
prm = Eval(prm.Name)
Next prm
Set rs = qdf.OpenRecordset
With rs
If .RecordCount <> 0 Then
Do While Not .EOF
DoCmd.SendObject acSendReport, "Convocation", acFormatPDF, ![email], , , "Convocation", _
"Bonjour," & vbCrLf & vbCrLf & "Suite à votre inscription, veuillez trouver en pièce jointe votre convocation."
.MoveNext
Loop
End If
End With
Error_Handler_Exit:
On Error Resume Next
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