Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Excel to Access





Frage

Hallo zusammen, hänge fest, dieses VBA Modul soll mir ab Zeile [A9] alle Zeilen bis es zur ersten Leeren Zeile in meine Access Tabelle Kopieren, es ist auch möglich das nach einer leeren Zeile noch ein gefüllte Zeile kommt, die brauche ich nicht. Private Sub ExcelImport() Dim objAppXL As Object '// Excel.Application Dim objWkbXL As Object '// Excel.Workbook Dim objWksXL As Object '// Excel.Worksheet Dim db As DAO.Database Dim rst As DAO.Recordset Dim lCount As Long '// Zaehler fuer die Treffer Dim l As Long DoCmd.SetWarnings False DoCmd.RunSQL ("DELETE * FROM DMS") DoCmd.SetWarnings True '// Zugriff auf Excel-Instanz On Error Resume Next Set objAppXL = GetObject(, "Excel.Application") If Err.Number = 429 Then Set objAppXL = CreateObject("Excel.Application") On Error GoTo 0 '// Arbeitsmappe oeffnen Set objWkbXL = objAppXL.Workbooks.Open("E:\Projekte\20040124\Testen.xls", , True) Set objWksXL = objWkbXL.Sheets(1) '// Recordset zum Schreiben oeffnen Set db = DBEngine(0)(0) Set rst = db.OpenRecordset("DMS") objWksXL.Visible = True '-- ab zeile 9 soll eingelesen werden 'objWksXL.Application.Cells(9, 1).Activate '// Schleife (gleichzeitiges Schreiben und Zaehlen) '-- bis zur ersten leeren zeile lesen Do Until l > 100 'Or objWksXL.Cells.Value = "" l = l + 1 If Not IsEmpty(objWksXL.Cells(l, 1).Value) Then '// Zaehlen lCount = lCount + 1 '// Schreiben With rst .AddNew .Fields(0) = objWksXL.Cells(l, 1).Value .Fields(1) = objWksXL.Cells(l, 6).Value .Fields(2) = objWksXL.Cells(l, 7).Value .Fields(3) = objWksXL.Cells(l, 8).Value .Update End With End If Debug.Print l Loop MsgBox "Es wurden " & lCount & " Datensätze importiert.", vbOKOnly + vbInformation, "Import beendet" 'objWksXL.Application.Visible = False '// Objektvariablen freigeben rst.Close Set db = Nothing objWkbXL.Close Set objWksXL = Nothing Set objWkbXL = Nothing Set objAppXL = Nothing End Sub Gruss Reinhard

Antwort 1 von Teddy7

und wo ist Dein Problem ?

Antwort 2 von ReinhardH

Hi Teddy,
ich möchte, von Excel aus der ersten Spalte beginnend ab Zelle [A9] nach unten bis zur ersten Leeren Zelle nach Access Imporieren.
Gruss Reinhard

Antwort 3 von MickK

Ja so weit so gut, das hat man verstanden. Aber was läuft denn nicht? Ausser, dass Deine Laufvariable I nicht initialisiert ist und somit von 0 läuft und nicht von 9, sieht der Code doch i.O. aus.

Gruß
Mick