OVH Cloud OVH Cloud

DLookUp

9 réponses
Avatar
rdelbeuf
Bonjour,
J'ai un pb avec la fonction suivante:
Me.PrixUnitaire_HT =3D DLookup("[PrixVente]", "tbPrix", "[RefProduit]=3D" &
[comboRefProduit] _
& "and" & "[CodeMill=E9sime]=3D'" & [CodeMill=E9sime] & "'" & "and" &
"[RefConditionnement]=3D" & [RefConditionnement] _
& "and" & "[RefTarif]=3D" & [RefTarif])

Elle fonctionne parfaitement en source contr=F4le du contr=F4le
PrixUnitaire_HT,
Mais dans VBA, j'ai le message suivant:"Incompatibilit=E9 de type"
J'ai test=E9 tous les crit=E8res un =E0 un, aucun ne fonctionne ni
num=E9riques, ni string.
Merci

9 réponses

Avatar
Eric
Bonjour,

Essaies ceci :

Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix",
"[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésime] _
& "' AND [RefConditionnement]=" & [RefConditionnement] _
& " AND [RefTarif]=" & [RefTarif])

Il te manque des espaces avant et après les AND.
Je suppose , d'après ton code, que RefProduit, RefConditionnement et
RefTarif sont des champs numériques. Seul CodeMillésime est de type
Texte. Si ce n'est pas le cas, encadres de '(simple quote) comme pour le
CodeMillésime les champs concernés.

Bonjour,
J'ai un pb avec la fonction suivante:
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix", "[RefProduit]=" &
[comboRefProduit] _
& "and" & "[CodeMillésime]='" & [CodeMillésime] & "'" & "and" &
"[RefConditionnement]=" & [RefConditionnement] _
& "and" & "[RefTarif]=" & [RefTarif])

Elle fonctionne parfaitement en source contrôle du contrôle
PrixUnitaire_HT,
Mais dans VBA, j'ai le message suivant:"Incompatibilité de type"
J'ai testé tous les critères un à un, aucun ne fonctionne ni
numériques, ni string.
Merci



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
rdelbeuf
Rebonjour,
Merci Eric,
Les champs sont du bon type.
Maintenant, il me mets "erreur de syntaxe(erreur de virgule)"dans la
partie critères.Pourtant, dans la fenêtre débogage, les valeurs
renvoyées sont bonnes.


Bonjour,

Essaies ceci :

Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix",
"[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésim e] _
& "' AND [RefConditionnement]=" & [RefConditionnement] _
& " AND [RefTarif]=" & [RefTarif])

Il te manque des espaces avant et après les AND.
Je suppose , d'après ton code, que RefProduit, RefConditionnement et
RefTarif sont des champs numériques. Seul CodeMillésime est de type
Texte. Si ce n'est pas le cas, encadres de '(simple quote) comme pour le
CodeMillésime les champs concernés.

Bonjour,
J'ai un pb avec la fonction suivante:
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix", "[RefProduit] =" &
[comboRefProduit] _
& "and" & "[CodeMillésime]='" & [CodeMillésime] & "'" & "and" &
"[RefConditionnement]=" & [RefConditionnement] _
& "and" & "[RefTarif]=" & [RefTarif])

Elle fonctionne parfaitement en source contrôle du contrôle
PrixUnitaire_HT,
Mais dans VBA, j'ai le message suivant:"Incompatibilité de type"
J'ai testé tous les critères un à un, aucun ne fonctionne ni
numériques, ni string.
Merci



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr



Avatar
Eric
re,
Aucune des valeurs passées ne contient de virgule ?
(Contenu de CodeMillésime, RefConditionnement, RefTarif)

Rebonjour,
Merci Eric,
Les champs sont du bon type.
Maintenant, il me mets "erreur de syntaxe(erreur de virgule)"dans la
partie critères.Pourtant, dans la fenêtre débogage, les valeurs
renvoyées sont bonnes.



Bonjour,

Essaies ceci :

Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix",
"[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésime] _
& "' AND [RefConditionnement]=" & [RefConditionnement] _
& " AND [RefTarif]=" & [RefTarif])

Il te manque des espaces avant et après les AND.
Je suppose , d'après ton code, que RefProduit, RefConditionnement et
RefTarif sont des champs numériques. Seul CodeMillésime est de type
Texte. Si ce n'est pas le cas, encadres de '(simple quote) comme pour le
CodeMillésime les champs concernés.


