Bonjour,
J'ai un petit problème pour récupérer en VBA un paramètre que l'utilisateur renseigne avant l'exécution d'une requête d'ajout. C'est une date, c'est peut-être de là que viens le problème.
Ma requête est la suivante :
En VBA, j'utilise le code suivant lorsque l'utilisateur clique sur un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PARAMETERS [Date (jj/mm/aaaa) :] DateTime; INSERT INTO Table1 ( Date ) SELECT [Date (jj/mm/aaaa) :] AS Expr1;
Une boite de dialogue s'affiche pour demander une date, qui est rentrée au format dd/mm/yyyy. L'ajout fonctionne bien comme ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Docmd.OpenQuery "MaRequeteAjout", acNormal, acEdit
Pour récupérer ensuite le paramètre qui vient d'être entré, j'utilise le code suivant, juste après l'éxécution de la requête :
La boîte de dialogue me donne "30/12/1899" quelle que soit la date que j'entre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim Qry as QueryDef Dim dtmMaDate as Date Set Qry = CurrentDb.QueryDefs("MeRequeteAjout") dtmMaDate = Qry.Parameters(0) MsgBox Format(dtmMaDate, "dd/mm/yyyy")
Je me suis dit que ça venait du fait que le paramètre n'était pas enregistré, et donc au lieu d'utiliser OpenQuery, j'ai essayé le code suivant :
La boîte de dialogue pour demander le paramètre ne s'affiche plus. A la place, j'ai l'erreur "Trop peu de paramètres, 1 attendu".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim Qry as QueryDef Dim dtmMaDate as Date Set Qry = CurrentDb.QueryDefs("MeRequeteAjout") Qry.Execute dtmMaDate = Qry.Parameters(0) MsgBox Format(dtmMaDate, "dd/mm/yyyy")
Je pourrais contourner le problème en ajoutant un champ "Date" dans mon formulaire, mais cette petite boîte de dialogue est quand même bien pratique.
Une idée pour résoudre ce problème ?
Merci d'avance,
Rozgann
Partager