actualiser une liste déroulante de formulaire

Le
Gundt
bonsoir à tous,

J'ai un formulaire où l'utilisateur saisit par l'intermédiaire de 2
listes déroulantes un établissement et un client. Ces 2 contrôles sont
des contrôles de liste modifiable basées sur des requêtes sql.
Le dernier est le déroulant sur les clients. Si l'utilisateur revient
sur le déroulant établissement et qu'il change d'établissement, le
déroulant client affiche encore la première sélection (c'est-à-dire ceux
basés sur la première sélection).

Le 1er déroulant s'appelle : codetab et le second déroulant pour les
clients : CodeClient.

J'ai mis ceci sur réception focus du CodeClient :
Me!CodeClient.Dropdown
DoCmd.Requery "Forms![Choix_cli_fact_perso]![Codetab]"

J'ai l'erreur suivante :
erreur 2109 : Il n'y a pas de champ nommé
Forms![Choix_cli_fact_perso]![Codetab].

Je ne suis pas certain de l'avoir mis au bon endroit et ni sur le bon
contrôle.
D'autre part, le champ Codetab dans le formulaire existe bien (puisque
c'est le déroulant établissement).

Comment écrire la bonne syntaxe ?

Merci de votre aide.

Gundt
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Didier Bicking
Le #6187881
Cette ligne :
DoCmd.Requery "Forms![Choix_cli_fact_perso]![Codetab]"

peut s'écrire plus simplement :
Forms![Choix_cli_fact_perso]![Codetab].Requery

Mieux encore : si tu es toujours dans le même formulaire, tu peux écrire :
Me!Codetab.Requery

Si tu veux que le champ client devienne vide lorsque tu as choisi un
établissement, écris dans "Après mise à jour" du controle Codetab :
Me!CodeClient.Requery
Me!CodeClient = Null

Si tu as une relation entre les établissements et les clients, tu peux
souhaiter qu'une fois choisi un établissement, la liste des clients ne
contienne que les clients de l'établissement choisi. Il faut alors, dans la
requête source des données du contrôle CodeClient, mettre le critère CodeTab
dans la colonne de l'établissement.

Ai-je répondu à tout ?


--
Bon courage

Didier Bicking

http://perso.wanadoo.fr/dbicking


"Gundt" 4602f629$0$1276$
bonsoir à tous,

J'ai un formulaire où l'utilisateur saisit par l'intermédiaire de 2 listes
déroulantes un établissement et un client. Ces 2 contrôles sont des
contrôles de liste modifiable basées sur des requêtes sql.
Le dernier est le déroulant sur les clients. Si l'utilisateur revient sur
le déroulant établissement et qu'il change d'établissement, le déroulant
client affiche encore la première sélection (c'est-à-dire ceux basés sur
la première sélection).

Le 1er déroulant s'appelle : codetab et le second déroulant pour les
clients : CodeClient.

J'ai mis ceci sur réception focus du CodeClient :
Me!CodeClient.Dropdown
DoCmd.Requery "Forms![Choix_cli_fact_perso]![Codetab]"

J'ai l'erreur suivante :
erreur 2109 : Il n'y a pas de champ nommé
Forms![Choix_cli_fact_perso]![Codetab].

Je ne suis pas certain de l'avoir mis au bon endroit et ni sur le bon
contrôle.
D'autre part, le champ Codetab dans le formulaire existe bien (puisque
c'est le déroulant établissement).

Comment écrire la bonne syntaxe ?

Merci de votre aide.

Gundt


Gundt
Le #6186811
Bonjour à tous,

[...] Me!CodeClient.Requery
Me!CodeClient = Null

Si tu as une relation entre les établissements et les clients, tu peux
souhaiter qu'une fois choisi un établissement, la liste des clients ne
contienne que les clients de l'établissement choisi. Il faut alors, dans la
requête source des données du contrôle CodeClient, mettre le critère CodeTab
dans la colonne de l'établissement.
Ok, c'est fait.


Ai-je répondu à tout ?


Oui; c'est très bien. Cela marche : c'est formidable.

Mais un autre problème est apparu : le déroulant sur Codetab ne
fonctionne plus.

Sur Codetab, j'ai 2 procédures :

Private Sub Codetab_GotFocus()
Me!Codetab.Dropdown
Me!Codetab.Requery
End Sub

et l'autre :
Private Sub Codetab_AfterUpdate()
Me!CodeClient.Requery
Me!CodeClient = Null
End Sub

et ensuite, quand on arrive sur Codeclient :
Private Sub CodeClient_GotFocus()
Me!CodeClient.Dropdown
Me!Codetab.Requery
End Sub

Ai-je bien placé le code au bon endroit et pourquoi le déroulant
fonctionne encore sur CodeClient et pas sur Codetab ?

Un grand merci à Didier.

Gundt

Gundt
Le #6186611
bonjour à tous,

et ensuite, quand on arrive sur Codeclient :
Private Sub CodeClient_GotFocus()
Me!CodeClient.Dropdown
Me!Codetab.Requery
End Sub
J'ai inversé les 2 lignes Me! et ça marche.


Comment n'y ai-je pas pensé plus tôt ? :-(

Ai-je bien placé le code au bon endroit et pourquoi le déroulant
fonctionne encore sur CodeClient et pas sur Codetab ?

Un grand merci à Didier.


Gundt

Publicité
Poster une réponse
Anonyme