Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array übergeben von Access zu Excel

Array übergeben von Access zu Excel
Access
Hallo zusammen
Ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe z.B. eine Prozedur in Excel, welche eine Abfrage in Access startet. Das habe ich hinbekommen, bzw. im Netz gefunden:
Sub CallAccessMacro()
Dim accApp As Object
Dim sFile As String
sFile = Range("B2").Value
If Dir(sFile) = "" Then
Beep
MsgBox "Access-Datenbank wurde nicht gefunden!"
Else
Set accApp = CreateObject("Access.Application")
accApp.OpenCurrentDatabase sFile
accApp.Run "test_export"
accApp.CloseCurrentDatabase
Set accApp = Nothing
End If
End Sub
Nun habe ich aber das Problem, dass ich den Array, nennen wir ihn test_Array, welcher in der Access-Prozedur "test_export" erstellt wird, gerne in Excel hätte um damit zu rechnen.
Wie kann ich diesen Array von Access zu Excel übernehmen?
Ich hoffe ihr versteht meine Frage.
Grüss
helmi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array übergeben von Access zu Excel
29.06.2011 15:31:04
Access
Hallo,
das geht noch nicht mal zwischen Mappen.
Gruß
Rudi
AW: Array übergeben von Access zu Excel
29.06.2011 18:11:01
Access
Hi
Oder du schreibst den Arryinhalt im Access-Makro in z Bsp eine txt-Datei, und liest diese txt-Datei dann in Excel wieder ein.
Hilfts?
Ciao
Thorsten
AW: Array übergeben von Access zu Excel
29.06.2011 22:39:08
Access
Danke für die Antworten. Schade gehts nicht direkt.
Das Problem ist leider, dass es über 1 Mio. Zeilen sein können, bzw. fast sicher sein werden...
So kann ich nicht einfach eine txt schreiben und in Excel einlesen.
Von Access in eine Excel-Tabelle schreiben habe/hätte ich hinbekommen, aber bei der Excel-Version, die ich (im Geschäft) habe, habe ich leider nur 64'000 Zeilen.
Die Daten, welche ich von Access habe, werden nur zum rechnen verwendet und zum Schluss folgen nur einige wenige Zeilen als Output in Excel.
Muss mir wohl überlegen das Ganze in Access zu machen und dann die Schlussdaten nach Excel kopieren/exportieren.
Gruss
helmi
Anzeige
AW: Array übergeben von Access zu Excel
30.06.2011 06:49:46
Access
hmm...1 Mio Zeilen?
Hab ich gerade mal getestet mit diesem Code:
Sub test()
Dim liste() As Double, liidx As Double
Open "d:\test123.txt" For Output As #1
For liidx = 0 To 1000000
Print #1, liidx
Next
Close
MsgBox "teil1"
liidx = 0
Open "d:\test123.txt" For Input As #1
Do While Not EOF(1)
ReDim Preserve liste(liidx)
Input #1, liste(liidx)
liidx = liidx + 1
Loop
Close
MsgBox "teil2"
End Sub
alles zusammen hat unter 1 Minute gedauert.
Du musst in Excel ja nicht direkt aus txt-Datei in Zellen einlesen. Du kannst in Excel ja auch wieder mit Array arbeiten.
Und die "Verwaltung", welche Werte aus dem Array zur Berechnung und welche Werte zum Anzeigen in Excel dienen, hast du ja sowieso, auch wenn eine direkte Übergabe vom Access-Array in Excel möglich wäre.
Hilft dieser Denkanstoß?
Ach ja, ein Hallo zu Beginn is immer schöner un dauert auch nich soo lange.
Ciao
Thorsten
Anzeige
AW: Array übergeben von Access zu Excel
30.06.2011 07:46:53
Access
Hallo Thorsten
Danke für Deine Antwort. Ich werde mir im Verlaufe des Tages den Code/Deine Idee mal ausprobieren. Ich melde mich dann nochmals.
Gruss
helmi
AW: Array übergeben von Access zu Excel
30.06.2011 08:35:09
Access
Hallo Thorsten,
Sieh dir mal das "Dictionary Object" an:
    Dim myDic As Object
Set myDic = CreateObject("Scripting.Dictionary")
Ich würde ohne Auslagerung in eine Textdatei die Access-Datenbank direkt von Excel über SQL auslesen und in ein Dictionary Object (statt des Arrays) übertragen. Das ständige Vergrößern eines Arrays mit "ReDim Preserve" dauert immer länger, je größer das Array wird. Die Performance des Dictionary Objects ist hingegen auch bei großen Datenmengen konstant schnell. Analog zu einem 2-dimensionalen Array mit mehreren Spalten in der zweiten Dimension würde ich beim Dictionary Object die einzelnen Werte je Eintrag mit einem Trennungszeichen ablegen (wie bei einer CSV-Datei).
Viele Grüße
Martin
Anzeige
AW: Array übergeben von Access zu Excel
30.06.2011 08:29:53
Access
Hallo, ich bins nochmals.
Es funktioniert soweit gut. Ich habe einzig noch das Problem, dass es bei der Access-Tabelle mehrere Spalten hat. Beim einlesen liest VBA nur die erste Spalte ein (ich habe als Trennzeichen ";" genommen). Dass Dein defnierter Array liste nur eine Zeile ist, ist mir klar. Ich hätte aber erwartet, dass die ganze Zeile, inkl. den Trennzeichen ; eingelesene werden.
Vielleicht finde ich eine Lösung bevor Du Dich wieder meldest :-)
Gruss
helmi

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige