Je bloque sur une requête dans un recordset dont voici le code :
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ =
me!textchamp;", dbOpenDynaset)
rs.MoveLast
nb = rs.RecordCount
MsgBox (nb)
J'ai sur la ligne set rs = ...................................
avec comme erreur 3061 (trop peu de paramètres ; 1 attendu).
table est le nom de la table, champ le champ dans la table et textchamp une
zone de texte du formulaire contenant le bouton où est placé ce code.
Tout ceci pour regarder si il y a déjà un champ dans la table avant de
l'insérer...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gafish
Bonjour,
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes "SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";" ou si ton champ est de type texte "SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & " ' ;"
Arnaud
Bonjour,
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes
"SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";"
ou si ton champ est de type texte
"SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & " '
;"
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes "SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";" ou si ton champ est de type texte "SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & " ' ;"
Arnaud
Hervé DUCARNE
Merci beaucoup ça fonctionne !
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement ".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
Aussi, quand doit-on mettre des ' et des ".
Merci encore.
@+
"Gafish" a écrit dans le message de news:%
Bonjour,
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes "SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";" ou si ton champ est de type texte "SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & " '
;"
Arnaud
Merci beaucoup ça fonctionne !
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement
".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
Aussi, quand doit-on mettre des ' et des ".
Merci encore.
@+
"Gafish" <---gafish@free.fr----nospam> a écrit dans le message de
news:%23A64oZXVFHA.2960@TK2MSFTNGP15.phx.gbl...
Bonjour,
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE
table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes
"SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";"
ou si ton champ est de type texte
"SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & "
'
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement ".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
Aussi, quand doit-on mettre des ' et des ".
Merci encore.
@+
"Gafish" a écrit dans le message de news:%
Bonjour,
Set rs = db.OpenRecordset("SELECT table.champ FROM table WHERE table.champ
me!textchamp;", dbOpenDynaset)
Il faut dans ta requête que tu mettes "SELECT table.champ FROM table WHERE table.champ = " & me!textchamp & ";" ou si ton champ est de type texte "SELECT table.champ FROM table WHERE table.champ = ' " & me!textchamp & " '
;"
Arnaud
Gafish
Merci beaucoup ça fonctionne !
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement ".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la valeur, d'où la nécessité de sortir de la chaîne de caractère. En fait la requête est simplement un texte interprêté ensuite.
Aussi, quand doit-on mettre des ' et des ".
Ce texte de la requête est mis entre " " car ton openrecordset attend un texte qui est une requête SQL valide. Les ' font partie de la syntaxe SQL pour les champs de type string (texte). Ils servent à encadrer une valeur d'un champ texte.
Arnaud
Merci beaucoup ça fonctionne !
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement
".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce
que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la valeur,
d'où la nécessité de sortir de la chaîne de caractère. En fait la requête
est simplement un texte interprêté ensuite.
Aussi, quand doit-on mettre des ' et des ".
Ce texte de la requête est mis entre " " car ton openrecordset attend un
texte qui est une requête SQL valide.
Les ' font partie de la syntaxe SQL pour les champs de type string (texte).
Ils servent à encadrer une valeur d'un champ texte.
Mais peux-tu ùe dire en 2 mots pourquoi on ne peut mettre directement ".....=me!wxxxx", que l'on est obligé de "couper" la requête en 2 ??
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la valeur, d'où la nécessité de sortir de la chaîne de caractère. En fait la requête est simplement un texte interprêté ensuite.
Aussi, quand doit-on mettre des ' et des ".
Ce texte de la requête est mis entre " " car ton openrecordset attend un texte qui est une requête SQL valide. Les ' font partie de la syntaxe SQL pour les champs de type string (texte). Ils servent à encadrer une valeur d'un champ texte.
Arnaud
Hervé DUCARNE
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la valeur,
d'où la nécessité de sortir de la chaîne de caractère. En fait la requête est simplement un texte interprêté ensuite.
Salut et merci, mais, quand je saisi directement dans access (sans vba) une requête, je ne la coupe pas en 2...
Ce texte de la requête est mis entre " " car ton openrecordset attend un texte qui est une requête SQL valide. Les ' font partie de la syntaxe SQL pour les champs de type string (texte).
Ils servent à encadrer une valeur d'un champ texte.
Même remarque : si je saisi une requête dans access, je peux bien mettre : SELECT xxx from ttt where xxx like "blabla". Là il reconnaît bien que le texte est encadré par des " et non pas par des '
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
@+
Arnaud
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce
que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la
valeur,
d'où la nécessité de sortir de la chaîne de caractère. En fait la requête
est simplement un texte interprêté ensuite.
Salut et merci,
mais, quand je saisi directement dans access (sans vba) une requête, je ne
la coupe pas en 2...
Ce texte de la requête est mis entre " " car ton openrecordset attend un
texte qui est une requête SQL valide.
Les ' font partie de la syntaxe SQL pour les champs de type string
(texte).
Ils servent à encadrer une valeur d'un champ texte.
Même remarque : si je saisi une requête dans access, je peux bien mettre :
SELECT xxx from ttt where xxx like "blabla".
Là il reconnaît bien que le texte est encadré par des " et non pas par des '
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
En fait si tu mets directement me!xxxx il va prendre ca comme un texte, ce que tu veux toi, ce n'est pas me!xxxx mais le contenu de me!xxxx, la valeur,
d'où la nécessité de sortir de la chaîne de caractère. En fait la requête est simplement un texte interprêté ensuite.
Salut et merci, mais, quand je saisi directement dans access (sans vba) une requête, je ne la coupe pas en 2...
Ce texte de la requête est mis entre " " car ton openrecordset attend un texte qui est une requête SQL valide. Les ' font partie de la syntaxe SQL pour les champs de type string (texte).
Ils servent à encadrer une valeur d'un champ texte.
Même remarque : si je saisi une requête dans access, je peux bien mettre : SELECT xxx from ttt where xxx like "blabla". Là il reconnaît bien que le texte est encadré par des " et non pas par des '
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
@+
Arnaud
Gafish
Salut et merci, mais, quand je saisi directement dans access (sans vba) une requête, je ne la coupe pas en 2...
Oui, car l'assistant requête attend une requête SQL directement, il est fait pour cela, tandis qu'en VBA, tu passes par une fonction, openrecordset, qui attend comme paramètre un texte. Pour lui spécifier le texte, tu l'entoures de " "
Même remarque : si je saisi une requête dans access, je peux bien mettre : SELECT xxx from ttt where xxx like "blabla". Là il reconnaît bien que le texte est encadré par des " et non pas par des '
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
Les deux marchent car Access est souple avec le SQL, idem si tu ne mets pas de ; à la fin de ta requête... mais si l'on parle norme SQL les champs textes sont entourés de simple quote.
Salut et merci,
mais, quand je saisi directement dans access (sans vba) une requête, je ne
la coupe pas en 2...
Oui, car l'assistant requête attend une requête SQL directement, il est fait
pour cela, tandis qu'en VBA, tu passes par une fonction, openrecordset, qui
attend comme paramètre un texte. Pour lui spécifier le texte, tu l'entoures
de " "
Même remarque : si je saisi une requête dans access, je peux bien mettre :
SELECT xxx from ttt where xxx like "blabla".
Là il reconnaît bien que le texte est encadré par des " et non pas par des
'
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
Les deux marchent car Access est souple avec le SQL, idem si tu ne mets pas
de ; à la fin de ta requête... mais si l'on parle norme SQL les champs
textes sont entourés de simple quote.
Salut et merci, mais, quand je saisi directement dans access (sans vba) une requête, je ne la coupe pas en 2...
Oui, car l'assistant requête attend une requête SQL directement, il est fait pour cela, tandis qu'en VBA, tu passes par une fonction, openrecordset, qui attend comme paramètre un texte. Pour lui spécifier le texte, tu l'entoures de " "
Même remarque : si je saisi une requête dans access, je peux bien mettre : SELECT xxx from ttt where xxx like "blabla". Là il reconnaît bien que le texte est encadré par des " et non pas par des '
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
Les deux marchent car Access est souple avec le SQL, idem si tu ne mets pas de ; à la fin de ta requête... mais si l'on parle norme SQL les champs textes sont entourés de simple quote.
Hervé DUCARNE
Merci pour ces explications !
@+
"Gafish" a écrit dans le message de news:
Salut et merci, mais, quand je saisi directement dans access (sans vba) une requête, je ne
la coupe pas en 2...
Oui, car l'assistant requête attend une requête SQL directement, il est fait
pour cela, tandis qu'en VBA, tu passes par une fonction, openrecordset, qui
attend comme paramètre un texte. Pour lui spécifier le texte, tu l'entoures
de " "
Même remarque : si je saisi une requête dans access, je peux bien mettre :
SELECT xxx from ttt where xxx like "blabla". Là il reconnaît bien que le texte est encadré par des " et non pas par des
'
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
Les deux marchent car Access est souple avec le SQL, idem si tu ne mets pas
de ; à la fin de ta requête... mais si l'on parle norme SQL les champs textes sont entourés de simple quote.
Merci pour ces explications !
@+
"Gafish" <---gafish@free.fr----nospam> a écrit dans le message de
news:ep44IcmVFHA.3532@TK2MSFTNGP09.phx.gbl...
Salut et merci,
mais, quand je saisi directement dans access (sans vba) une requête, je
ne
la coupe pas en 2...
Oui, car l'assistant requête attend une requête SQL directement, il est
fait
pour cela, tandis qu'en VBA, tu passes par une fonction, openrecordset,
qui
attend comme paramètre un texte. Pour lui spécifier le texte, tu
l'entoures
de " "
Même remarque : si je saisi une requête dans access, je peux bien mettre
:
SELECT xxx from ttt where xxx like "blabla".
Là il reconnaît bien que le texte est encadré par des " et non pas par
des
'
Tu me diras, si je l'entoure par des ' ça fonctionne aussi §:o)
Les deux marchent car Access est souple avec le SQL, idem si tu ne mets
pas
de ; à la fin de ta requête... mais si l'on parle norme SQL les champs
textes sont entourés de simple quote.