Программирование на Visual Basic | Microsoft Access. Контекстный поиск

В этом разделе сайта находятся примеры из сборника программ "Архив файлов на Microsoft Access". В нем рассказывается о программировании форм, отчетов, таблиц и других объектов. Используйте этот архив для изучения работы с приложением Microsoft Office Access и программированием на Visual Basic for Application. Тем кто уже знаком с VBA, используйте поиск для нахождения кодов. Наберите, например, DAO, ADO, Recordset и найдете нужную ссылку для решения проблемы с программированием

Microsoft Access. Контекстный поиск

02. Есть таблица, в ней нужно провести поиск по нескольким полям. При этом задача должна решаться так, ввели 1 символ, таблица изменилаяь и показала все записи, где есть эта фраза

Option Compare Binary
Option Explicit
'Option Compare Text

'***************************************************************
' 3. Пример. Как создать контекстный поиск в Access
'   (смотрите также пример 2) ?
'***************************************************************

'==============================================================
' Открытие формы
Private Sub Form_Open(Cancel As Integer)
    Me.myFind3.Form.RecordSource = "SELECT Книга FROM [1-Мои книги]"
End Sub

'==============================================================
' Поиск с отбором книг
Private Sub myBooks_Change()
Dim s As String
    s = Me.myBooks.Text 'Определяем текст
    With Me.myFind3.Form 'Выбираем форму
      If Len(s)  0 Then
        s = " WHERE Left([Книга],"  Len(s)  ") = '"  s  "'"
      Else
        s = ";"
      End If
      .RecordSource = "SELECT Книга FROM [1-Мои книги]"  s
      .Requery 'Меняем запрос
    End With
End Sub

'==============================================================
' Контекстный поиск по книге
Private Sub Books_Change()
Dim rst As Recordset, frm As Form, s As String
    On Error GoTo 999
    Set frm = Me.myFind3.Form 'Выбираем форму
    Set rst = frm.RecordsetClone 'Выбираем таблицу
    
    rst.FindFirst "([Книга] Like '"  Me.Books.Text  "*')=True"
    If rst.NoMatch = False Then
        frm.Bookmark = rst.Bookmark
    End If
    Exit Sub
999:
    MsgBox "Введите правильно данные?"
End Sub

Добавить комментарий

Loading