Valeur correspondante avec DLookup dans un évènement
8 réponses
Roland Miller
Bonjour,
Je n'arrive pas à formuler correctement le code visual basic pour obtenir
une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon
formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client".
J'entre le Nom du client dans le formulaire et je souhaite que le
NumeroClient s'affiche suite à un évènement.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que
dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai
actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que dois-je modifier dans le code ici-bas ou quel doit être le bon cod e? J'ai actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que
dois-je modifier dans le code ici-bas ou quel doit être le bon cod e? J'ai
actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que dois-je modifier dans le code ici-bas ou quel doit être le bon cod e? J'ai actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne pas. Quoi faire ou quoi essayer?
D'après ce que tu dis, c'est normal que le champ ne soit pas reconnu : tu le désignes par NumeroClient, alors qu'il s'appelle NumClient. De plus, il faut mettre le nom du champ entre guillemets, de même que celui de la table. Au demeurant, la clause WHERE de la requête, pour un champ de type texte (NomClient), doit comporter, autour de la valeur visée, des délimiteurs de type accolade valant guillemets (pour simplifier puisqu'il y a déjà des guillemets autour -enfin en tout cas il doit y en avoir).
Ainsi ça devrait mieux marcher, sous réserve que le nom du client ne comporte pas de faute de frappe (c'est justement pour l'éviter que d'habitude on fait la requête dans l'autre sens :) :
Note que j'ai pris soin de doubler les apostrophes dans le nom du client, sinon pour Monsieur de Bois d'Enghien, ou Emilie L'Epure, tu vas avoir un beau message d'erreur qui va planter l'exécution de ton code.
La chose qui reste à faire avec ça, maintenant, c'est le tester sous Access :)
Ne pas oublier de faire des tests avec des noms comportant des apostrophes, ça craint plus. ____________________________________________ Roland Miller a écrit, le 27/01/2008 18:43 :
Bonjour,
Je n'arrive pas à formuler correctement le code visual basic pour obtenir une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client". J'entre le Nom du client dans le formulaire et je souhaite que le NumeroClient s'affiche suite à un évènement.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi
essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé
les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne
pas. Quoi faire ou quoi essayer?
D'après ce que tu dis, c'est normal que le champ ne soit pas reconnu :
tu le désignes par NumeroClient, alors qu'il s'appelle NumClient. De
plus, il faut mettre le nom du champ entre guillemets, de même que celui
de la table. Au demeurant, la clause WHERE de la requête, pour un champ
de type texte (NomClient), doit comporter, autour de la valeur visée,
des délimiteurs de type accolade valant guillemets (pour simplifier
puisqu'il y a déjà des guillemets autour -enfin en tout cas il doit y en
avoir).
Ainsi ça devrait mieux marcher, sous réserve que le nom du client ne
comporte pas de faute de frappe (c'est justement pour l'éviter que
d'habitude on fait la requête dans l'autre sens :) :
Note que j'ai pris soin de doubler les apostrophes dans le nom du
client, sinon pour Monsieur de Bois d'Enghien, ou Emilie L'Epure, tu
vas avoir un beau message d'erreur qui va planter l'exécution de ton code.
La chose qui reste à faire avec ça, maintenant, c'est le tester sous
Access :)
Ne pas oublier de faire des tests avec des noms comportant des
apostrophes, ça craint plus.
____________________________________________
Roland Miller a écrit, le 27/01/2008 18:43 :
Bonjour,
Je n'arrive pas à formuler correctement le code visual basic pour obtenir
une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon
formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client".
J'entre le Nom du client dans le formulaire et je souhaite que le
NumeroClient s'affiche suite à un évènement.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que
dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai
actuellement un message à l'effet que le champ n'est pas reconnu.
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne pas. Quoi faire ou quoi essayer?
D'après ce que tu dis, c'est normal que le champ ne soit pas reconnu : tu le désignes par NumeroClient, alors qu'il s'appelle NumClient. De plus, il faut mettre le nom du champ entre guillemets, de même que celui de la table. Au demeurant, la clause WHERE de la requête, pour un champ de type texte (NomClient), doit comporter, autour de la valeur visée, des délimiteurs de type accolade valant guillemets (pour simplifier puisqu'il y a déjà des guillemets autour -enfin en tout cas il doit y en avoir).
Ainsi ça devrait mieux marcher, sous réserve que le nom du client ne comporte pas de faute de frappe (c'est justement pour l'éviter que d'habitude on fait la requête dans l'autre sens :) :
Note que j'ai pris soin de doubler les apostrophes dans le nom du client, sinon pour Monsieur de Bois d'Enghien, ou Emilie L'Epure, tu vas avoir un beau message d'erreur qui va planter l'exécution de ton code.
La chose qui reste à faire avec ça, maintenant, c'est le tester sous Access :)
Ne pas oublier de faire des tests avec des noms comportant des apostrophes, ça craint plus. ____________________________________________ Roland Miller a écrit, le 27/01/2008 18:43 :
Bonjour,
Je n'arrive pas à formuler correctement le code visual basic pour obtenir une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client". J'entre le Nom du client dans le formulaire et je souhaite que le NumeroClient s'affiche suite à un évènement.
J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai actuellement un message à l'effet que le champ n'est pas reconnu.
"Roland Miller" | Je n'arrive pas à formuler correctement le code visual basic pour obtenir | une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon | formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client". | J'entre le Nom du client dans le formulaire et je souhaite que le | NumeroClient s'affiche suite à un évènement. | | J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que | dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai | actuellement un message à l'effet que le champ n'est pas reconnu. | | NumClient.Value = DLookup([NumeroClient], [Clients], [NomClient] | Nom_du_client.Value)
Pourquoi ne crées tu pas simplement une liste déroulante, dans le haut de ton formulaire, qui a comme source le numéro et nom du client ?
"Roland Miller"
| Je n'arrive pas à formuler correctement le code visual basic pour obtenir
| une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon
| formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client".
| J'entre le Nom du client dans le formulaire et je souhaite que le
| NumeroClient s'affiche suite à un évènement.
|
| J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que
| dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai
| actuellement un message à l'effet que le champ n'est pas reconnu.
|
| NumClient.Value = DLookup([NumeroClient], [Clients], [NomClient] | Nom_du_client.Value)
Pourquoi ne crées tu pas simplement une liste déroulante, dans le haut
de ton formulaire, qui a comme source le numéro et nom du client ?
"Roland Miller" | Je n'arrive pas à formuler correctement le code visual basic pour obtenir | une valeur correspondante dans un formulaire. J'ai inséré 2 champs dans mon | formulaire provenant d'une table "Bulletin"; "NumClient" et "Nom du client". | J'entre le Nom du client dans le formulaire et je souhaite que le | NumeroClient s'affiche suite à un évènement. | | J'ai une table "Clients" avec 2 champs; "NomClient" et "NumeroClient". Que | dois-je modifier dans le code ici-bas ou quel doit être le bon code? J'ai | actuellement un message à l'effet que le champ n'est pas reconnu. | | NumClient.Value = DLookup([NumeroClient], [Clients], [NomClient] | Nom_du_client.Value)
Pourquoi ne crées tu pas simplement une liste déroulante, dans le haut de ton formulaire, qui a comme source le numéro et nom du client ?
Il pourrait bien y avoir une faute de frappe, dans le nom d'un des champs, ou de plusieurs, ou dans le nom du contrôle Nom_du_client.
Ce contrôle est-il bien sur le même formulaire à propos ?
L'assistant (générer une fonction, je cite de mémoire ; en général on ouvre ça à partir des points de suspension qui apparaissent à droite de la propriété ControlSource, quand on la sélectionne dans la fenêtre des propriétés), peut aider à mettre les noms de champs sans se tromper.
Ne pas être trop à cheval sur les intitulés : je cite tout de mémoire, depuis une machine où il n'y a pas Access.
La commande Outils / Documentation peut permettre d'avoir le cœur net sur l'orthographe des champs.
____________________________________________ Roland Miller a écrit, le 28/01/2008 05:51 :
Bonjour,
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne pas. Quoi faire ou quoi essayer?
Il pourrait bien y avoir une faute de frappe, dans le nom d'un des
champs, ou de plusieurs, ou dans le nom du contrôle Nom_du_client.
Ce contrôle est-il bien sur le même formulaire à propos ?
L'assistant (générer une fonction, je cite de mémoire ; en général on
ouvre ça à partir des points de suspension qui apparaissent à droite de
la propriété ControlSource, quand on la sélectionne dans la fenêtre des
propriétés), peut aider à mettre les noms de champs sans se tromper.
Ne pas être trop à cheval sur les intitulés : je cite tout de mémoire,
depuis une machine où il n'y a pas Access.
La commande Outils / Documentation peut permettre d'avoir le cœur net
sur l'orthographe des champs.
____________________________________________
Roland Miller a écrit, le 28/01/2008 05:51 :
Bonjour,
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi
essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé
les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne
pas. Quoi faire ou quoi essayer?
Il pourrait bien y avoir une faute de frappe, dans le nom d'un des champs, ou de plusieurs, ou dans le nom du contrôle Nom_du_client.
Ce contrôle est-il bien sur le même formulaire à propos ?
L'assistant (générer une fonction, je cite de mémoire ; en général on ouvre ça à partir des points de suspension qui apparaissent à droite de la propriété ControlSource, quand on la sélectionne dans la fenêtre des propriétés), peut aider à mettre les noms de champs sans se tromper.
Ne pas être trop à cheval sur les intitulés : je cite tout de mémoire, depuis une machine où il n'y a pas Access.
La commande Outils / Documentation peut permettre d'avoir le cœur net sur l'orthographe des champs.
____________________________________________ Roland Miller a écrit, le 28/01/2008 05:51 :
Bonjour,
J'ai essayé le code que tu m'as remis et cela amène aucun valeur. J'ai aussi essayé quelques modifications et rien ne s'affiche. J'ai entres autres essayé les 2 lignes de code ici-bas. Je sais que c'est le critère qui ne fonctionne pas. Quoi faire ou quoi essayer?
C'est tout simplement parce qu'il utilise le mauvais événement pour lire le contenu de son "Nom_du_client" !
S'il utilisait l'événement "après mise à jour", il n'y aurait pas eu de problème. Mais, j'ai peur qu'il utilise dirty ou change - la valeur n'étant pas commise, l'usage de la propriété "Text" au lieu de "Value" devient nécessaire.
C'est tout simplement parce qu'il utilise le mauvais événement pour
lire le contenu de son "Nom_du_client" !
S'il utilisait l'événement "après mise à jour", il n'y aurait pas eu de problème.
Mais, j'ai peur qu'il utilise dirty ou change - la valeur n'étant pas commise,
l'usage de la propriété "Text" au lieu de "Value" devient nécessaire.
C'est tout simplement parce qu'il utilise le mauvais événement pour lire le contenu de son "Nom_du_client" !
S'il utilisait l'événement "après mise à jour", il n'y aurait pas eu de problème. Mais, j'ai peur qu'il utilise dirty ou change - la valeur n'étant pas commise, l'usage de la propriété "Text" au lieu de "Value" devient nécessaire.