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

Incompatibilité de type lors d'un Update en vba

7 réponses
Avatar
Bear76
Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance

7 réponses

Avatar
DDER
Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à jour se
trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.

A+
--
Salutations

DDER


"Bear76" a écrit :

Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance





Avatar
Bear76
Le 13/10/2009, DDER a supposé :
Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à jour se
trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.

A+
--
Salutations

DDER


"Bear76" a écrit :

Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance







Bonjour DDER
C'est une faute de frappe !

SqlStr = "UPDATE Tbl1 SET Tbl1.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)
Avatar
DDER
Dans ce genre de pb je fais toujours la difference entre les doubles quotes
(") pour delimiter le contenu du SqlStr et la simple quote (') pour delimiter
les items de la commande SQL. Ainsi je te propose la syntaxe suivante (qui
fonctionne):

SqlStr = "UPDATE T1 SET T1.ChampNum = 'BC' & '-' & Format([Id], '0000')"
SqlStr = SqlStr & " & '-' & Format(Year([Champ_DATE]), '0000') & '-' &
Format(Month([Champ_DATE]), '00')"
SqlStr = SqlStr & " & '-' & Format(Day([Champ_DATE]), '00') "

CurrentDb.Execute (SqlStr)

A+

--
Salutations

DDER


"Bear76" a écrit :

Le 13/10/2009, DDER a supposé :
> Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à jour se
> trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.
>
> A+
> --
> Salutations
>
> DDER
>
>
> "Bear76" a écrit :
>
>> Bonjour à toute la communauté,
>>
>> Lors de l'exécution d'une requête Update en vba, j'ai un message
>> "Incompatibilité de type" qui s'affiche.
>>
>> SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
>> &"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
>> CurrentDb.Execute (SqlStr)
>>
>> Le ChampNum de destination est bien de type Texte.
>> La valeur BC dans la syntaxe est une valeur "en dur".
>>
>> Si quelqu'un avait une idée.
>> Merci d'avance
>>
>>
>>
Bonjour DDER
C'est une faute de frappe !

SqlStr = "UPDATE Tbl1 SET Tbl1.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)





Avatar
Fabien
Bear76 a écrit :
Le 13/10/2009, DDER a supposé :
Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à
jour se trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.

A+
--
Salutations

DDER


"Bear76" a écrit :

Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")

CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance







Bonjour DDER
C'est une faute de frappe !

SqlStr = "UPDATE Tbl1 SET Tbl1.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")

CurrentDb.Execute (SqlStr)




SAlut
si ton ChampNum contient du texte alors
....tbl1.champNum = '" & .... & "'";
il faut des ' pour encadrer une valeur texte.
@+
Avatar
Bear76
DDER a présenté l'énoncé suivant :
Dans ce genre de pb je fais toujours la difference entre les doubles quotes
(") pour delimiter le contenu du SqlStr et la simple quote (') pour delimiter
les items de la commande SQL. Ainsi je te propose la syntaxe suivante (qui
fonctionne):

SqlStr = "UPDATE T1 SET T1.ChampNum = 'BC' & '-' & Format([Id], '0000')"
SqlStr = SqlStr & " & '-' & Format(Year([Champ_DATE]), '0000') & '-' &
Format(Month([Champ_DATE]), '00')"
SqlStr = SqlStr & " & '-' & Format(Day([Champ_DATE]), '00') "

CurrentDb.Execute (SqlStr)

A+

--
Salutations

DDER


"Bear76" a écrit :

Le 13/10/2009, DDER a supposé :
Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à jour
se trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.

A+
--
Salutations

DDER


"Bear76" a écrit :

Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance







Bonjour DDER
C'est une faute de frappe !

SqlStr = "UPDATE Tbl1 SET Tbl1.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)








Bonsoir DDER
Merci beaucoup.
Savez-vous où l'on pourrait trouver tout ce qui concerne les syntaxes
sur Access. Je ne dispose que d'un master pro vba access 2002 et d'un
aide mémoire vba access 2002.
@+
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Et tant qu'à faire, simplifier (et accélérer) ta requête par un «
format([Champ_date],'yyyy-mm-dd') »


Cdt, Blaise
---- ---- ----


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

DDER a présenté l'énoncé suivant :
Dans ce genre de pb je fais toujours la difference entre les doubles
quotes (") pour delimiter le contenu du SqlStr et la simple quote (')
pour delimiter les items de la commande SQL. Ainsi je te propose la
syntaxe suivante (qui fonctionne):

SqlStr = "UPDATE T1 SET T1.ChampNum = 'BC' & '-' & Format([Id], '0000')"
SqlStr = SqlStr & " & '-' & Format(Year([Champ_DATE]), '0000') & '-' &
Format(Month([Champ_DATE]), '00')"
SqlStr = SqlStr & " & '-' & Format(Day([Champ_DATE]), '00') "
CurrentDb.Execute (SqlStr)

A+

--
Salutations

DDER


"Bear76" a écrit :

Le 13/10/2009, DDER a supposé :
Tu tentes de faire un UPDATE sur la table Tbl1 et le champ à mettre à
jour se trouve dans Tbl (sans 1). S'agit il d'une erreur de recopie.

A+
--
Salutations

DDER


"Bear76" a écrit :

Bonjour à toute la communauté,

Lors de l'exécution d'une requête Update en vba, j'ai un message
"Incompatibilité de type" qui s'affiche.

SqlStr = "UPDATE Tbl1 SET Tbl.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)

Le ChampNum de destination est bien de type Texte.
La valeur BC dans la syntaxe est une valeur "en dur".

Si quelqu'un avait une idée.
Merci d'avance







Bonjour DDER
C'est une faute de frappe !

SqlStr = "UPDATE Tbl1 SET Tbl1.ChampNum ="
&"BC"&""-""&Format([Champ_ID],"0000")&""-""&Format(Year([Champ_DATE]),"0000")&""-""&Format(Month([Champ_DATE]),"00")&""-""&Format(Day([BCFRS_DATE]),"00")
CurrentDb.Execute (SqlStr)








Bonsoir DDER
Merci beaucoup.
Savez-vous où l'on pourrait trouver tout ce qui concerne les syntaxes sur
Access. Je ne dispose que d'un master pro vba access 2002 et d'un aide
mémoire vba access 2002.
@+




Avatar
Bear76
Blaise Cacramp a formulé ce mardi :
Selon : Bonjour ou bonsoir

Et tant qu'à faire, simplifier (et accélérer) ta requête par un «
format([Champ_date],'yyyy-mm-dd') »


Cdt, Blaise
---- ---- ----


Bonjour,
Merci beaucoup.