Hi Ralf,
ganz bin ich immer noch nicht am Ziel.
Wenn ich den SQL-String ab ‚Select …‘ verwende, funktioniert alles, die Tabelle wird angezeigt. (Im Code geht das einfach, ich ändere einfach die Schleife in ‚For i = 1 to …‘) 
Wenn ich davor noch schreibe ‚Insert …‘ bekomme ich eine Fehlermeldung bei OpenRecordset.
Daß der SQL-String so richtig ist, bin ich mir sicher. Die letzte Zeile im Code ist wohl falsch, aber das ich da hin schreiben muss, weiß ich nicht. Stör Dich nicht an den Feldbezeichnungen, ich war zu faul, da extra Dummies einzutragen.
Option Explicit
Dim Db As Database, Rs As Recordset
Private Sub Command1\_Click()
Dim SQLStr As String
Dim dt1 As String
Dim dt2 As String
Dim dt As Date
Dim s(7) As String
Dim i As Integer
dt = Date
dt = DateAdd("d", -(Day(dt) - 1), dt)
dt = DateAdd("m", -1, dt)
dt = DateAdd("d", -1, dt)
s(6) = "#" + CStr(Month(dt)) + "/" + CStr(Day(dt)) + "/" + CStr(Year(dt)) + "#" 'Bis Datum
dt = DateAdd("d", 1, dt)
dt = DateAdd("m", -2, dt)
s(4) = "#" + CStr(Month(dt)) + "/" + CStr(Day(dt)) + "/" + CStr(Year(dt)) + "#" 'Ab Datum
s(0) = "INSERT INTO [Archiv Zettelnummern] ( Zettelnummer, Datum, Schicht ) "
s(1) = "SELECT Zettelnummern.Zettelnummer, Zettelnummern.Datum, Zettelnummern.Schicht "
s(2) = "FROM Zettelnummern "
s(3) = "WHERE (((Zettelnummern.Datum)\>="
s(5) = "And (Zettelnummern.Datum)
Gruß, Rainer