Bonjour,
Je travaille sur un script qui doit mettre à jour des enregistrements dans une base SQL Server, dans 2 tables différentes.
Pour cela, j'ai besoin de récupérer des GUID dans une troisième table, via un SELECT assez riche. En le décomposant, j'arrive bien à récupérer les GUID dont j'ai besoin dans un ADODB.Recordset.
A partir de là, j'aurais besoin de faire mon UPDATE sur mes 2 autres tables, mais je bloque sur la méthode. Pour le moment, j'ai créé une boucle qui pour chaque GUID récupéré essaye de lancer les UPDATE des mes tables, mais je tombe systématiquement sur une erreur qui me signale que mon objet (le recordset) est fermé.
Pour être plus pratique, la partie du script en question :
J'ai pu lire qu'il existe une méthode qui permet de mettre à jour les enregistrements directement via le Recordset, mais je n'arrive pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Set conn = CreateObject("ADODB.Connection") conn.Open strConnection Set rs = CreateObject("ADODB.recordset") strSQL="SELECT ...." rs.Open strSQL, conn, 3, 3 If rs.RecordCount > 0 Then rs.MoveFirst While not rs.EOF rs.fields("WFTGuid") = WFTGuid strSQL ="UPDATE Table1 SET Table1.DateDone = CURRENT_TIMESTAMP WHERE Table1.Table2Guid='" & WFTGuid & "' " & _ "UPDATE Table2 SET Table2.DateDone=CURRENT_TIMESTAMP, Table2.Status=-2 WHERE Table2.Guid='" & WFTGuid & "' " rs.MoveNext Wend conn.execute(strSQL) End If
- à savoir si c'est la bonne méthode,
- comprendre comment l'exploiter avec des tables différentes.
Merci d'avance pour vos lumières !
Partager