VBScript Modifier une table dans une bdd

Résolu
Simouss33 Messages postés 85 Date d'inscription jeudi 17 novembre 2005 Statut Membre Dernière intervention 15 février 2006 - 8 févr. 2006 à 17:19
Simouss33 Messages postés 85 Date d'inscription jeudi 17 novembre 2005 Statut Membre Dernière intervention 15 février 2006 - 9 févr. 2006 à 10:42
Bonjour à tous!

J'ai un petit problème en VBScript, je voudrais modifier une table dans une base de données Access. J'ai donc écrit le code suivant:

Dim sage
Dim db
Dim req
Dim rst1
Dim rst2
Dim rst3

Set sage = CreateObject("ADODB.Connection")
sage.Open "SageGescoTD", "Bruno", "max" 'La je me connecte à une source de données ODBC issue d'un logiciel de gestion commerciale

Set db = CreateObject("ADODB.Connection")
db.Open "Provider=microsoft.jet.oledb.4.0 ; data source= C:\MaBase.mdb"

Set rst1 = CreateObject("ADODB.Recordset")
req = "DELETE Tbl_FComptet.* FROM Tbl_FComptet"
rst1.Open req, db

Set rst3 = CreateObject("ADODB.Recordset")
rst3.Open "SELECT F_COMPTET.* FROM F_COMPTET", sage

Set rst2 = CreateObject("ADODB.Recordset")
rst2.Open "Tbl_FComptet", db

While Not rst3.EOF
rst2.AddNew
rst2("BT_NUM") = rst3("BT_NUM")
rst2("CA_NUM") = rst3("CA_NUM")
rst2("CBCREATEUR") = rst3("CBCREATEUR")
rst2("CBMODIFICATION") = rst3("CBMODIFICATION")
rst2("CBREPLICATION") = rst3("CBREPLICATION")
....

Mon problème vient du rst2.AddNew, j'ai un erreur me disant que l'objet "ADODB.Recordset" ne permet pas de faire de mise à jour.

J'aurais bien écrit une requête du type "INSERT INTO" mais comme mes tables viennent de deux sources différentes je sais po comment faire

Si quelqu'un pouvait m'aider... PLEASE!

3 réponses

cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
9 févr. 2006 à 09:26
Bonjour,

Essaye qqch du genre :

(...)
Set rst2 = CreateObject("ADODB.Recordset")
rst2.CursorType = 1 '1:adOpenKeyset
rst2.CursorLocation = 3 '3:adUseClient
rst2.LockType = 3 '3:adLockOptimistic
rst2.Open "SELECT * FROM Tbl_FComptet", db

While Not rst3.EOF
rst2.AddNew
rst2("BT_NUM") = rst3("BT_NUM")
rst2("CA_NUM") = rst3("CA_NUM")
rst2("CBCREATEUR") = rst3("CBCREATEUR")
rst2("CBMODIFICATION") = rst3("CBMODIFICATION")
rst2("CBREPLICATION") = rst3("CBREPLICATION")
(...)

wape
1
Simouss33 Messages postés 85 Date d'inscription jeudi 17 novembre 2005 Statut Membre Dernière intervention 15 février 2006 2
9 févr. 2006 à 10:42
Merci bien wape, cela m'a été très utile.
Cela dit en passant, j'ai remarqué qu'on pouvait économiser quelques lignes en faisant

rst2.Open "SELECT * FROM Tbl_FComptet", db, 2, 3

En tout cas merci pour ton aide.
1
Simouss33 Messages postés 85 Date d'inscription jeudi 17 novembre 2005 Statut Membre Dernière intervention 15 février 2006 2
9 févr. 2006 à 10:42
Merci bien wape, cela m'a été très utile.
Cela dit en passant, j'ai remarqué qu'on pouvait économiser quelques lignes en faisant

rst2.Open "SELECT * FROM Tbl_FComptet", db, 2, 3

En tout cas merci pour ton aide.
1
Rejoignez-nous