Bonjour,
J'ai un pb avec la fonction suivante:
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix", "[RefProduit]=" &
[comboRefProduit] _
& "and" & "[CodeMillésime]='" & [CodeMillésime] & "'" & "and" &
"[RefConditionnement]=" & [RefConditionnement] _
& "and" & "[RefTarif]=" & [RefTarif])

Elle fonctionne parfaitement en source contrôle du contrôle
PrixUnitaire_HT,
Mais dans VBA, j'ai le message suivant:"Incompatibilité de type"
J'ai testé tous les critères un à un, aucun ne fonctionne ni
numériques, ni string.
Merci



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
rdelbeuf
re,
Effectivement, le RefConditionnement contient une virgule: 0,75
mais que faire,
régis
Avatar
Eric
re,

Si tu es en Access2000 et +, essaies de faire :
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix", "[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésime] _
& "' AND REPLACE([RefConditionnement],',','.')=" _
& Replace([RefConditionnement], ",", ".") _
& " AND [RefTarif]=" & [RefTarif])

Si Access97, voir sur le site de Jessy, la fonction équivalente.
http://access.jessy.free.fr/htm/Equivalence/fReplace.htm


re,
Effectivement, le RefConditionnement contient une virgule: 0,75
mais que faire,
régis



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

Réponse trop rapide
Un seul REPLACE() suffit, celui sur la variable passée :
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix",
"[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésime] _
& "' AND [RefConditionnement]=" _
& REPLACE([RefConditionnement], ",", ".") _
& " AND [RefTarif]=" & [RefTarif])

re,

Si tu es en Access2000 et +, essaies de faire :
Me.PrixUnitaire_HT = DLookup("[PrixVente]", "tbPrix", "[RefProduit]=" _
& [comboRefProduit] & " AND [CodeMillésime]='" & [CodeMillésime] _
& "' AND REPLACE([RefConditionnement],',','.')=" _
& Replace([RefConditionnement], ",", ".") _
& " AND [RefTarif]=" & [RefTarif])

Si Access97, voir sur le site de Jessy, la fonction équivalente.
http://access.jessy.free.fr/htm/Equivalence/fReplace.htm



re,
Effectivement, le RefConditionnement contient une virgule: 0,75
mais que faire,
régis





--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
regis
re,
J'ai essayé avec un espace apres la 3ème virgule:
REPLACE([RefConditionnement],',',' ')=" & Replace([RefConditionnement],
",", " ")
La valeur retournée est 0 75 et il met "incompatibilité de type

Avec un point:
REPLACE([RefConditionnement],',','.')=" & Replace([RefConditionnement],
",", ".")
Pas de valeur retournée et "incompatibilité...

Avec une virgule:
REPLACE([RefConditionnement],',',',')=" & Replace([RefConditionnement],
",", ",")
il retourne 0,75 ce qui est la bonne valeur et "erreur de syntaxe.
Je sens que la solution n'est pas loin
Merci
régis
Avatar
Eric
re,

Mets comme dans ma correction, il ne devrait plus y avoir de problème.
Un seul Replace. Il te faut remplacer la virgule par un point dans la
variable passée et non dans la variable de la table. (Le séparateur
décimal en SQL est le point et le critère des fonctions de domaine est
une clause SQL sans le Where)

... [RefConditionnement]=" & Replace([RefConditionnement],",",".") ...

re,
J'ai essayé avec un espace apres la 3ème virgule:
REPLACE([RefConditionnement],',',' ')=" & Replace([RefConditionnement],
",", " ")
La valeur retournée est 0 75 et il met "incompatibilité de type

Avec un point:
REPLACE([RefConditionnement],',','.')=" & Replace([RefConditionnement],
",", ".")
Pas de valeur retournée et "incompatibilité...

Avec une virgule:
REPLACE([RefConditionnement],',',',')=" & Replace([RefConditionnement],
",", ",")
il retourne 0,75 ce qui est la bonne valeur et "erreur de syntaxe.
Je sens que la solution n'est pas loin
Merci
régis



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
regis
ça marche.Merci beaucoup, ça fait une semaine que je m'arrache les
cheveux avec ce pb
Regis