AW: Access Excel Daten Import
03.02.2010 12:53:29
Luschi
Hallo Boris,
so wirst Du die Leerzeichen los (bezogen auf meine Beispieldatei for ADO:
Sub importFromAccess_ADO()
Dim accConn As New adodb.Connection
Dim accDB As String
Dim accRS As New adodb.Recordset
Dim excelRg As Range
Dim accAbfrage As String
Dim j As Long, lZeile As Long
accDB = ThisWorkbook.Path & "\" & "Export.mdb"
'erstellt eine SQL-Abfrage, die 6 Datenbankfelder berücksichtigt und nach FELD1 sortiert
accAbfrage = "Select Datum, Kunde, Artikel, Anzahl, Preis, Total from [Export to Access] _
order by Datum;"
'Access-Datenbank-Verbindung
accConn.Provider = "Microsoft.Jet.OLEDB.4.0"
accConn.Open accDB
accRS.Open accAbfrage, accConn, adOpenDynamic, adLockOptimistic
With ActiveSheet
'alles löschen in der aktiven Tabelle
.Rows("1:" & .Cells(.Rows.Count, 2).End(xlUp).Row).Delete
Set excelRg = .Range("B2")
End With
If accRS.EOF = True Then
MsgBox "kein Datensatz gefunden"
ActiveSheet.Range("B2").Select
Else
accRS.MoveFirst
With ActiveSheet
.Cells(1, 1).Value = "lfdNr."
For j = 2 To 7
.Cells(1, j).Value = accRS.Fields(j - 2).Name
Next j
excelRg.CopyFromRecordset accRS
lZeile = .Cells(.Rows.Count, 2).End(xlUp).Row
For j = 2 To lZeile
.Cells(j, 1).Value = "'" & (j - 1) & "."
Next j
End With
End If
accRS.Close
accConn.Close
Set accRS = Nothing
Set accConn = Nothing
Set excelRg = Nothing
Call loescheLZ(ActiveSheet, "C", 2, lZeile)
Call loescheLZ(ActiveSheet, "D", 2, lZeile)
End Sub
Sub loescheLZ(ws As Worksheet, xSPalte As String, startZeile As Long, zielZeile As Long)
Dim rg1 As Range, rg2 As Range
Set rg1 = ws.Range(ws.Cells(startZeile, xSPalte), ws.Cells(zielZeile, xSPalte))
For Each rg2 In rg1
rg2.Value = Trim(rg2.Value)
Next rg2
Set rg1 = Nothing
Set rg2 = Nothing
End Sub
Gruß von Luschi
aus klein-Paris