Type incompatible (erreur 13) dù à une recherche d'article

Le
Fguy
Bonjour,

J'ai une table qui contient 3 champs, un champ code de type string, un champ
article de type string et un champ prix type monétaire.

J'ai donc aussi un formulaire basé sur cette table.
La table s'appelle tblVérification et le formulaire frmVérification.

Le but est de rechercher les articles ayant le même nom et le même prix.
Donc, en fait, lorsqu'on encode un article du même code mais avec un prix
différent, un message devrait apparraître.


Avec la fonction ci-dessous, j'ai l'erreur 13

Private Sub Prix_AfterUpdate()
Dim meF As Form, rstRem As Recordset, maBD As Database
Dim Critere, meG As Form
Set maBD = CurrentDb
Set rstRem = maBD.OpenRecordset("tblVérification", dbOpenDynaset)
If EstChargé("frmVérification" Then
Set meF = Forms![frmVérification]
Critere = "code= '" & meF![Code] & "'" And "prix= " & meF!Prix
With rstRem
.FindFirst Critere
If Not .NoMatch Then
MsgBox "Ce prix existe déjà pour cet article", vbCritical,
"Remarque"
End If
End With
End If
End Sub

J'ai donc le message d'erreur lorsque le code s'exécute à la ligne qui
commence par critère=
J'ai bien vu que code est de type string et prix de type numérique, mais
comment corriger cette erreur?
D'avance merci,

Guy FALESSE
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
db
Le #23669771
Le 21/08/2011 13:40, Fguy a écrit :
Critere = "code= '" & meF![Code] & "'" And "prix= " & meF!Prix



Il faudrait plutôt écrire :

Critere = "code= '" & meF![Code] & "' And prix= " & meF!Prix

en supprimant les guillemets autour de And

db
Fguy
Le #23669911
Salut db,

Merci pour ta réponse.
Cela fonctionne très bien sauf que lorsque j'utilise le point du pavé
numérique lorsque je veux écrire 2,5 € par exemple, je reçois une erreur
d'exécution 3077, erreur de syntaxe (virgule) dans l'expression.
Si je mets le point pour écrire 2.5 €, il me met 25 €, bizarre, je me
demande si je n'ai pas un programme qui fout le bazar.


"db" a écrit dans le message de groupe de discussion :
4e50f433$0$1391$

Le 21/08/2011 13:40, Fguy a écrit :
Critere = "code= '" & meF![Code] & "'" And "prix= " & meF!Prix



Il faudrait plutôt écrire :

Critere = "code= '" & meF![Code] & "' And prix= " & meF!Prix

en supprimant les guillemets autour de And

db
Fguy
Le #23669941
Salut db,

C'était bien textor qui foutait le bazar.
Maintenant, donc, j'ai toujours cette erreur 3077, (virgule) dans
l'expression.
Donc, il faudra "chipoter" avec les guillemets et autres apostrophe, mais
comment là...
Fguy

"Fguy" a écrit dans le message de groupe de discussion :
4e51001d$0$5042$

Salut db,

Merci pour ta réponse.
Cela fonctionne très bien sauf que lorsque j'utilise le point du pavé
numérique lorsque je veux écrire 2,5 € par exemple, je reçois une erreur
d'exécution 3077, erreur de syntaxe (virgule) dans l'expression.
Si je mets le point pour écrire 2.5 €, il me met 25 €, bizarre, je me
demande si je n'ai pas un programme qui fout le bazar.


"db" a écrit dans le message de groupe de discussion :
4e50f433$0$1391$

Le 21/08/2011 13:40, Fguy a écrit :
Critere = "code= '" & meF![Code] & "'" And "prix= " & meF!Prix



Il faudrait plutôt écrire :

Critere = "code= '" & meF![Code] & "' And prix= " & meF!Prix

en supprimant les guillemets autour de And

db
Fguy
Le #23670071
Salut,

Si je mets on error resume next , je n'ai plus le message d'erreur dû à la
virgule, par contre le message disant que l'article existe déjà apparait,
pas de chance.:-(
@+

Fguy

"Fguy" a écrit dans le message de groupe de discussion :
4e5102e4$0$5040$

Salut db,

C'était bien textor qui foutait le bazar.
Maintenant, donc, j'ai toujours cette erreur 3077, (virgule) dans
l'expression.
Donc, il faudra "chipoter" avec les guillemets et autres apostrophe, mais
comment là...
Fguy

"Fguy" a écrit dans le message de groupe de discussion :
4e51001d$0$5042$

Salut db,

Merci pour ta réponse.
Cela fonctionne très bien sauf que lorsque j'utilise le point du pavé
numérique lorsque je veux écrire 2,5 € par exemple, je reçois une erreur
d'exécution 3077, erreur de syntaxe (virgule) dans l'expression.
Si je mets le point pour écrire 2.5 €, il me met 25 €, bizarre, je me
demande si je n'ai pas un programme qui fout le bazar.


"db" a écrit dans le message de groupe de discussion :
4e50f433$0$1391$

Le 21/08/2011 13:40, Fguy a écrit :
Critere = "code= '" & meF![Code] & "'" And "prix= " & meF!Prix



Il faudrait plutôt écrire :

Critere = "code= '" & meF![Code] & "' And prix= " & meF!Prix

en supprimant les guillemets autour de And

db
db
Le #23670141
Le 21/08/2011 15:06, Fguy a écrit :
Salut db,

C'était bien textor qui foutait le bazar.
Maintenant, donc, j'ai toujours cette erreur 3077, (virgule) dans
l'expression.
Donc, il faudra "chipoter" avec les guillemets et autres apostrophe,
mais comment là...



C'est sans doute que le critère (syntaxe SQL) attend un nombre au format
américain (avec un . comme séparateur décimal)

Pas testé : essayer
Critere = "code= '" & meF![Code] & "' And prix= " & replace(meF!Prix,
"," , ".")

(ne fonctionne qu'à partir d'Access 2000)

db
Fguy
Le #23670191
salut db,

Impeccable, ça fonctionne bien.
Encore un grand merci :-) et bonne fin de week-end; :-)

Fguy

"db" a écrit dans le message de groupe de discussion :
4e510d3d$0$16400$

Le 21/08/2011 15:06, Fguy a écrit :
Salut db,

C'était bien textor qui foutait le bazar.
Maintenant, donc, j'ai toujours cette erreur 3077, (virgule) dans
l'expression.
Donc, il faudra "chipoter" avec les guillemets et autres apostrophe,
mais comment là...



C'est sans doute que le critère (syntaxe SQL) attend un nombre au format
américain (avec un . comme séparateur décimal)

Pas testé : essayer
Critere = "code= '" & meF![Code] & "' And prix= " & replace(meF!Prix,
"," , ".")

(ne fonctionne qu'à partir d'Access 2000)

db
Publicité
Poster une réponse
Anonyme