VBScript Modifier une table dans une bdd [Résolu]

Simouss33 85 Messages postés jeudi 17 novembre 2005Date d'inscription 15 février 2006 Dernière intervention - 8 févr. 2006 à 17:19 - Dernière réponse : Simouss33 85 Messages postés jeudi 17 novembre 2005Date d'inscription 15 février 2006 Dernière intervention
- 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!
Afficher la suite 

3 réponses

Meilleure réponse
cs_wape 262 Messages postés samedi 21 décembre 2002Date d'inscription 19 décembre 2010 Dernière intervention - 9 févr. 2006 à 09:26
1
Merci
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

Merci cs_wape 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Meilleure réponse
Simouss33 85 Messages postés jeudi 17 novembre 2005Date d'inscription 15 février 2006 Dernière intervention - 9 févr. 2006 à 10:42
1
Merci
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.

Merci Simouss33 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Meilleure réponse
Simouss33 85 Messages postés jeudi 17 novembre 2005Date d'inscription 15 février 2006 Dernière intervention - 9 févr. 2006 à 10:42
1
Merci
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.

Merci Simouss33 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.