21. Это достаточно гибкий способ менять источник данных в вашей форме. Он не использует строковые переменные, а применяет ключевое слово set для запроса данных из DAO или ADO.
Private Sub Form_Open(Cancel As Integer)
Me.Дата = DateSerial(2005, 9, 20)
butDAOrecordset_Click
End Sub
Private Sub Дата_AfterUpdate()
butDAOrecordset_Click
End Sub
Private Sub butADOrecordset_Click()
Dim rst As ADODB.Recordset
' Создание запроса
Set rst = New ADODB.Recordset
' Заполняем запрос
With rst
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = "[Мои книги]"
.Open , CurrentProject.Connection, , , adCmdTable
End With
Set Me.subForm.Form.Recordset = rst
End Sub
Private Sub butDAOrecordset_Click()
Dim strParm As String, strSQL As String
Dim qry As DAO.QueryDef, dbs As DAO.Database
Set dbs = CurrentDb
Set qry = dbs.QueryDefs("qryExample22")
qry.Parameters("paramДата") = Nz(Me.Дата, Date)
Set Me.subForm.Form.Recordset = qry.OpenRecordset
' strParm = "PARAMETERS [paramДата] DATETIME; "
' strSQL = strParm "SELECT * FROM [Мои книги] WHERE [Дата]=[paramДата]"
' Me.Список.Form.InputParameters = "paramДата DateTime=#09/20/2000#"
End Sub