Hallo,
ich bräuchte Hilfe bei einer Schleife in Access. Für jede Hilfe bin ich sehr dankbar.
Es ist meine erste Schleife die ich erstellt habe.
Folgende Aufgabenstellung habe ich. Ich möchte Daten aus Access nach Excel exportieren. In Excel startet ein Makro welches die Daten überprüft. Derzeit wird jeder Datensatz einzeln nach Excel exportiert. In excel wird jeder Datensatz derzeit überprüft und dann wieder von Access überschrieben. Ich möchte es jetzt schaffen, dass Access den Export nicht bei jedem Datensatz macht, sondern z.b.: 10 Datensätze auf einmal exportiert, danach wieder die Export Tabelle in Access löscht und die nächsten 10 Datensätze exportiert bis das Ende der Abfrage erreicht ist.
Hier mein derzeitiger Code
Private Sub Befehl256_Click()
'Schleife'
Dim db As DAO.Database
Dim rst As DAO.Recordset2
Dim xlApp As Object
Dim xlWb As Object
Set db = CurrentDb
Set rst = db.OpenRecordset("Abfrage Verr_Blöcke")
' Tabelle Tabelle1 wird gelöscht!
CurrentDb.Execute "Delete from [Tabelle1]", dbFailOnError
Do While Not rst.EOF
'neuen Datensatz in Tabelle1 schreiben
With CurrentDb().OpenRecordset("Tabelle1", dbOpenDynaset, dbAppendOnly)
.AddNew
!Test = rst!POSITION
.Update
End With
Debug.Print rst!POSITION
Set xlApp = CreateObject("Excel.Application") ' Excel öffnen
xlApp.DisplayAlerts = False ' Warnungen deaktivieren
Set xlWb = xlApp.Workbooks.Open(Application.CurrentProject.Path & "\Import_Export_UPRO.xlsm")
xlWb.Sheets("Tabelle1").Range("A2:A500").ClearContents 'In Spalte A Zeile2 bis Zeile 500 löschen
xlWb.Save 'Excelmappe speichern
xlWb.Close 'Excelmappe schließen
xlApp.Quit 'Excel beenden
' Export der Daten in Excel!
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Tabelle1", _
Application.CurrentProject.Path & "\Import_Export_UPRO.xlsm"
CurrentDb.Execute "Delete from [Tabelle1]", dbFailOnError
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
|