quel type de contrôle est liste_secssact : Zone de texte, liste déroulante ? Si c'est une liste déroulante, ce n'est pas la bonne méthode de chargement ..
quel type de contrôle est liste_secssact : Zone de texte, liste déroulante ? Si c'est une liste déroulante, ce n'est pas la bonne méthode de chargement ..
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
Au moment du plantage, fais cette vérif dans la fenêtre d'exécution (VarType) et donne nous en le résultat. L'erreur 2471 est une erreur de typage (si je me souviens bien).?vartype(Texte90 )
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
Si la réponse est 3, il s'agit d'un long et il faut déclarer
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim v_pk_secact As Long
Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
Ou encore:
Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
... Des principes qui m'ont beaucoup aidé en informatique...
Autre chose...
si v_pk_secact a une valeur nulle, çà peut te rendre un code d'erreur. Essaie avec NZ
Code : Sélectionner tout - Visualiser dans une fenêtre à part liste_secssact = DLookup("libelle", "t_ref_secssact", "pk_secact_code=" & NZ(v_pk_secact,0))
Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
Ou encore:
Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
... Des principes qui m'ont beaucoup aidé en informatique...
Essayez ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part liste_secssact = DLookup("libelle", "t_ref_secssact", "pk_secact_code='" & v_pk_secact & "'")
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
bon je n'ai plus d'erreur d'execution, c'est déjà ça...
mais mantenant comment je fais pour atteindre les données contenues dans le Dlookup ?
Il faudrait que tu soies un peu plus explicite: quelle solution a marché?
Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
Ou encore:
Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
... Des principes qui m'ont beaucoup aidé en informatique...
Avec ça je n'ai plus d'erreur, mais de ce que j'ai lu, Dlookup n'extrait pas de données mais une réponse vrai ou faux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub fk_secact_code_AfterUpdate() Dim v_pk_secact As Long v_pk_secact = fk_secact_code.Column(1) Texte90 = v_pk_secact liste_secssact = DLookup("libelle", "t_ref_secssact", "fk_secact_code=" & v_pk_secact) End Sub
c'est ça ?
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
merci je vais me pencher la dessus
Bon j'ai avancé un peu
j'arrive bien à passé ma variable maintenant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub fk_secact_code_AfterUpdate() Dim v_pk_secact As Long v_pk_secact = fk_secact_code.Column(1) Dim req_secssact As DAO.Recordset Dim sql_secssact As DAO.Database Set sql_secssact = CurrentDb Set req_secssact = sql_secssact.OpenRecordset("SELECT libelle FROM t_ref_secssact WHERE fk_secact_code=" & v_pk_secact, dbOpenDynaset) Do While Not req_secssact.EOF fk_secssact_code = req_secssact.Fields(0).Value req_secssact.MoveNext Loop req_secssact.Close End Sub
la boucle fonctionne, mais quand je change la valeur dans fk_secact_code (liste déroulante) ça ne met pas à jour le Recordset, j'ai toujours les mêmes valeur dans ma 2eme liste déroulante (fk_secssact_code)
une idée ?
Merci
bonjour,
j'aimerai que tu expliques pour quoi est fait ce code, car si c'est pour changer les valeurs d'une autre liste déroulante, ce n'est pas la bonne méthode ...la boucle fonctionne, mais quand je change la valeur dans fk_secact_code (liste déroulante) ça ne met pas à jour le Recordset, j'ai toujours les mêmes valeur dans ma 2eme liste déroulante (fk_secssact_code)
Je te rappelle l'énoncé (très succinct) de ton problème:
moi non plus je ne comprend pas ...j'ai ça comme code :
dans Tesxe96 l'id de l'enregistrement s'affiche sans problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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...
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
en effet c'est plus très clair,
du coup j'ai créer un autre sujet et je vais mettre celui là en résolu, car le passage de variable fonctionne.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager