powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос не возвращает записей
7 сообщений из 7, страница 1 из 1
Запрос не возвращает записей
    #32046750
ginik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос такой:

Код: plaintext
1.
2.
3.
PARAMETERS fdpName Text (  255  ), fdpMultiAdress Text (  255  ), fdpRTelephone Text (  255  ), fdpRem Text (  255  );
SELECT tblPartners.pID, tblPartners.pName INTO USysTmpfdResults
FROM tblPartners
WHERE (((tblPartners.pName) Like  "*[fdpName]*" )) OR ((([pAIndex] &  "###"  & [pACity] &  "###"  & [pAStreet] &  "###"  & [pAHome]) Like  "*[fdpMultiAdress]*" )) OR (((tblPartners.pRTelephone) Like  "*[fdpRTelephone]*" )) OR (((tblPartners.pRem) Like  "*[fdpRem]*" ));


Ессно, значения я ввожу заведомо существующие.
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32046795
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что тут можно сказать, не зная подробностей?
Надо копать каждое условие по отдельности...
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32046833
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тут налицо ненормализация данных ( пример с мультиадрес), это раз, и вообще должно быть не Or а AND, посмотрите свой запрос в конструкторе, там вам понятнее все будет
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32047368
ginik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Если вместо параметров в запросе сразу подставить заведомо сущеструющее значение - все в порядке, т.е. такое чуство, что не обрабатываются именно параметры.

2. Уважаемый sFx! Вы предлагаете нормализовать до упора:) т.е. до пятой формы. По моему 3-я тут есть: 1 к 1. Или я не прав.?
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32047374
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю вашей структуры таблиц, но если брать во внимание, что выборка у вас идет по смешанному ключу([pAIndex] & "###" & [pACity] & "###" & [pAStreet] & "###" & [pAHome]) ) то скорее всего у вас есть ненормализованные таблицы :))) Хотя тут это используется вполне корректно.
Вот как все будет работать:
PARAMETERS fdpName Text ( 255 ), fdpMultiAdress Text ( 255 ), fdpRTelephone Text ( 255 ), fdpRem Text ( 255 );
SELECT tblPartners.pID, tblPartners.pName INTO USysTmpfdResults
FROM tblPartners
WHERE (((tblPartners.pName) Like "*" & [fdpName] & "*")) OR ((([pAIndex] & "###" & [pACity] & "###" & [pAStreet] & "###" & [pAHome]) Like "*" & [fdpMultiAdress] & "*")) OR (((tblPartners.pRTelephone) Like "*" & [fdpRTelephone] & "*")) OR (((tblPartners.pRem) Like "*" & [fdpRem] & "*"));
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32047581
ginik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, мне уже подсказали на др. форуме, Like "*" & [fdpName] & "*" будет работать.

Насчет "Смешного ключа [pAIndex] & "###" & [pACity] & "###" & [pAStreet] & "###" & [pAHome]" : это не ключ у меня!
По крайней мере не задумывался как таковой:)
Просто мне всеравно в каком из полей найдется совпадение.

Ну а вообще оператор ИЛИ у меня не заработал. Т.е. запрос-то записи дает, но все. И как я не бился, не смог решить задачу через запрос.

Если не лень, не затруднитесь-ли озадачится:)))

Таблица содержит реквизиты предприятия (название, адрес, телефоны). Пользователю дается форма с полями название, адрес, телефон, примечания.
На основани введенных в эти поля значений нужно найти любые совпадения в соответствующих полях таблицы. Т.е. если существуют след. записи:
-название=1, примечание=2, номер=111
-название=3, примечание=2, номер=222
-название=4, примечание=5, номер=222
При вводе в поля:
название=1 и примечание=2запрос должен вернуть только первые две записи.

Вот така вота (не)задача. Тоесть через код решается элементарно, а вот запросом...
...
Рейтинг: 0 / 0
Запрос не возвращает записей
    #32047625
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT Таблица1.Название, Таблица1.Примечание, Таблица1.номер
FROM Таблица1
WHERE (((Таблица1.Название) Like "*1*")) OR (((Таблица1.Примечание) Like "*2*"));
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос не возвращает записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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