PDA

View Full Version : Update Array



Spezlerin
05-12-12, 08:05
Hallo an Alle!
Hoffe das meine Frage bei dem Schnee durchkommt;)
Ich möchte die Datenbank auf unserer AS400 updaten. Dabei habe ich um die 100 Datensätze die geändert werden müssen pro Woche.
Nun habe ich dies in einer Schleife gelöst die aber jedesmal Verbindung herstellt und trennt. Gibt es eine Möglichkeit ein Array zu updaten?
so sieht es jetzt aus:
Private Sub CommandButton1_Click()
Dim Cnn As ADODB.Recordset
Dim strSQL, temp As String
Dim nummer As Long
Dim intCol As Long
intCol = Range("D65536").End(xlUp).Row
Set Cnn = New ADODB.Recordset
For n = 2 To intCol
nummer = Cells(n, 4)
temp = Cells(n, 5)
strSQL = "UPDATE Tab1 A SET Wert = '" & temp & "' WHERE Wert2 = 11 and Wert3= '" & nummer & "' "
Cnn.Open strSQL, "Provider=XXXX;Data Source=x.x.x.x;User ID='user';Password='user';"
Next
End Sub

und so wäre es toll:
strSQL = "UPDATE Tab1 A SET Wert = Array(*) WHERE Wert2 = 11 and Wert3= Array(*)"

Kann hier jeman helfen?
Danke.

Fuerchau
05-12-12, 08:16
Eine Array-Funktion gibt es nicht.
Aber dein Verfahren ist falsch:

1. brauchst du ein Connection-Objekt
dim MyCon as new ADODB.Connection
Dort brauchst du nur 1x den Open.

2. fährst du besser mit einem Command-Objekt.
dim MyCmd as new ADOD.Command
MyCmd.Commandtext = UPDATE Tab1 SET Wert = ? WHERE Wert2 = 11 and Wert3= ?"

Dann kannst du in einer Schleife
MyCmd(0) = temp
MyCmd(1) = nummer
MyCmd.Execute
durchführen.

Zum Schluss kommt dann noch MyCon.Close.
Empfehlenswert ist noch ein Index über Wert und Wert2 der Tabelle Tab1.