Поиск контактов по различным критериям

Vlad_nn
Дата: 06.12.2009 17:18:18
На форме есть элементы List, 8 textBox'ов и кнопка.
К проекту подключена база Access "Contacts"
Нужно сформировать запросы типа "SELECT * FROM Contsct WHERE..."

Допустим, вводим фамилию (1й текстбокс), программа ищет совпадения в базе в столбце LastName, выдает в List все фамилии, соответствующие введенной. При выборе фамилии в List'е нужно отобразить остальную информацию в текстовых полях (имя, отчество, улица, дом, корпус, квартира и телефон). Если вводим Телефон, то прога ищет совпадения соответственно в столбце Phone и выдает в List также фамилии.
У каждого контакта в таблице свой ID, он уникален.

Помогите пожалуйста! Мне нужен код. Спасибо огромное, кто поможет.
abend
Дата: 07.12.2009 10:02:48
При нажатии на кнопку - пробегаешь по всем полям формы, находя непустые textboxы :
For Each ctl In Me.Controls
     If ctl.ControlType=acTextBox Then
            If Len(Nz(ctl))>0 Then
                  ...
            End If
     End If
Next ctl

Из этих textboxов формируешь строку фильтра WHERE

Далее - еще проще (формируешь список ListBox, там при клике выводишь нужные данные в поля фильтра)
Vlad_nn
Дата: 07.12.2009 15:59:59
abend,

Как я понимаю нужно такое объявление:

Dim ctl As Control

А что за переменные acTextBox и Nz и как их объявлять?
При выполнении этой процедуры у меня вылетает ошибка:
Run-time error '438': Object doesn't support this property or method
и выделяется строчка "If ctl.ControlType = acTextBox Then"

Можно еще пожалуйста поподробнее по этому вопросу.. у меня сам запрос вот в таком виде: "Set rs = conn.Execute("SELECT * FROM Contact"). "Contact" эта моя таблица в базе данных, из которой беру значения. Также объявлены
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Так ваш фрагмент кода должен у меня выглядеть?

For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If Len(Nz(ctl)) > 0 Then

Set rs = conn.Execute("SELECT * FROM Contact WHERE & ctl")

End If
End If
Next ctl

Или я что-то не понимаю? Что подразумевается под "..."?
Помогите пожалуйста в написании запроса.