ich habe folgendes Excel-VBA Script:
Option Explicit
Dim iCols As Variant
Dim cells As Variant
Dim name As String
Dim DB1 As Database
Dim RS1 As Recordset
Dim Querry As String
Sub CopyFromAccess()
Querry = "SELECT * FROM Abfrage1"
Set DB1 = OpenDatabase(ThisWorkbook.Path & "\preislisten.mdb")
Set RS1 = DB1.OpenRecordset(Querry, Type:=dbOpenDynaset)
With Worksheets("Tabelle1")
.Select
.Range("A1").CurrentRegion.Select
.Range("A1").CurrentRegion.Clear
For iCols = 0 To RS1.Fields.Count - 1
Worksheets("Tabelle1").cells(1, iCols + 1).Value = RS1.Fields(iCols).name
Next
.Range(Worksheets("Tabelle1").cells(1, 1), Worksheets("Tabelle1").cells(1, RS1.Fields.Count)).Font.Bold = True
.Range("A2").CopyFromRecordset RS1
.Select
End With
Selection.RowHeight = 13.5
DB1.Close
Exit Sub
DB1.Close
End Sub
---------
Dieses Script übernimmt problemlos das Ergebnis einer Access-Abfrage in ein Excel-Sheet.
Problematisch wird die Sache, wenn in Access-Tabellen mit Felddatentyp Memo gearbeitet wird(in meiner Tabelle habe ich durchschnittlich ca. 400 Zeichen pro Feld).
In Excel taucht dann nur der erste Buchstabe des Inhaltes jedes Memofeldes auf.
Welche Möglichkeiten bestehen um größere Felder(MEMO) automatisch in eine Exceltabelle zu portieren? Die Exceltabelle beinhaltet schon ab Spalte G mehrere Spalten die nicht gelöscht werden dürfen. In den Spalten A -E soll der Import stattfinden.
thx4all
Sebastian