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

Requete ajout VBA : pb d'interprétation d'une valeur alphanumérique

3 réponses
Avatar
leoxnet
Bonjour,

Je butte sur une erreur dans une ligne de code. Si quelqu=E2=80=99un d=E2=
=80=99entre
vous =C3=A0 une id=C3=A9e

Dans un module, j=E2=80=99ai la ligne suivante

requete2 =3D "INSERT into resultat (Article,2,4,6,8,cumul)" _
& " SELECT " & article1 & "," & cpt2 & "," & cpt4 &
"," & cpt6 & "," & cpt8 & "," & total _

DoCmd.RunSQL (requete2)


Donc une requ=C3=AAte ajout,

Article1 d=C3=A9signe un code article que je recup=C3=A8re d=E2=80=99une t=
able en
amont, le champ est de format texte dans les deux tables (table
d=E2=80=99origine et table de destination)

Tant que article1 est une chaine =C2=AB de nombre =C2=BB (ex : 56734567), p=
as de
souci
Quand article1 contient un caract=C3=A8re alpha(ex : A56677), catastrophe.
Access prend la valeur comme un param=C3=A8tre, et m=E2=80=99affiche une be=
lle
fen=C3=AAtre en me demandant de saisir la valeur correspondant =C3=A0 A5667=
7)

J=E2=80=99ai tout essay=C3=A9,
J=E2=80=99ai m=C3=AAme d=C3=A9finit explicitement que article1 est une chai=
ne (type
string), mais sans succ=C3=A9s.
Quelqu=E2=80=99un a-t-il une id=C3=A9e pour r=C3=A9soudre mon probl=C3=A8me

Y=E2=80=99a quelques jours, j=E2=80=99avais un probl=C3=A8me similaire sur =
un autre champ.
J=E2=80=99avais codifi=C3=A9 une date en tant que texte (ex : 2007/15, pour=
semaine
15 de l=E2=80=99ann=C3=A9e 2007).

Quand je lisais la variable dans une bo=C3=AEte de dialogue, il m=E2=80=99a=
ffichait
bien 2007/15, mais d=C3=A8s que j=E2=80=99=C3=A9crivais la valeur dans une =
table dont le
champ est de format texte, Access =C3=A9crivait 133, 8 =EF=83=A0 il faisai=
t 2007
divis=C3=A9 par 15).
Si quelqu=E2=80=99un a =C3=A9galement une id=C3=A9e pour =C3=A7a.


Merci de votre aide

3 réponses

Avatar
Fabien
Bonjour,

Je butte sur une erreur dans une ligne de code. Si quelqu’un d’entre
vous à une idée

Dans un module, j’ai la ligne suivante

requete2 = "INSERT into resultat (Article,2,4,6,8,cumul)" _
& " SELECT " & article1 & "," & cpt2 & "," & cpt4 &
"," & cpt6 & "," & cpt8 & "," & total _

DoCmd.RunSQL (requete2)


Donc une requête ajout,

Article1 désigne un code article que je recupère d’une table en
amont, le champ est de format texte dans les deux tables (table
d’origine et table de destination)

Tant que article1 est une chaine « de nombre » (ex : 56734567), pas de
souci
Quand article1 contient un caractère alpha(ex : A56677), catastrophe.
Access prend la valeur comme un paramètre, et m’affiche une belle
fenêtre en me demandant de saisir la valeur correspondant à A56677)

J’ai tout essayé,
J’ai même définit explicitement que article1 est une chaine (type
string), mais sans succés.
Quelqu’un a-t-il une idée pour résoudre mon problème

Y’a quelques jours, j’avais un problème similaire sur un autre champ.
J’avais codifié une date en tant que texte (ex : 2007/15, pour semaine
15 de l’année 2007).

Quand je lisais la variable dans une boîte de dialogue, il m’affichait
bien 2007/15, mais dès que j’écrivais la valeur dans une table dont le
champ est de format texte, Access écrivait 133, 8  il faisait 2007
divisé par 15).
Si quelqu’un a également une idée pour ça.


Merci de votre aide

Bonjour,

Si article est de type string alors
requete2 = "INSERT into resultat (Article,2,4,6,8,cumul)" _
& " SELECT '" & article1 & "'," & cpt2 & "," & cpt4 &
"," & cpt6 & "," & cpt8 & "," & total _


Avant et après article1 il faut des '
A essayer ....

Avatar
leoxnet
Bonjour,

Merci ca fonctionne.
Dans mes tests, je les avais mal positionné.

J'aurais du mieux reflechir.

Bonne journée


Bonjour,
Si article est de type string alors
requete2 = "INSERT into resultat (Article,2,4,6,8,cumul)" _
& " SELECT '" & article1 & "'," & cpt2 & "," & cpt4 &
"," & cpt6 & "," & cpt8 & "," & total _


Avant et après article1 il faut des '
A essayer ....- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Avatar
Fabien
Bonjour,

Merci ca fonctionne.
Dans mes tests, je les avais mal positionné.

J'aurais du mieux reflechir.

Bonne journée

Bonjour,
Si article est de type string alors
requete2 = "INSERT into resultat (Article,2,4,6,8,cumul)" _
& " SELECT '" & article1 & "'," & cpt2 & "," & cpt4 &
"," & cpt6 & "," & cpt8 & "," & total _


Avant et après article1 il faut des '
A essayer ....- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Ok bonne suite ...