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

Je ne comprends vraiment pas pourquoi et je suis un peu découragée...

Code de la requête (affichage SQL):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
 
   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