Mehr als 65000 Zeilen nach Excel exportieren

Hallo,

ich möchte aus einer Tabelle eine Abfrage generieren. Ich habe eine Projektnummer und hinter dieser stehen mehrere Unternummern.

Die Abfrage soll dann nach Excel in eine Entnahmeliste gedruckt werden.

Über docmd.transferspreadsheet ist das ja soweit auch kein Problem. solange ich unter 65.000 Zeilen bin. Was aber tun wenn ich mehr als 65.000 Zeilen komme?

Kann ich hier eventuell über Recordcount oder nur Count zum Ziel gelangen?

Also angenommen ich habe 120000 Zeilen.

Somit zähle ich per VBA erst die Datensätze, es werden 120.000 ermittelt. nun soll er diese 120000 Sätze aufteilen in jeweils 30.000 Sätze und dann 1 - 30000 in ein Tab schreiben, 30001 - 60000 in ein zweites Tab schreiben etc… bis zum Ende der Datensätze.

Kann hier jemand einen Denkanstoss geben? Wäre echt super.

Gruss

TnA

Hallo,

das 65536 Zeilen-Limit gibt es ab Excel 2007 nicht mehr.

mfg, tf

Hallo,

das hab ich schon gehört, aber weder ich noch meine Firma besitzen dies bereits :smile:

Gruss

Hallo,

naja, dann halt mittels Abfragen und Transferspreadsheet, wobei die Abfragen die entspr. Datensätze anhand einer (hoffentlich vorhandenen) laufenden Nr (z. B. Autowert-Feld) filtern.

Alternativ kannst Du ja eine Recordsetschleife basteln und die Daten per Excel-Automation in die Arbeitsblätter und Zellen schreiben.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

das Problem gestaltet sich folgendermassen:

Es geht hier um eine Datenbank zur Archivierung von Ordnerschachteln in einem Archiv. Die Datenbank gibt mir die Lagerorte zurück, steuert Entnahmen, Einlagerungen und Vernichtung.

Der Kunde gibt mir z.B. einen Projektnamen wie brd049 als Suchkriterium. Hierzu habe ich dann eine Archividentnummer, eine Schachtelnummer und Lagerort sowie evtl Entnahmeort. Das heisst einem Projekt können mehrere Archividentnummern etc… zugeordnet sein.

Somit komme ich hier auch auf die grosse Zahl der Datensätze. Ein Auswahlkriterium was eindeutig ist habe ich ja über das Projekt, es geht also nur darum die Anzahl der Treffer zu ermitteln (Recordcount) und dann um den Export per docmd.transferspreadsheet. Bis dahin hin hatte ich ja nie ein Problem, wurde immer sauber in Excel geschrieben.

Nur habe ich nun ein Projekt welches eben über die 65.000 kommt und ich etwas auf dem Schlauch stehe wie ich das unterteilen kann, bzw. wie ich über Recordcount an eine Aufteilung ran komme, vorallem wenn man z.b. nicht immer im Voraus weiss wie viele Sätze ich habe, einzig und allein fester Wert ist, das pro Tabellenblatt in einer Datei 30.000 Sätze geschrieben werden und dann das nächste Tab geschrieben wird mit wieder 30.000 Sätzen bis das Ende der Sätze erreicht ist. Da hakt es eben gerade etwas…

Die Recordsetschleife an sich wäre auch kein Problem… bekomm ich für eine fortlaufende Erstellung hin, aber eben nicht für die Unterteilung in mehrere Tabs in einer Exceldatei.

Gruss

Tna

Hallo,

ok, dabei ist aber nicht die Verwendung von Excel an sich erklärt…

z. B.:

Dim lngCounter as Long, lngBlattNr as Long
lngCounter =0
lngBlattNr =0
Do until rs.eof
if lngCounter >=30000 then
lngBlattnr = lngBlattnr +1
lngCounter =0
end if
’ schreib DS in Excel-Tabellenblatt >

lngCounter=lngCounter +1

rs.Movenext
loop

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!