OVH Cloud OVH Cloud

DLookup

3 réponses
Avatar
Thierry _
Bonjour,

Soit une commande basée sur une table T_CMD dont un des champs est INIT
(comme initiale de l'émetteur). Un form, F_COMMANDE facilite la saisie.

Soit une autre table , T_INIT dont les champs sont: Num Auto (clé), INI,
PRENOM, EML.

Les 2 tables ne sont pas liées.

Je désire que l'état E_CMD découlant du F_COMMANDE affiche le PRENOM
extrait de cette table T_INIT lorsque le champs INIT de la commande est
identique au champ INI deT_INIT.

Je crée donc dans E_CMD une zone de texte dont la source est:

DLookup("[PRENOM]","T_INIT","[INI]=forms![F_COMMANDE]![INIT]")

Un message d'erreur m'avise : Erreur de syntaxe, opérateur absent.
L'aide Access n'affiche rien dans ce cas, (ce qui était prévisible...).

Merci de m'aider, je n'ai pas d'expérience de la fonction DLookup. Il y a
peut-être une soluce plus simple ?

Thierry_

3 réponses

Avatar
MG
la guillemet est mal placée :

DLookup("[PRENOM]","T_INIT","[INI]=" & forms![F_COMMANDE]![INIT] )


"Thierry _" a écrit dans le message de news:

Bonjour,

Soit une commande basée sur une table T_CMD dont un des champs est INIT
(comme initiale de l'émetteur). Un form, F_COMMANDE facilite la saisie.

Soit une autre table , T_INIT dont les champs sont: Num Auto (clé), INI,
PRENOM, EML.

Les 2 tables ne sont pas liées.

Je désire que l'état E_CMD découlant du F_COMMANDE affiche le PRENOM
extrait de cette table T_INIT lorsque le champs INIT de la commande est
identique au champ INI deT_INIT.

Je crée donc dans E_CMD une zone de texte dont la source est:

DLookup("[PRENOM]","T_INIT","[INI]=forms![F_COMMANDE]![INIT]")

Un message d'erreur m'avise : Erreur de syntaxe, opérateur absent.
L'aide Access n'affiche rien dans ce cas, (ce qui était prévisible...).

Merci de m'aider, je n'ai pas d'expérience de la fonction DLookup. Il y a
peut-être une soluce plus simple ?

Thierry_




Avatar
Raymond [mvp]
Bonjour.

il n'est pas besoin de passer par un dlookup mais simplement inclure ta
table T_INIT dans la requête source de ton état et le champ sera indiqué
automatiquement.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Thierry _" a écrit dans le message de news:

| Bonjour,
|
| Soit une commande basée sur une table T_CMD dont un des champs est INIT
| (comme initiale de l'émetteur). Un form, F_COMMANDE facilite la saisie.
|
| Soit une autre table , T_INIT dont les champs sont: Num Auto (clé), INI,
| PRENOM, EML.
|
| Les 2 tables ne sont pas liées.
|
| Je désire que l'état E_CMD découlant du F_COMMANDE affiche le PRENOM
| extrait de cette table T_INIT lorsque le champs INIT de la commande est
| identique au champ INI deT_INIT.
|
| Je crée donc dans E_CMD une zone de texte dont la source est:
|
| DLookup("[PRENOM]","T_INIT","[INI]=forms![F_COMMANDE]![INIT]")
|
| Un message d'erreur m'avise : Erreur de syntaxe, opérateur absent.
| L'aide Access n'affiche rien dans ce cas, (ce qui était prévisible...).
|
| Merci de m'aider, je n'ai pas d'expérience de la fonction DLookup. Il y a
| peut-être une soluce plus simple ?
|
| Thierry_
|
|
Avatar
Thierry _
Salut Raymond,

En faisant ce que tu dis, je vois bien ce que je demande, mais il n'est plus
possible d'ajouter un enregistrement |>* est en gris clair)
Voici ma requ, basée sur d'autres tables (car la table T_CMD est liée et en
utilisation permanente), mais fonctionnement similaire:

SELECT DISTINCTROW [NOTE CREDIT SUR CREDIT_CARD].*, CLI.*, [mt1]+[mt2]+[mt3]
AS Expr1, T_INIT.PRENOM
FROM ([NOTE CREDIT SUR CREDIT_CARD] LEFT JOIN CLI ON [NOTE CREDIT SUR
CREDIT_CARD].NUM_CLI = CLI.num_cli) LEFT JOIN T_INIT ON [NOTE CREDIT SUR
CREDIT_CARD].INIT = T_INIT.INI
ORDER BY [NOTE CREDIT SUR CREDIT_CARD].NUM_NCCC;

Ceci ne fonctionne pas non plus :

SELECT DISTINCTROW [NOTE CREDIT SUR CREDIT_CARD].*, CLI.*, [mt1]+[mt2]+[mt3]
AS Expr1, T_INIT.PRENOM
FROM ([NOTE CREDIT SUR CREDIT_CARD] LEFT JOIN CLI ON [NOTE CREDIT SUR
CREDIT_CARD].NUM_CLI = CLI.num_cli) RIGHT JOIN T_INIT ON [NOTE CREDIT SUR
CREDIT_CARD].INIT = T_INIT.INI
ORDER BY [NOTE CREDIT SUR CREDIT_CARD].NUM_NCCC;

Le DLookup est peut-être moins élégant, mais je l'espérais plus fonctionnel.
Merci,
Th



il n'est pas besoin de passer par un dlookup mais simplement inclure ta
table T_INIT dans la requête source de ton état et le champ sera indiqué
automatiquement.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Thierry _" a écrit dans le message de news:

| Bonjour,
|
| Soit une commande basée sur une table T_CMD dont un des champs est INIT
| (comme initiale de l'émetteur). Un form, F_COMMANDE facilite la saisie.
|
| Soit une autre table , T_INIT dont les champs sont: Num Auto (clé),
INI,

| PRENOM, EML.
|
| Les 2 tables ne sont pas liées.
|
| Je désire que l'état E_CMD découlant du F_COMMANDE affiche le PRENOM
| extrait de cette table T_INIT lorsque le champs INIT de la commande est
| identique au champ INI deT_INIT.
|
| Je crée donc dans E_CMD une zone de texte dont la source est:
|
| DLookup("[PRENOM]","T_INIT","[INI]=forms![F_COMMANDE]![INIT]")
|
| Un message d'erreur m'avise : Erreur de syntaxe, opérateur absent.
| L'aide Access n'affiche rien dans ce cas, (ce qui était prévisible...).
|
| Merci de m'aider, je n'ai pas d'expérience de la fonction DLookup. Il y
a

| peut-être une soluce plus simple ?
|
| Thierry_
|
|