Erreur 3061 - trop peu de paramètres - 1 attendu.

Le
Guy FALESSE
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire un
SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque, Véhicule.type,
Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ze Titi
Le #6195461
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire un
SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque, Véhicule.type,
Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Guy FALESSE
Le #6195431
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la virgule,
j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi"
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire
un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





Gilles MOUGNOZ
Le #6195421
Bonjour, Guy

Et en remplaçant "LIKE" par "=" ?
Si [N°Chassis] est numérique, tu peux aussi tenter un modulo par 100...

Une petite astuce au passage: comme je ne parle pas couramment SQL ;-)
ce que je fais, c'est que je construit ma requête avec l'interface
graphique,
puis j'affiche le code SQL généré par Access et je l'adapte à mes besoins
dans le code.
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Guy FALESSE"
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la
virgule, j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi" news:
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire
un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info









Guy FALESSE
Le #6195391
Salut Gilles,
Merci de ta réponse :-)
N° Chassis n'est pas numérique.
Ce qui est comique, c'est que j'ai copié cette fonction d'un exemple qui
fonctione parfaitement, c'est lorsque j'ai voulu l'adapter avec une autre
table que ça foire.
Je vais tout de même tester *=* au lieur de LIKE.
@+

Guy FALESSE


"Gilles MOUGNOZ" news:
Bonjour, Guy

Et en remplaçant "LIKE" par "=" ?
Si [N°Chassis] est numérique, tu peux aussi tenter un modulo par 100...

Une petite astuce au passage: comme je ne parle pas couramment SQL ;-)
ce que je fais, c'est que je construit ma requête avec l'interface
graphique,
puis j'affiche le code SQL généré par Access et je l'adapte à mes besoins
dans le code.
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Guy FALESSE"
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la
virgule, j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi" news:
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire
un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As
Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info













Guy FALESSE
Le #6195381
Salut Gilles,
Je viens de tester = au lieu de LIKE et j'ai toujours la même erreur :-( Pas
de bol.
@+

Guy FALESSE

"Gilles MOUGNOZ" news:
Bonjour, Guy

Et en remplaçant "LIKE" par "=" ?
Si [N°Chassis] est numérique, tu peux aussi tenter un modulo par 100...

Une petite astuce au passage: comme je ne parle pas couramment SQL ;-)
ce que je fais, c'est que je construit ma requête avec l'interface
graphique,
puis j'affiche le code SQL généré par Access et je l'adapte à mes besoins
dans le code.
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Guy FALESSE"
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la
virgule, j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi" news:
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à écrire
un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As
Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '" &
chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info













Eric
Le #6195341
Bonjour Guy,

Es-tu sûr du nom de tes champs ? Par exemple ne serait-ce pas
Véhicule.Modele pour Véhicule.nom car l'erreur peut provenir non pas du
critère ( mettre = au lieu de Like) mais d'un des champs énumérés dans
le Select.

Salut Gilles,
Je viens de tester = au lieu de LIKE et j'ai toujours la même erreur :-( Pas
de bol.
@+

Guy FALESSE




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

Jessy Sempere
Le #6195251
Bonjour

Le problème vient peut-être du champ nom...
Access interprêtre sûrement mal ce nom de champ, c'est pour ça qu'il faut
éviter cette synthaxe. Essais de le mettre entre crochet :

monSQL = "SELECT DISTINCT Véhicule.[nom], ...

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Guy FALESSE" %
Salut Gilles,
Je viens de tester = au lieu de LIKE et j'ai toujours la même erreur :-(
Pas de bol.
@+

Guy FALESSE

"Gilles MOUGNOZ" de news:
Bonjour, Guy

Et en remplaçant "LIKE" par "=" ?
Si [N°Chassis] est numérique, tu peux aussi tenter un modulo par 100...

Une petite astuce au passage: comme je ne parle pas couramment SQL ;-)
ce que je fais, c'est que je construit ma requête avec l'interface
graphique,
puis j'affiche le code SQL généré par Access et je l'adapte à mes besoins
dans le code.
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Guy FALESSE"
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la
virgule, j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi" news:
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à
écrire un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As
Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '"
& chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

















