Jag kopierar ett exempel ur Access 95-hjälpen (som är mycket bättre än den till Access 2000...) som kanske kan vara till hjälp. Du kan oxå skapa en temporär query def:Sv: skapa query i kod
<code>
Sub NewQuery()
Dim dbs As Database, qdf As QueryDef
Dim strSQL As String
' Returnera ett Database-objekt som pekar till den aktuella databasen.
Set dbs = CurrentDb
' Uppdatera mängden QueryDefs.
dbs.QueryDefs.Refresh
' Om frågan Nyanställda finns ska den tas bort.
For Each qdf in dbs.QueryDefs
If qdf.Name = "Nyanställda" Then
dbs.QueryDefs.Delete qdf.Name
End If
Next qdf
' Skapa en SQL-sträng för att markera anställda som anställts efter den 1/1 1995.
strSQL = "SELECT * FROM Anställda WHERE Anställningsdatum >= #95-01-01#;"
' Skapa ett nytt QueryDef-objekt.
Set qdf = dbs.CreateQueryDef("Nyanställda", strSQL)
' Öppna frågan som datablad.
DoCmd.OpenQuery qdf.Name
End Sub
</code>
/JohanSv: skapa query i kod
<code>
Dim dbs As Database
Dim qdf As QueryDef
Dim strSQL As String
Dim rsTemp as recordset
Dim Index as Long
Set dbs = CurrentDb
strSQL = "PARAMETERS MyDatum Date; SELECT * FROM Anställda WHERE Anställningsdatum = MyDatum;"
Set qdf = dbs.CreateQueryDef("", strSQL)
qdf.Parameters("MyDatum") = Date
Set rsTemp = qdf.Openrecordset(dbOpenForwardOnly)
For Index = 1 to 10
qdf.Parameters("MyDatum") = Date + Index
rsTemp.Requery qdf
Next
</code>