passage variable dans un select
Bonjour,
j'ai ça comme code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Private Sub fk_secact_code_AfterUpdate()
Dim v_pk_secact As String
v_pk_secact = fk_secact_code.Column(1)
Texte96 = v_pk_secact
Dim liste_secssact As DAO.Recordset
Dim req As DAO.Database
Set req = CurrentDb
Set liste_secssact = req.OpenRecordset("SELECT libelle, pk_secssact FROM t_ref_secssact WHERE fk_secact_code=" & v_pk_secact, dbOpenDynaset)
fk_secssact_code = liste_secssact.Fields(0).Value
End Sub |
dans Tesxe96 l'id de l'enregistrement s'affiche sans problème
mais j'ai un message d'erreur au niveau de la requête SELECT
trop peu de paramètre. 1 attendu
le truc le plus bizarre est que ce code fonctionne sur une autre base...
je ne comprend pas...
Merci pour votre aide
Access 2016
passage variable dans un select
Bonjour,
Tu peux essayer :
Code:
Set liste_secssact = req.OpenRecordset("SELECT libelle, pk_secssact FROM t_ref_secssact WHERE fk_secact_code='" & v_pk_secact & "'", dbOpenDynaset)
La variable issue de ta liste étant de type string.
passage variable dans un select
Laquelle?
Si tu mets un point d'arrêt sur cette ligne peux-tu interroger cette variable dans la console?
passage variable dans un select
Du coup si ton paramètre attendu est un entier long (ce qui serait plus logique), laisse ton select tel qu'il était et affecte à ta variable la colonne 1 de ta liste convertie en long (CLng).
N'oublie pas de déclarer ta variable en long
Code:
Dim v_pk_secact As Long
passage variable dans un select
Bonjour,
Citation:
dans Tesxe96 l'id de l'enregistrement s'affiche sans problème
mais j'ai un message d'erreur au niveau de la requête SELECT
Peux-tu mettre un point d'arrêt dans ton code sur la ligne 5 et, dans la console faire:
Si la réponse est 8, c'est du texte et ma première réponse avec les simples cotes est OK
Si la réponse est 2, il s'agit d'un integer et il faut déclarer
Code:
Dim v_pk_secact As String
Si la réponse est 3, il s'agit d'un longet il faut déclarer
Code:
Dim v_pk_secact As Long
passage variable dans un select
Citation:
Code:
1 2 3
| Dim v_pk_secact As Long
v_pk_secact = fk_secact_code.Column(1) |
Si fk_secact_code est une liste déroulante, les valeurs issues sont en String ( :P ) , Du coup tu dois convertir:
Code:
1 2 3
| Dim v_pk_secact As Long
v_pk_secact = Clng(fk_secact_code.Column(1)) |
passage variable dans un select
D'ailleurs, je pense que tu devrais revoir tes affectations:
Code:
1 2
| Dim v_coupe_departament As Long
v_coupe_departement = Left(Forms!f_societe.cp.Value, 2) |
La fonction Left renvoie du string...
passage variable dans un select
Peux-tu me joindre ta base, si elle ne comporte pas de données confidentielle? (zippée)
passage variable dans un select
OK,
Pour simplifier tu pourrais t'intéresser aux fonctions de domaine avec une syntaxe ci-après beaucoup plus simple:
maVariable (ou monChamp) = DLookup("champ","Table","Condition")
ici, çà donnerait:
Code:
1 2
|
leLibelle=DLookUp("libelle","t_ref_secssact","pk_secact_code=" & v_pk_secact) |