[Requête_VBA_Access] Paramètre ignoré dans une requête
Bonjour à tous!
J'ai fait plusieurs recherches sur les différents forums/FAQ/Sources du site, mais je n'ai pas su trouver de solution à mon problème d'apparence banal mais qui est quand même un peu particuler. :?
Voici ce qui en est:
(Note: j'utilise Access 2000 et Windows XP édition familiale)
J'ai créé un formulaire relié à ma table "Visa", en mode formulaire unique. Sur ce formulaire j'ai un bouton (commande36) qui:
1-Enregistre manuellement les modification apportées à l'enregistrement.
2-Enregistre un "rapport" dans un document word.
Tou celà fonctionne merveilleusement, mais (et oui il y a un mais sinon je ne serais pas là ;) ) le rapport enregsitre TOUS les enregistrements de ma table "Visa". Ce que mes employeurs veulent, c'est que seul l'enregistrement en cour soit enregisré dans le "rapport".
Pour palier à ce problème, j'ai basé mon "rapport" sur une requête paramétrée allant chercher le no. de visa (ma clé primaire), pour n'enregistrer que l'enregistrement en cour.
Et ça ne fontionne qu'à moitié. Le "rapport" peut être enregistré, mais lors de l'exécution du code, la fenêtre demandant d'entrer le paramètre de la requête apparaît à chaque fois, chose que mes employeurs voudraient éviter.
J'ignore pourquoi, mais lors de l'exécution, la requête ne va pas chercher ma valeur dans le champs du formulaire....sauf en mode debug.... C'est dingue, mais quand je fonctionne avec l'option pas-à-pas du debuggeur VBA, la fenêtre n'apparaît pas et tout fonctionne comme je le voudrais ... et c'est ça qui me perd :marteau:
Je ne comprends vraiment pas pourquoi et je suis un peu découragée...:calim2:
Code de la requête (affichage SQL):
Code:
1 2 3 4 5 6 7 8
|
SELECT Visa.Num_Visa, Visa.Date, Visa.Num_Dossier, Visa.Type_carte,
Visa.Num_Carte, Visa.Date_Exp_Visa, Visa.Num_Cours,
Visa.Nom_Avocat, Visa.Desc_Proc, Visa.Timbre_Jud,
Visa.Nom_Avocat2, Visa.No_Tel, Visa.Conciliation,
Visa.Activation, Visa.Init
FROM Visa
WHERE (((Visa.Num_Visa)=[Forms]![Visa1]![Num_Visa])); |
*Visa1 = formulaire
*Num_Visa = nom du champ du formulaire (et du champ de la table)
Code du bouton du formulaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
Private Sub Commande36_Click()
Dim stDocName As String
DoCmd.RunCommand acCmdSaveRecord
stDocName = "Etat_Visa_Exp"
DoCmd.OutputTo acOutputReport, "Etat_Visa_Exp", acFormatRTF,
"C:\Data\Visa.doc"
Exit_Commande36_Click:
Exit Sub
Err_Commande36_Click:
MsgBox Err.Description
Resume Exit_Commande36_Click
End Sub |
*Etat_Visa_Exp = nom du rapport lié à la requête
Je crois que je n'ai rien oublié, j'espère qu'avec tout ça vous pourrez me donner un coup de main ;)
Si vous avez des questions ou si je n'ai pas été assez clair n'hésitez pas à me le dire, je tâcherai de répondre du mieux possible.
Gros merci à l'avance:)