Ich krieg die Schleife nicht hin
15.03.2005 13:59:43
Peter
Hab ne kurze für euch wahrscheinlich leichte Frage.
Bei nachfolgenden Code (danke an Tom) der so funktioniert wie ich es will, bis auf die Ausnahme das er immer nur die erste Zeile des Datensatzes in Acces überträgt und nicht alle (dies soll logischerweise in die nächste Zeille im Acces Tabellenblat geschehen).
Folglich habe ich versucht einen Loop zu schreiben (zum ersten mal) und welch wunder er funktioniert nicht. Weis jemand Rat, Danke vorab.
'Zur Verfügung gestellt von Tom auf www.herber.de
Private Sub CommandButton7_Click()
Dim ADOC As New ADODB.Connection
Dim DBS As New ADODB.Recordset
Dim Datei As String
Dim i As Long
Datei = "C:\Dokumente und Einstellungen\H. Muster\Desktop\Excel Anwendungen\Kunden.mdb"
ADOC.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Datei & ";"
DBS.Open "Tabelle1", ADOC, adOpenKeyset, _
adLockOptimistic
i = 2
DBS.AddNew
DBS!Kundennummer = Sheets("DB2").Cells(i, 1)
DBS!Firma = Sheets("DB2").Cells(i, 2)
DBS!Straße = Sheets("DB2").Cells(i, 3)
DBS!Hausnummer = Sheets("DB2").Cells(i, 4)
DBS!PLZ = Sheets("DB2").Cells(i, 5)
DBS!Ort = Sheets("DB2").Cells(i, 6)
DBS!Telefon_gesch = Sheets("DB2").Cells(i, 7)
' etwas verkürzt da noch ca. 20 Datenbankfelder kommen
DBS.Update
DBS.Close
' hier fängts an zu hacken bei .movenext meckert er
i = i + 1
.MoveNext
Loop
ADOC.Close
MsgBox ("Kundendatei wurde übertragen !!!")
Unload Me
End Sub
P.S.:
Da diese Frage aus einem anderen vor 5 Tagen resultierten Beitrag stammt und nicht beantwortet wurde, stelle ich die Frage neu.
Sollte dies gegen Forumsregeln verstossen bitte ich mir dies zu mitzuteilen und entschuldige mich vorab.
MfG
Peter
Anzeige