Вот простой пример, который использует List Box:
Таблица: Клиенты
ID - AutoNumber
LastName - Текст (255)
FirstName - Текст (255)
Email - Текст (255)
Тестовые данные:
ID LastName FirstName Email
-- ---------- -------------- ------------------
1 Thompson Gord [email protected]
2 Loblaw Bob [email protected]
3 Kingsley Hank [email protected]
4 Thompson Hunter S. [email protected]
5 Squarepants Spongebob [email protected]
6 O'Rourke P. J. [email protected]
7 Aldrin Edwin "Buzz" [email protected]
Форма макета:
VBA модуль для этой формы:
Option Compare Database
Option Explicit
Private Sub Form_Load()
Me.lstSearchResults.RowSource = ""
End Sub
Private Sub btnSearch_Click()
Me.lstSearchResults.SetFocus
Me.lstSearchResults.Value = Null
Me.lstSearchResults.RowSource = _
"SELECT ID, LastName, FirstName FROM Clients " & _
"WHERE LastName LIKE ""*" & DQ(Me.txtSearchLastName.Value) & _
"*"" AND FirstName LIKE ""*" & DQ(Me.txtSearchFirstName.Value) & "*"""
End Sub
Private Function DQ(s As Variant) As String
' double-up double quotes for SQL
DQ = Replace(Nz(s, ""), """", """""", 1, -1, vbBinaryCompare)
End Function
Private Sub btnLookupEmail_Click()
If IsNull(Me.lstSearchResults.Value) Then
Me.txtEmail.Value = ""
Else
Me.txtEmail.Value = DLookup("Email", "Clients", "ID=" & Me.lstSearchResults.Value)
End If
End Sub
Когда форма первого открыт, все пусто.
Typing "Томсон" (без кавычек) и нажать кнопку btnSearch
заполнит List Box с клиентами WHERE LastName LIKE "*thompson*"
. (Если вы посмотрите на код, вы увидите, что он также будет соответствовать на FirstName, если поставить один.)
Выберите один из пунктов в списке Box и нажмите btnLookupEmail
и адрес электронной почты отображается в текстовом поле ниже.
Что случилось с использованием выпадающего или ListBox? – wakjah
Было бы хорошо, что из результата (группа параметров) я могу напрямую выбрать любую запись, а когда я нажму кнопку «Далее», она перенесет данные в следующую форму. Вместо того, чтобы иметь два объекта «результата» (подформат и флажок). Это избыточно. – Daytron
Моя форма поиска клиентов работает примерно так: у меня есть одно текстовое поле поиска вверху. У меня есть непрерывная форма всех клиентов внизу. После того, как пользователь вводит текст в поле поиска, я фильтрую набор записей, создавая критерии, основанные на каждом имени поля, например: 'FirstName Like *% s * или LastName Like *% s *' и заменить '% s' на текст в окне поиска. Я думаю, что это довольно изящно. Затем пользователь нажимает кнопку со стрелкой справа от имени контакта, чтобы выбрать или просмотреть этот контакт в полном подробном представлении в новой форме. – Bobort