Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

12 réponses
Avatar
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

10 réponses

1 2
Avatar
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

Avatar
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" a écrit dans le message de 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





Avatar
Gilles MOUGNOZ
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" a écrit dans le message de news:

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" a écrit dans le message de
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









Avatar
Guy FALESSE
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" a écrit dans le message 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" a écrit dans le message de news:

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" a écrit dans le message de
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













Avatar
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" a écrit dans le message 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" a écrit dans le message de news:

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" a écrit dans le message de
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













Avatar
Eric
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

Avatar
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" a écrit dans le message de news:
%
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" a écrit dans le message
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" a écrit dans le message de news:

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" a écrit dans le message de
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

















Avatar
Guy FALESSE
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" a écrit dans le message de news:
%
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" a écrit dans le message de news:
%
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" a écrit dans le message
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" a écrit dans le message de news:

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" a écrit dans le message de
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





















Avatar
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

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


"Eric" a écrit dans le message de news:

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



1 2