1 pièce(s) jointe(s)
Vérifier recordcount requête avec paramètres d'un form dans Access
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:
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...
Code:
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 |
Perso j'ai pris le bout de code que j'avais commencé et je l'ai modifié... je vous montre cela...
Code:
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..
Pièce jointe 614284
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
Code:
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
me sort un message d'erreur que le docmd.OutPutTp acOutPutReport ne peut sortir le rapport... car 0 enregistrement.
Merci de votre aide et ou éclaircissement.