Bonjour à tous,
je vous expose ce que je veux faire .

Donc je pars d'un formulaire où j'ai simplement une listBox pour choisir le nom d'une commande, une fois validé, cela a pour effet de créer la requête en s'appuyant sur un modèle. Voici le code de se 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
19
20
21
22
23
24
25
26
27
28
29
30
Dim Db As DAO.Database
Dim QryModele As DAO.QueryDef
Dim strSQLModele As String
Dim NomCmd As String
 
NomCmd = lstCommande
 
Set Db = CurrentDb
Set QryModele = Db.QueryDefs("qryChxCommande_modele")
strSQLModele = QryModele.SQL
strSQLModele = Replace(strSQLModele, "[Sélectionnez une commande]", Chr(34) & Nz(lstCommande) & Chr(34))
 
'Si la requête existe déjà alors
If TesteExistenceRequete("qryChxCommande") Then
  'alors modifier le code de la requête
  Db.QueryDefs("qryChxCommande").SQL = strSQLModele
'Sinon
Else
  'Créer la nouvelle requête
  Db.CreateQueryDef "qryChxCommande", strSQLModele
End If
 
'Ferme le formulaire
DoCmd.Close acForm, Me.Name
'Ouvre le rapport
stDocName = "RptCommande"
DoCmd.OpenReport stDocName, acPreview, , , , NomCmd
 
 
End Sub
Ensuite, cela m'ouvre un état qui doit afficher la requête créé ci-dessus. J'aimerai sur cet état, afficher la valeur choisis dans le formulaire (ici, nom de la commande). J'ai pensé à faire passer l'info par arguments
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DoCmd.OpenReport stDocName, acPreview, , , , NomCmd
Lors de l'ouverture de l'état, une procédure se déclenche, pour remplir une textBox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub Report_Open(Cancel As Integer)
If IsNull(Me.OpenArgs) Then
    'ne rien faire
Else
    txtNameCmd = Me.OpenArgs
End If
End Sub
Mon argument est bien visible sur Me.openArgs (mode debug), mais lors de l'affectation de txtNameCmd, il y a un message d'erreur :
You can't assign a value to this object
Pourtant ma textbox attend bien un string non?

Je vous remercie de prendre la peine de me lire, et j'espère que vous pourriez m'éclairer sur ce message d'erreur, ou de al solution à entreprendre.

Cdt