Modifier un paramètre de type "text" d'une requête par VBA
Bonjour,
Dans mon code VBA (pour un état), je cherche à modifier la valeur du paramètre utilisé dans la clause "WhERE" d'une requête enregistrée.
Ce paramètre est de type "text". (J'ai essayé avec un "CHAR", c'est pareil ...)
Pour cela j'utilise DAO et son célèbre querydef, voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Dim qdf_Bloc_6 As QueryDef 'Variable pour la requête spécifique au bloc 6
Dim rst_Bloc_6 As Recordset 'Variable pour de recordset associé à la requête spécifique au bloc 6
Set qdf_Bloc_6 = oDb.QueryDefs("R_Schémas_B6") 'Affectation de la requête enregistrée à qdf_Bloc_6
qdf_Bloc_6.Parameters("Lieu").Value = " & Txt_Groupe_2.Value & " 'Modification du paramètre "Lieu"
'J'ai essayé avec une valeur fixe pour voir : qdf_Bloc_6.Parameters("Lieu").Value = "Sous-châssis partie latérale : Face A"
'J'ai essayé sans les guillemets et & : qdf_Bloc_6.Parameters("Lieu").Value = Txt_Groupe_2.Value
Set rst_Bloc_6 = qdf_Bloc_6.OpenRecordset
'Traitement sur le recordset "rst_Bloc_6"
'..... |
Nota : "Txt_Groupe_2.Value", comme son nom l'indique est la valeur (de type texte) issue d'un Textbox, lui même rempli par la requête source de l'état donc variable au fil du formatage de l'état.
Voici le code SQL de ma requête "R_Schémas_B6"
Code:
1 2 3 4 5
|
PARAMETERS [Lieu] Text ( 255 );
SELECT DISTINCT T_Schémas.Fichier, T_Schémas.Hauteur, T_Schémas.No_Tableau
FROM T_Schémas INNER JOIN R_Opérations_Formulaire_VP ON T_Schémas.No_MOP = R_Opérations_Formulaire_VP.T_A_Opération_VP_initiale.No_MOP
WHERE ((T_Schémas.No_Bloc=6) AND (T_Schémas.Info_Lieu = [Lieu])); |
Le problème : Acces me dit (dans un message d'erreur) qu'il ne trouve pas la requête "R_Opérations_Formulaire_VP" (en lui ajoutant tout un tas de chiffres derrière).
- J'ai vérifié toutes les orthographes et la syntaxe.
- Les 2 requêtes fonctionnent dans l'éditeur access
- Quand j'enlève le paramètre de la requête, il n'y a plus d'erreur
- J'ai un code similaire à un autre endroit qui fonctionne, mais le paramètre est de type numérique, ce qui me fait penser que le problème vient du paramètre "Lieu" de type texte.
Quand pensez vous ?
Merci de me donner votre avis