Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenexport von Access-Abfrage --> Excel mit MEMOS

Datenexport von Access-Abfrage --> Excel mit MEMOS
28.08.2002 13:48:54
Sebastian
Hallo,

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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datenexport von Access-Abfrage --> Excel mit MEMOS
28.08.2002 21:21:57
Coach
Hallo Sebastian,

das scheint ein Problem der Copyfromrecordset-Methode zu sein.
Funktioniert aber mit:
iRows = 2
While Not (RS1.EOF)
For iCols = 0 To RS1.Fields.Count - 1
.cells(iRows, iCols + 1) = RS1.Fields(iCols).Value
iRows = iRows + 1
RS1.MoveNext
Next
Wend

Gruß Coach

Re: Datenexport von Access-Abfrage --> Excel mit MEMOS
29.08.2002 10:01:37
Sebastian
Hi,
danke für deine Hilfe, die Werte werden nun fehlerfrei übernommen.
Ein Problem besteht aber noch mit der Formatierung. Jedes Feld eines Datensatzes steht in einer extra Zeile.

Ich habe verschiedenes ausprobiert, funzt aber nicht.

Ich versuch die Lage näher zu erleutern.

Ersetzt wurde:


.Range("A2").CopyFromRecordset RS1


durch:

Dim irows As Variant

iRows = 2
While Not (RS1.EOF)
For iCols = 0 To RS1.Fields.Count - 1
.cells(iRows, iCols + 1) = RS1.Fields(iCols).Value
iRows = iRows + 1
RS1.MoveNext
Next
Wend


Der Kompiler meldet Fehler "Laufzeitfehler 3021 - no current record" in Zeile ".cells(irows, iCols + 1) = RS1.Fields(iCols).Value"


Anzeige
Re: Datenexport von Access-Abfrage --> Excel mit MEMOS
29.08.2002 18:54:36
Coach
Hallo Sebastian,

sorry habe geschludert. Muß natürlich lauten:
iRows = 2
While Not (RS1.EOF)
For iCols = 0 To RS1.Fields.Count - 1
.cells(iRows, iCols + 1) = RS1.Fields(iCols).Value
RS1.MoveNext
Next
iRows = iRows + 1
Wend
End With

Den Kompilerfehler konnte ich nicht nachvollziehen.

Gruß Coach

Re: Datenexport von Access-Abfrage --> Excel mit MEMOS
29.08.2002 19:14:15
Coach
Hallo Sebastian,

sorry habe geschludert. Muß natürlich lauten:
iRows = 2
While Not (RS1.EOF)
For iCols = 0 To RS1.Fields.Count - 1
.cells(iRows, iCols + 1) = RS1.Fields(iCols).Value
Next
RS1.MoveNext
iRows = iRows + 1
Wend
End With

Den Kompilerfehler konnte ich nicht nachvollziehen.

Gruß Coach

Anzeige
<<<< das ist die richtige Version
29.08.2002 19:15:44
coach
o.T.

171 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige