OVH Cloud OVH Cloud

UPDATE

4 réponses
Avatar
JM
Bonjour.

Pour envoyer des données dans une table SQL (avec un OpenDatabase), je fais
:

Set qdfTemp = dbsMabase.CreateQueryDef("", "insert into [Certificats] values
('" + VALVE + "','" + SIZE + "'')")
qdfTemp.Execute

et c'est parfait.

Par contre :

Set QdfImporte = dbsMabase.CreateQueryDef("", "Update [Certificats] Set
Type='" + Cde + "' WHERE SerialNumber='" + Cde1 + "' ")
QdfImporte.Execute

ne fonctionne pas (Erreur 3073, l'opération doit utiliser une requête qui
peut être mise à jour).

Qui pourrait me dire pourquoi et comment faire pour créer et exécuter une
requête UPDATE en VBA ?

Mille mercis.

4 réponses

Avatar
JB
Bonjour,

Si SerialNumber est numérique, il ne faut pas d'apostrophes

JB

Bonjour.

Pour envoyer des données dans une table SQL (avec un OpenDatabase), je fais
:

Set qdfTemp = dbsMabase.CreateQueryDef("", "insert into [Certificats] v alues
('" + VALVE + "','" + SIZE + "'')")
qdfTemp.Execute

et c'est parfait.

Par contre :

Set QdfImporte = dbsMabase.CreateQueryDef("", "Update [Certificats] Set
Type='" + Cde + "' WHERE SerialNumber='" + Cde1 + "' ")
QdfImporte.Execute

ne fonctionne pas (Erreur 3073, l'opération doit utiliser une requête qui
peut être mise à jour).

Qui pourrait me dire pourquoi et comment faire pour créer et exécuter une
requête UPDATE en VBA ?

Mille mercis.


Avatar
JM
Merci. SerialNumber n'est pas numérique.

Mais même en simplifiant la chaîne SQL au maximum, ça plante pareil. Je
pensais que UPDATE réclamait une autre méthode, non ?

Merci encore



"JB" a écrit dans le message de
news:
Bonjour,

Si SerialNumber est numérique, il ne faut pas d'apostrophes

JB

Bonjour.

Pour envoyer des données dans une table SQL (avec un OpenDatabase), je
fais

:

Set qdfTemp = dbsMabase.CreateQueryDef("", "insert into [Certificats]
values

('" + VALVE + "','" + SIZE + "'')")
qdfTemp.Execute

et c'est parfait.

Par contre :

Set QdfImporte = dbsMabase.CreateQueryDef("", "Update [Certificats] Set
Type='" + Cde + "' WHERE SerialNumber='" + Cde1 + "' ")
QdfImporte.Execute

ne fonctionne pas (Erreur 3073, l'opération doit utiliser une requête qui
peut être mise à jour).

Qui pourrait me dire pourquoi et comment faire pour créer et exécuter une
requête UPDATE en VBA ?

Mille mercis.


Avatar
JB
Syntaxe de Update:

UPDATE table SET champ1=nouvelleValeur1,champ2=nouvelleValeur2 WHERE
critère

-Il est étonnant qu'un champ de la BD soit nommé Type (qui pourrait
être un mot clé)
-S'il y a des apostrophes dans les chaines, il faut les doubler.


JB




Merci. SerialNumber n'est pas numérique.

Mais même en simplifiant la chaîne SQL au maximum, ça plante pareil . Je
pensais que UPDATE réclamait une autre méthode, non ?

Merci encore



"JB" a écrit dans le message de
news:
Bonjour,

Si SerialNumber est numérique, il ne faut pas d'apostrophes

JB

Bonjour.

Pour envoyer des données dans une table SQL (avec un OpenDatabase), je
fais

:

Set qdfTemp = dbsMabase.CreateQueryDef("", "insert into [Certificats]
values

('" + VALVE + "','" + SIZE + "'')")
qdfTemp.Execute

et c'est parfait.

Par contre :

Set QdfImporte = dbsMabase.CreateQueryDef("", "Update [Certificats] S et
Type='" + Cde + "' WHERE SerialNumber='" + Cde1 + "' ")
QdfImporte.Execute

ne fonctionne pas (Erreur 3073, l'opération doit utiliser une requê te qui
peut être mise à jour).

Qui pourrait me dire pourquoi et comment faire pour créer et exécut er une
requête UPDATE en VBA ?

Mille mercis.




Avatar
JM
OK, mais c'est bien un Execute qu'il faut faire ?


"JB" a écrit dans le message de
news:
Syntaxe de Update:

UPDATE table SET champ1=nouvelleValeur1,champ2=nouvelleValeur2 WHERE
critère

-Il est étonnant qu'un champ de la BD soit nommé Type (qui pourrait
être un mot clé)
-S'il y a des apostrophes dans les chaines, il faut les doubler.


JB




Merci. SerialNumber n'est pas numérique.

Mais même en simplifiant la chaîne SQL au maximum, ça plante pareil. Je
pensais que UPDATE réclamait une autre méthode, non ?

Merci encore



"JB" a écrit dans le message de
news:
Bonjour,

Si SerialNumber est numérique, il ne faut pas d'apostrophes

JB

Bonjour.

Pour envoyer des données dans une table SQL (avec un OpenDatabase), je
fais

:

Set qdfTemp = dbsMabase.CreateQueryDef("", "insert into [Certificats]
values

('" + VALVE + "','" + SIZE + "'')")
qdfTemp.Execute

et c'est parfait.

Par contre :

Set QdfImporte = dbsMabase.CreateQueryDef("", "Update [Certificats] Set
Type='" + Cde + "' WHERE SerialNumber='" + Cde1 + "' ")
QdfImporte.Execute

ne fonctionne pas (Erreur 3073, l'opération doit utiliser une requête
qui


peut être mise à jour).

Qui pourrait me dire pourquoi et comment faire pour créer et exécuter
une


requête UPDATE en VBA ?

Mille mercis.