Bonjour,

Je travaille sur une petite application Access.
Mon problème se situe au niveau d'un état :
J'ai un formulaire de commande, qui permet de saisir une commande, et à la fin de la saisie, un bouton permet d'ouvrir une preview du bon de commande.

Dans l'état qui définit le bon de commande, j'ai plusieurs requêtes qui sont exéctuées (même si au final, j'aurais pu n'en faire qu'une, mais j'ai préféré réutiliser des requêtes).

Les champs principaux sont alimentés par la requête source du formulaire, qui est paramétrée. Elle reçoit la référence de la commande.

Mon problème est que l'état ouvre systématiquement une boite de dialogue pour entrer le paramètre, alors que je passe pourtant le paramètre dans la clause WHERE de mon OpenReport... J'ai eu beau recréer un formulaire vide pour tester, ça ne fonctionne pas. Je ne vois pas où est mon erreur.

Le code de l'appel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Private Sub btn_printDeliveryOrder_Click()
    '@debug MsgBox "order ref = " & txt_orderref
    stLinkCriteria = "[txt_orderref] = """ & txt_orderref & """"
    DoCmd.OpenReport "etat_DeliveryOrder", acViewPreview, stLinkCriteria, , , txt_orderref.Value
    DoCmd.Maximize
End Sub
Note : le dernier paramètre est utilisé pour les autres requêtes (par ex un calcul du volume total de la commande)

La requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT *
FROM tbl_Agent INNER JOIN tbl_Commande ON tbl_Agent.nom_agent=tbl_Commande.destinataire_commande
WHERE tbl_Commande.ref_commande=[txt_orderref];
Toute bête ... elle récupère juste les infos de la commande et les infos du destinataire correspondant...

Merci d'avance !