Incompatibilité de type lors d'un Update en vba

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DDER
Le #20342191
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





Bear76
Le #20342281
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)
DDER
Le #20342691
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)





Fabien
Le #20342751
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.
@+
Bear76
Le #20344481
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.
@+
Blaise Cacramp
Le #20344921
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"
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.
@+




Bear76
Le #20366871
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.
Publicité
Poster une réponse
Anonyme