Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск по нескольким полям в форме и операторы OR и AND / 12 сообщений из 12, страница 1 из 1
08.08.2003, 11:21
    #32230848
art_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Есть главная форма с 5-ю полями: ID, Дата С, Дата По, Автор, Издательство.
По этим полям должен осуществляться поиск в подчиненной форме, причем не все поля поиска могут быть заполнены. Данные в подч. форме появляются за счет изменения RecordSource.
Я пробывал использовать операторы OR и AND, но они не подошли:
OR: ищет только по первому заданному значению
AND: ищет только по всем полям и если одно не задано, то результата нет

Подскажите, пожалуйста, какие тут могут быть входы
...
Рейтинг: 0 / 0
08.08.2003, 11:27
    #32230860
Geen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Подробнее проблему (варианты поиска)

Geen:)
...
Рейтинг: 0 / 0
08.08.2003, 11:35
    #32230870
art_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Варианты поиска:
по ID
по ID и по Дате С - По
по дате С - По
и т.д

Вот что сейчас есть:
По клику на кнопке "Найти":

Код: plaintext
1.
2.
3.
Me.frm2.Form.RecordSource =  "SELECT ID, Дата2, Автор, Издательство
WHERE (((ID) Like [forms]![Выборка]![ID]) Or ((Дата2) Between [forms]![Выборка]![dates] And [Forms]![Выборка]![datepo]) 
Or ((Автор)=[forms]![Выборка]![Автор]) Or ((Издательство)=[forms]![Выборка]![Издательство]); " 
Me.frm2.Requery
...
Рейтинг: 0 / 0
08.08.2003, 11:37
    #32230872
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
вот тебе пример
поиска по текстовому
полю и дате
причем по текстовому
ищет по любой части
поля и Null

SELECT Клиенты.Клиент, Клиенты.Дата FROM Клиенты WHERE (((Клиенты.Клиент) Like "*" & [Forms]![Форма]![Клиент] & "*" Or [Forms]![Форма]![Клиент] Is Null) AND ((Клиенты.Дата)=[Forms]![Форма]![Дата] Or [Forms]![Форма]![Дата] Is Null));
...
Рейтинг: 0 / 0
08.08.2003, 11:40
    #32230879
Geen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
А мне про дату ответить в лом?:)
(VB - ПЕРЕМЕННАЯ=ТЕКДАТА)

Geen
...
Рейтинг: 0 / 0
08.08.2003, 11:46
    #32230902
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Проверить какие поля заполнены и сформировать SQL строку.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim blnOk As Boolean, strSQL as String
  blnOk = False
  strSQL  =  "Select * From Table1" 
  If Me.ID <>  "" Then '(is Not Null)
     strSQL  = strSQL  & " Where ID = " & Me.ID
     blnOk = True
  End If
  If Me.[ДатаС] <> "" Then '(is Not Null)
     If blnOk = True Then
        strSQL  = strSQL  & "  And ДатаС >=  " & Me.[ДатаС] 
     Else
        strSQL  = strSQL  & "  Where ДатаС >= " & Me.[ДатаС] 
     blnOk = True
  End If
...........
Me.SubForm1.RecordSource = strSQL  
...
Рейтинг: 0 / 0
08.08.2003, 11:46
    #32230903
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Проверить какие поля заполнены и сформировать SQL строку.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim blnOk As Boolean, strSQL as String
  blnOk = False
  strSQL  =  "Select * From Table1" 
  If Me.ID <>  "" Then '(is Not Null)
     strSQL  = strSQL  & " Where ID = " & Me.ID
     blnOk = True
  End If
  If Me.[ДатаС] <> "" Then '(is Not Null)
     If blnOk = True Then
        strSQL  = strSQL  & "  And ДатаС >=  " & Me.[ДатаС] 
     Else
        strSQL  = strSQL  & "  Where ДатаС >= " & Me.[ДатаС] 
     End If
     blnOk = True
  End If
...........
Me.SubForm1.RecordSource = strSQL  
...
Рейтинг: 0 / 0
08.08.2003, 11:49
    #32230913
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Виталу:
нафиг проверять?
все условия впихнул
в запрос
и делай тока requery
запроса
а ты код навернул.
...
Рейтинг: 0 / 0
08.08.2003, 11:51
    #32230924
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Geen
peremen = Date() текущая дата
peremen = Now() текущая дата-время
peremen = GetDate() дата-время в adp
...
Рейтинг: 0 / 0
08.08.2003, 12:00
    #32230945
art_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
По-моему проще в каждое поле в значение по умолчанию поставить "*" и использовать LIKE.

PS это вывод из предложенного Хамом :)
...
Рейтинг: 0 / 0
08.08.2003, 12:03
    #32230954
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
art_m-у
сначла справку
по Like прочти
и узнаешь
что такое звездочки
и куда их крепить
PS
некторые их крепят
на грудь
...
Рейтинг: 0 / 0
08.08.2003, 12:07
    #32230962
art_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по нескольким полям в форме и операторы OR и AND
Короче говоря СПАСИБО...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск по нескольким полям в форме и операторы OR и AND / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]