Guy FALESSE
Le #6195211
Salut Eric et Jessy,
Merci de vos réponses :-)
Cela n'a rien changé du tout, toujours la même erreur.
Même en faisant cela:
monSQL = "SELECT * From Véhicule WHERE RIGHT (Véhicule.[N°chassis]," & unCH
& ") = '" & chCritères & "';"
ça ne change rien :-(
@+

Guy FALESSE

"Jessy Sempere" %
Bonjour

Le problème vient peut-être du champ nom...
Access interprêtre sûrement mal ce nom de champ, c'est pour ça qu'il faut
éviter cette synthaxe. Essais de le mettre entre crochet :

monSQL = "SELECT DISTINCT Véhicule.[nom], ...

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Guy FALESSE" %
Salut Gilles,
Je viens de tester = au lieu de LIKE et j'ai toujours la même erreur
:-( Pas de bol.
@+

Guy FALESSE

"Gilles MOUGNOZ" de news:
Bonjour, Guy

Et en remplaçant "LIKE" par "=" ?
Si [N°Chassis] est numérique, tu peux aussi tenter un modulo par 100...

Une petite astuce au passage: comme je ne parle pas couramment SQL ;-)
ce que je fais, c'est que je construit ma requête avec l'interface
graphique,
puis j'affiche le code SQL généré par Access et je l'adapte à mes
besoins dans le code.
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Guy FALESSE"
Salut Ze Titi,
Merci pour ta réponse, mais, lorsque je mets le ; à la place de la
virgule, j'ai une erreur de syntaxe :-(
@+

Guy FALESSE


"ze Titi" news:
Hello Guy FALESSE !

Et en mettant un ";" à la place de la "," dans le Right ?

En ce jour mémorable du lundi 05/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour à tous,

Je vais devenir chèvre, je me demande si j'y arriverai un jour à
écrire un SQL sans avoir d'erreur.
Tout est dans le titre :-(

Dim chCritères As String, monSQL As String, maBD As Database
Dim rst As Recordset, leNbre As Long, rep As String, unCH As
Variant
Set maBD = CurrentDb
line1:
chCritères = InputBox("Tapez les derniers chiffres" & vbLf _
& "du n° de chassis à retrouver.", "Recherche par n° de chassis")
If chCritères = "" Then
DoCmd.Close acForm, "frmRechercheChassis"
Exit Sub
End If
unCH = Len(chCritères)

monSQL = "SELECT DISTINCT Véhicule.nom, Véhicule.Marque,
Véhicule.type, Véhicule.[N°Chassis] " _
& "FROM Véhicule " _
& "WHERE RIGHT(Véhicule.[N°Chassis]," & unCH & ") LIKE '"
& chCritères & "';"

Set rst = maBD.OpenRecordset(monSQL)

Un grand merci d'avance pour votre aide.

Guy FALESSE


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





















Eric
Le #6195121
Bonjour Guy,

Fais un debug.print monSQL avant l'ouverture de ton recordset pour voir
le contenu de ta chaine SQL.
La construction me parait correcte à l'espace de trop après le Right
mais ça ne devrait pas avoir d'influence.
Au pire, copies le contenu de monsql qui est affiché dans la fenêtre
Exécution dans la fenêtre sql d'une requete vierge et affiches le
résultat de la requête. Il sera peut-être plus simple de visualiser
l'erreur.

Salut Eric et Jessy,
Merci de vos réponses :-)
Cela n'a rien changé du tout, toujours la même erreur.
Même en faisant cela:
monSQL = "SELECT * From Véhicule WHERE RIGHT (Véhicule.[N°chassis]," & unCH
& ") = '" & chCritères & "';"
ça ne change rien :-(
@+



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

Guy FALESSE
Le #6195101
Salut Éric,
Merci pour ta réponse,
Je vais regarder à cela, tout à l'heure, maintenant,il faut que je parte :-)
@+
Guy FALESSE


"Eric"
Bonjour Guy,

Fais un debug.print monSQL avant l'ouverture de ton recordset pour voir le
contenu de ta chaine SQL.
La construction me parait correcte à l'espace de trop après le Right mais
ça ne devrait pas avoir d'influence.
Au pire, copies le contenu de monsql qui est affiché dans la fenêtre
Exécution dans la fenêtre sql d'une requete vierge et affiches le résultat
de la requête. Il sera peut-être plus simple de visualiser l'erreur.

Salut Eric et Jessy,
Merci de vos réponses :-)
Cela n'a rien changé du tout, toujours la même erreur.
Même en faisant cela:
monSQL = "SELECT * From Véhicule WHERE RIGHT (Véhicule.[N°chassis]," &
unCH & ") = '" & chCritères & "';"
ça ne change rien :-(
@+



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



Publicité
Poster une réponse
Anonyme