01. Есть таблица, в ней нужно провести поиск по нескольким полям. При этом одно поле зависит от другого. Как это сделать указано в это примере.
'==============================================================
' Поиск по дате
Private Sub Дата_AfterUpdate()
Dim rst As Recordset, frm As Form
On Error GoTo 999
Set frm = Me.формаПоиск.Form 'Выбираем форму
Set rst = frm.RecordsetClone 'Выбираем таблицу
rst.FindFirst "([Дата]=#" Format(Me.Дата, "mm\/dd\/yyyy") "#)"
If rst.NoMatch = False Then
frm.Bookmark = rst.Bookmark
Me.Книга = rst!Книга
Else
MsgBox "Нет данных!"
End If
Exit Sub
999:
MsgBox Err.Description vbNewLine "Введите правильно данные?"
End Sub
'==============================================================
' Начать поиск после обновления
Private Sub Книга_AfterUpdate()
recordFind
End Sub
'==============================================================
' Поиск по дате и книге
Private Sub recordFind()
Dim rst As Recordset, frm As Form, s As String
On Error GoTo 999
Set frm = Me.формаПоиск.Form 'Выбираем форму
Set rst = frm.RecordsetClone 'Выбираем таблицу
s = "([Дата]=#" Format(Me.Дата, "mm\/dd\/yyyy") _
"#) and (Книга='" Me.Книга "')"
rst.FindFirst s
If rst.NoMatch = False Then
frm.Bookmark = rst.Bookmark
Else
MsgBox "Нет данных!"
End If
Exit Sub
999:
MsgBox "Введите правильно данные?"
End Sub
'==============================================================
' Поиск по шаблону
Private Sub Шаблон_AfterUpdate()
Dim rst As Recordset, frm As Form, s As String
On Error GoTo 999
Set frm = Me.формаПоиск.Form 'Выбираем форму
Set rst = frm.RecordsetClone 'Выбираем таблицу
rst.FindFirst "([Книга] Like '" Me.Шаблон "')=True"
If rst.NoMatch = False Then
frm.Bookmark = rst.Bookmark
Else
MsgBox "Нет данных!"
End If
Exit Sub
999:
MsgBox "Введите правильно данные?"
End Sub
'==============================================================
' Запрос по книге
Private Sub Книга_Enter()
Me.Книга.RowSource = "SELECT Книга FROM [1-Мои книги] WHERE (((Дата)=[Forms]![Example 01]![Дата]));"
'Me.Книга.Requery 'Изменить запрос
End Sub