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

A97 : Problème de syntaxe en SQL

3 réponses
Avatar
Stéphane Brille
Bonjour à vous,
encore un après-midi perdu sur un truc qui doit être évident, mais je ne
trouve pas !
Pour ajouter au champ STNompProg de la table ProgParam2 le contenu du champ
[NomProg]
de mon formulaire, j'utilise :

Dim strsql As String
strsql = "INSERT INTO ProgParam2 (STNomProg) SELECT " & Me![NomProg] & "
;"
CurrentDb.Execute strsql

Mais ça marche pô, ch'trouve pô pourquoi !

Avec :
SELECT "" & Me![NomProg] & "" ;"

j'enregistre bien au bon endroit, mais j'enregistre & Me![NomProg] & , et
pas la valeur du champ ! si j'enlève mes doubles guillemets, le message
d'erreur me signale trop peu de paramètres. (pourtant l'infobulle me montre
que la bonne valeur est retournée dans le champ). Depuis 2 h, que j'y suis,
à ajouter des apostrophes, des.value, des Forms![monForm]! etc. mais je ne
m'en sors pas.

Un p'tit coup de pouce, siouplait ?

--
Cordialement,

Stéphane Brille
www.microbloc.com
(enlevez NoSpam. pour répondre)

3 réponses

Avatar
Rv
Salut,

Avec cette syntaxe :

strsql = "INSERT INTO ProgParam2 (STNomProg) VALUES ('" & Me![NomProg]
& "')"

Ca dit quoi?

A+

Rv



"Stéphane Brille" a écrit dans le message de
news:botml3$6sr$
Bonjour à vous,
encore un après-midi perdu sur un truc qui doit être évident, mais je ne
trouve pas !
Pour ajouter au champ STNompProg de la table ProgParam2 le contenu du
champ

[NomProg]
de mon formulaire, j'utilise :

Dim strsql As String
strsql = "INSERT INTO ProgParam2 (STNomProg) SELECT " & Me![NomProg] &
"

;"
CurrentDb.Execute strsql

Mais ça marche pô, ch'trouve pô pourquoi !

Avec :
SELECT "" & Me![NomProg] & "" ;"

j'enregistre bien au bon endroit, mais j'enregistre & Me![NomProg] & , et
pas la valeur du champ ! si j'enlève mes doubles guillemets, le message
d'erreur me signale trop peu de paramètres. (pourtant l'infobulle me
montre

que la bonne valeur est retournée dans le champ). Depuis 2 h, que j'y
suis,

à ajouter des apostrophes, des.value, des Forms![monForm]! etc. mais je ne
m'en sors pas.

Un p'tit coup de pouce, siouplait ?

--
Cordialement,

Stéphane Brille
www.microbloc.com
(enlevez NoSpam. pour répondre)




Avatar
Stéphane Brille
ça maaaaarche ! (et juste avec le copier-coller, grande classe...)

Merci, mais, Grand Maître, quel est ce miracle ? d'où vient ce Value ?
L'ancienne syntaxe fonctionne très bien, mais avec des dates et des # :

If dcount("*","LaTable","[dateprog] = #" & me!mardi.value & "#") = 0 Then
strsql = "INSERT INTO LaTable (dateprog) SELECT #" & me!mardi.value & "# ;"
currentdb.execute strsql
end if

Depuis que je le bidouille pour y passer mon champ texte, je n'arrive à
rien. Est-ce parce que le type de champ n'est pas le même ? ou aucun rapport
? (Ceci dit, ce ne serait pas la première fois que j'utilise un code sans le
comprendre, je dois être le seul dans ce cas ;-)

En tous cas, grand merci.
--
Cordialement,

Stéphane Brille
www.microbloc.com
(enlevez NoSpam. pour répondre)
Avatar
Rv
Salut,

Normalement avec le champ texte la syntaxe doit être la même que pour
les dates en remplaçant le # par un '.
Pour le INSERT INTO ... VALUES ... il permet d'écrire une requête
d'insertion d'un seul enregistrement, tandis que le INSERT INTO ... SELECT
... permet d'insérer autant d'enregistrements que le SELECT en retourne.
Je crois que dans ce cas les deux doivent fonctionner aussi bien. J'ai
proposé la syntaxe avec le VALUES car elle semble plus adaptée (1 seule
valeur à insérer).


A+

Rv

"Stéphane Brille" a écrit dans le message de
news:botsqa$sdu$
ça maaaaarche ! (et juste avec le copier-coller, grande classe...)

Merci, mais, Grand Maître, quel est ce miracle ? d'où vient ce Value ?
L'ancienne syntaxe fonctionne très bien, mais avec des dates et des # :

If dcount("*","LaTable","[dateprog] = #" & me!mardi.value & "#") = 0 Then
strsql = "INSERT INTO LaTable (dateprog) SELECT #" & me!mardi.value & "#
;"

currentdb.execute strsql
end if

Depuis que je le bidouille pour y passer mon champ texte, je n'arrive à
rien. Est-ce parce que le type de champ n'est pas le même ? ou aucun
rapport

? (Ceci dit, ce ne serait pas la première fois que j'utilise un code sans
le

comprendre, je dois être le seul dans ce cas ;-)

En tous cas, grand merci.
--
Cordialement,

Stéphane Brille
www.microbloc.com
(enlevez NoSpam. pour répondre)