отбор по полям

RuslanBLR
Дата: 17.01.2012 23:42:27
Привет всем! Подскажите - есть форма для поиска по 3 полям:

имя формы - INDEX: в ней поля со списком:

1. код (kod_Find)
2. имя (name_Find)
3. фамилия (fam_Find)

на кнопку "Найти" (button_Find) в форме INDEX поставил макрос - открыть форму SearchForm.

форма SearchForm имеет источник записей :
SELECT CLIENT.ID_Client, CLIENT.FAM_Client, CLIENT.NAME_Client FROM CLIENT; 


и на форму поставил процедуру:

Private Sub Form_Open(Cancel As Integer)
ON Error Resume Next
Dim sQ AS String
 
sQ = " SELECT CLIENT.* " & _
     " FROM CLIENT " & _
     " WHERE (((CLIENT.ID_Client)=Forms!SearchForm!kod_Find) or Forms!SearchForm!kod_Find is null)" & _
     " AND (((CLIENT.NAME_Client) Like '*" & Forms!SearchForm!telef_Find & "*') or Forms!SearchForm!telef_Find is null) " & _
     " AND (((CLIENT.FAM_Client) Like '*" & Forms!SearchForm!fam_Find & "*') or Forms!SearchForm!fam_Find is null) "
 Me![SearchForm].Form.RecordSource = sQ
 
End Sub


Но не чего не отбирает!! Что я не так сделал. Надо чтобы например ввожу фамилию клиента - нажимаю найти - появлялась форма (SearchForm) только с этим клиентом????
Владимир Саныч
Дата: 17.01.2012 23:56:21
RuslanBLR
ON Error Resume Next

Для начала уберите вот это.

Я подозреваю, что дело в двух ссылках на поля формы, которые остались внутри селекта, но хочется сначала в этом убедиться.
RuslanBLR
Дата: 17.01.2012 23:59:20
Владимир Саныч,

выбило ошибку:

Run-time '2450'
не удается найти указанную форму "SearchForm"
Владимир Саныч
Дата: 18.01.2012 00:03:36
А Вы уверены, что она открыта?
ПЕНСИОНЕРКА
Дата: 18.01.2012 00:05:20
RuslanBLR,

Private Sub Form_Open(Cancel As Integer)
On Error Resume Next
Dim sQ As String
 
sQ = " SELECT CLIENT.* "
sQ = sQ & " FROM CLIENT "
sQ = sQ & " WHERE 1=1"
If Forms!SearchForm!kod_Find Is Null Then
Else
sQ = sQ & " and CLIENT.ID_Client)=" & Forms!SearchForm!kod_Find
End If

sQ = sQ & "  AND '' & CLIENT.NAME_Client Like '*" & Forms!SearchForm!telef_Find & "*'"

sQ = sQ & " AND '' & CLIENT.FAM_Client Like '*" & Forms!SearchForm!fam_Find & "*' "

 Me![SearchForm].Form.RecordSource = sQ
 
End Sub
RuslanBLR
Дата: 18.01.2012 00:10:43
Владимир Саныч,

:) я не в чем не уверен!! что значит открыта?

изначально я делал по другому:

в форме INDEX вставлял форму SearchForm и на INDEX ставил:

Private Sub button_Find_Click()
On Error Resume Next
Dim sQ As String

sQ = " SELECT tblTest.* " & _
     " FROM tblTest " & _
      " WHERE (((CLIENT.ID_Client)=Forms!INDEX!kod_Find) or Forms!INDEX!kod_Find is null)" & _
     " AND (((CLIENT.NAME_Client) Like '*" & Forms!Index!telef_Find & "*') or Forms!INDEX!telef_Find is null) " & _
     " AND (((CLIENT.FAM_Client) Like '*" & Forms!Index!fam_Find & "*') or Forms!INDEX!fam_Find is null) "
    
 Me![SearchForm].Form.RecordSource = sQ
 Me![SearchForm].Form.Requery
End Sub


тогда все хорошо работало но в одной форме INDEX. А я хочу что бы данные выводились отдельно в другой форме!!!!НЕ ЗНАЮ КАК!!!
Владимир Саныч
Дата: 18.01.2012 00:10:51
ПЕНСИОНЕРКА

Со скобками и кавычками что-то не так.
Владимир Саныч
Дата: 18.01.2012 00:11:38
RuslanBLR
:) я не в чем не уверен!! что значит открыта?

В первом приближении: на экране она есть?
RuslanBLR
Дата: 18.01.2012 00:16:51
ПЕНСИОНЕРКА,

не работает. Еще раз:

в форме INDEX я выбираю отбор а выводить хочу в SearchForm.
RuslanBLR
Дата: 18.01.2012 00:19:46
Владимир Саныч,

в самой форме INDEX ее нет. Когда добавляю ее форму INDEX - все работает!
Но я хочу чтобы форма открывалась отдельно - уже с обором по INDEX