UPDATE sur un table différente d'un SELECT préalable
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 :
Code:
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 |
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 :
- à savoir si c'est la bonne méthode,
- comprendre comment l'exploiter avec des tables différentes.
Merci d'avance pour vos lumières !