|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() gérant de portefeuille Inscription : avril 2011 Messages : 13 ![]() |
Bonjour à tous,
Je tourne vers vous car je ne trouve aucune réponse à ma question. Je souhaite mettre à jour une zone de texte dans un formulaire à partir d'une requête en VBA. Pour faire court, j'ai 2 tables: client et compte Dans la table compte, le champ index_client fait référence au client dans la table client. J'ouvre un formulaire et en fonction du numéro de compte, je veux le nom du client. Je fais un requête sur l'index_client de la table compte, puis une requête sur le nom dans la table client ou l'index= l'index_client. Rien de compliqué. Je fais ca dans un module, je l'exécute et ca marche. En revanche je veux que ca s'exécute tout seul, donc après le chargement des données. Je mets mon code dans une procédure évènementielle Afterupdate() et rien ne se passe Quand je clique sur mon zone de texte, Access m'alerte en disant qu'il ne trouve pas la macro Je vous mets le code: Code :
Merci de votre aide. Mjcom |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour.
Ce qui est bizarre c'est que tu exploites le contrôle txtn_compte, alors que l'évènement est la mise à jour de Txt_Nom. On aurait plutôt imaginéPar ailleurs, ta première requête n'est pas indispensable. Tu aurais l'index avec Code :
index= DLookUp("index_client"; "table_compte", " n_compte=""" & ncompte & """;" Le plus bizarre dans ton cas c'est que tu n'aies pas ces champs dans la source du formulaire et du coup, on se demande quelle est la source actuelle... Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#3 | |||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
bonsoir mjcom
Citation:
Code :
![]() [EDIT] grillé par Pgz que je salue [/EDIT] On peut également économiser un recordset avec une seule requête avec la jointure [table_compte]---[table_client] Code sql :
|
|||||
|
00
|
|
|
#4 |
![]() ![]() |
Bonjour
En plus des conseils de mes prédécesseurs que je salues, je t'invite à lire ce tuto : Affichage de données dans des Labels, Zones de texte ou MsgBox. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() gérant de portefeuille Inscription : avril 2011 Messages : 13 ![]() |
Bonjour,
Merci pour vos réponses. Citation:
Citation:
J'ai bien lu aussi le tuto sur les Zones de Texte. A vrai dire je suis bloqué. Pour être plus explicite, j'ai un 1er formulaire où je choisi un numéro de compte et des champs à sélectionner (checkbox) qui m'amène sur ce 2ème formulaire qui reprend le numéro de compte, et en fonction de ce numéro j'affiche les info du client. Citation:
Merci encore pour votre aide |
|||
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour.
Est-ce qu'il se passe quelque chose quand tu choisis un compte dans le premier formulaire? Tu as 2 formulaires. Quels sont leurs noms? La procédure que tu as donnée est dans le module du premier? Ce premier formulaire est indépendant? Sinon, quelle est sa requête source? Le deuxième est indépendant? Sinon quelle est sa requête source. Par exemple si le 2 ème formulaire a pour source la table client, il ne s'agit pas d'écrire le code client (index-client?), mais de filtrer sur cet identifiant. Bonne journée, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() gérant de portefeuille Inscription : avril 2011 Messages : 13 ![]() |
Finalement, j'ai 3 formulaires.
Mon 1er formulaire se nomme: CONSULTATION_PAR_COMPTE Mon 2ème formulaire se nomme: FICHE_PERSO_COMPTE Mon 3ème: CONSULTATION_COMPTE Dans le 1er, je choisis un numéro de compte à partir d'une liste déroulante qui fait référence à la table compte. Puis je choisis, via un groupe d'option, si je veux fiche personnalisée ou une fiche par défaut. Je sélectionne donc "Personnalisée" Puis Valider. J'arrive sur mon 2ème formulaire qui reprend le numéro de compte dans une textbox dont le nom est txt_num_cpt, dont la valeur par défaut est le numéro de compte de CONSULTATION_PAR_COMPTE Code :
=[Formulaires]![CONSULTATION_PAR_COMPTE]![txtnum_compte] Je reprends le numéro de compte dans une textbox de nom txtn_compte, de source n_compte et valeur par défaut est Code :
=[Formulaires]![FICHE_PERSO_COMPTE]![txt_num_cpt] Je viens de tester le code suivant, sans apporter les modif que vous m'avez suggérées (car il faut que les comprenne): Code :
Ce qui me gène c'est que si l'utilisateur change d'enregistrement (suivant ou précédent), le nom ne se met pas à jour (sauf à supprimer ce bouton, mais comment?). Merci à tous encore |
||
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Re,
Citation:
Cdlt, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() gérant de portefeuille Inscription : avril 2011 Messages : 13 ![]() |
Merci PGZ,et à tous.
Bon comme ca ca fonctionne, mais je voudrais savoir comment faire fonctionner mon code sur un changement de valeur du numéro de compte. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com