Daten von Excel --> Access
06.10.2012 14:42:38
Excel
Habe hier nach langer Suche einen Code gefunden, den ich nun Stück für Stück anpasse. Eigentlich bräuchte ich nur einen Code, der von Excel eine Datenreihe (A2:Z2) als neuen Datensatz anfügt. Ja, sorry, ist sicherlich ganz einfach, stell mich dazu etwas blöd an.
Beim nachstehenden Code klappt das soweit, nur müsste ich mehrere Daten transferieren. Dieser Code lässt leider nur 10 Daten (Zellen) zu. Alle Versuche sind leider gescheitert. Auch die Abfrage über Dummy ist eigentlich umsonst. Lieber würde ich noch eine Abfrage in Access ausführen lassen. Die heißt alteDaten.
Dim ADOC As New ADODB.Connection
Dim dbs As New ADODB.Recordset
Dim sPfad As String
Dim rBereich As Range, LRow As Long
With Sheets("Mitglieders")
Set rBereich = .Range("A2:J2").Offset(0, 10)
Sheets("Dummy").Range(rBereich.Address).FormulaR1C1 = _
"=IF(CONCATENATE(RC1,RC2,RC3,RC4,RC5,RC6,RC7,RC8,RC9,RC10)" & _
"CONCATENATE(Mitglieders!RC1,Mitglieders!RC2,Mitglieders!RC3,Mitglieders!RC4,Mitglieders!RC5,Mitglieders!RC6,Mitglieders!RC7,Mitglieders!RC8,Mitglieders!RC9,Mitglieders!RC10),1,"""")"
ADOC.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\sg0815\Desktop\DCO_Arbeitsdaten.mdb;"
dbs.Open "tblDaten", ADOC, adOpenKeyset, adLockOptimistic
Sheets("Mitglieders").Activate
LRow = 2
Do Until .Cells(LRow, 1).Value = ""
If Sheets("Dummy").Cells(LRow, 12) = 1 Then
dbs.AddNew
dbs!Garten_Nr = .Cells(LRow, 1).Value
dbs!Anrede = .Cells(LRow, 2).Value
dbs!Vorname = .Cells(LRow, 3).Value
dbs!Nachname = .Cells(LRow, 4).Value
dbs!Strasse = .Cells(LRow, 5).Value
dbs!Ort = .Cells(LRow, 6).Value
dbs!Telefon = .Cells(LRow, 7).Value
dbs!Geboren = .Cells(LRow, 8).Value
dbs!Eintritt = .Cells(LRow, 9).Value
dbs!Mitgl_Jahre = .Cells(LRow, 10).Value
dbs.Update
End If
LRow = LRow + 1
Loop
dbs.Close
ADOC.Close
Set ADOC = Nothing
Set dbs = Nothing
End With
Exit Sub
fehler:
Sheets("Dummy").Columns(11).Value = ""
MsgBox "Es trat ein Fehler auf!"
dbs.Close
ADOC.Close
Set ADOC = Nothing
Set dbs = Nothing
End Sub
Herzlichen Dank im Voraus,
Lars