Bonjour ou bonsoir,
J'ai une requête fait par l'assistant d'Access qui a besoin de paramètres dont les données viennent directement d'un formulaire (un combobox et deux champs texte formatés pour des dates).
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Boites.ID_Boite, Boites.ID_Projet, Boites.Date_Creation_Boite, Total_Heures.Total_secondes_Saisie, Total_Heures.Total_secondes_Preparation, Total_Heures.Total_secondes_Numerisation, Total_Heures.Total_secondes_CQ, Total_Heures.Total_Secondes_Reprise, Total_Heures.Total_secondes_REF, Total_Heures.Total_secondes_Boite FROM Boites INNER JOIN Total_Heures ON Boites.ID_Boite = Total_Heures.ID_Boite WHERE (((Boites.ID_Projet)=[Formulaires]![F_Createur_Rapport_Direction]![Cmb_Liste_Projets_États].[value]) AND ((Boites.Date_Creation_Boite) Between [Forms]![F_Createur_Rapport_Direction]![Txt_Date_Debut] And [Forms]![F_Createur_Rapport_Direction]![Txt_Date_Fin])) ORDER BY Boites.[No];
Cette requête sort un état (rapport) qui affichera les no de boîtes insi que le temps pour chaque action sur les boîtes. Le temps en secondes est convertis en string format HH:MM:SS (code que j'ai pris sur la F.A.Q.).
J'ai fouillé sur la FAQ et j'ai trouvé ceci...
Perso j'ai pris le bout de code que j'avais commencé et je l'ai modifié... je vous montre cela...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim qdf As DAO.QueryDef Dim rcs As DAO.Recordset ' Référence à la requête Set qdf = CurrentDb.QueryDefs("NomQuery") ' Code qui utilise qdf ' Par exemple qdf.Parameters("NomParamètre") = valeur '<== si requête paramétrée qdf.Execute '<== si requête action Set rcs = qdf.OpenRecordset '<== pour travailler sur les données ' Libération de la référence Set qdf = Nothing
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Function VerifierQteEnregistrementsDansRequetePourRapport(nomRequete As String) As Boolean Dim BD As DAO.Database Dim qdf As DAO.QueryDef Dim RS As DAO.Recordset On Error GoTo erreurFatale ' Référence à la requête Set BD = CurrentDb Set qdf = BD.QueryDefs(nomRequete) Set RS = qdf.OpenRecordset If RS.EOF Then VerifierQteEnregistrementsDansRequetePourRapport = False Else VerifierQteEnregistrementsDansRequetePourRapport = True End If GoTo fermerConnexions erreurFatale: MsgBox "Prob Private Function VerifierQteEnregistrementsDansRapport(nomRapport As String) As Boolean --- N° erreur : " & Err.Number & vbLf & Err.Description GoTo fermerConnexions Exit Function fermerConnexions: Set qdf = Nothing Set RS = Nothing End Function
J'ai ce message d'erreur lorsque je mets le code afin que la fonction soit demandée..
Je suis perdu...
Est-ce que les paramètres dans la requête doit être incluse dans le code DAO de ma fonction ?
Si oui comment je fais pour le between ???? Si vous regardez le code SQL vous verrez ce que les valeurs dans Boites.Date_Creation_Boite seront une date entre dateX et dateY saisies dans un formulaire...
Si je veux faire ce code c'est parce si avec les dates et le ID du projet cela ne retourne RIEN ( 0 enregistrement) alors la commande
me sort un message d'erreur que le docmd.OutPutTp acOutPutReport ne peut sortir le rapport... car 0 enregistrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.OutputTo acOutputReport, "Etat_Liste_Boites_par_Dates_Avec_Parametres__OK", acFormatPDF, Chemin_PDF & "\Rapport des boites crées avec heures effectuées du projet_" & Nom_Projet & "_entre " & D_Date & " au " & F_Date & ".pdf", False
Merci de votre aide et ou éclaircissement.
Partager