Вопрос № 79044: Здраствуйте. Вопрос по MS ACCESS2000: есть таблица ПРОТОКОЛ с полем ФИО. Как сделать чтобы находить человека можно было только по фамилии. Фамилия берется из формы.
Пишу как ниже, но ищет только если есть одна фамилия в поле.
SELECT ФИО<...
Вопрос № 79.044
Здраствуйте. Вопрос по MS ACCESS2000: есть таблица ПРОТОКОЛ с полем ФИО. Как сделать чтобы находить человека можно было только по фамилии. Фамилия берется из формы.
Пишу как ниже, но ищет только если есть одна фамилия в поле.
SELECT ФИО
FROM Протокол
WHERE ((ФИО) Like (forms!name_form!fam));
Отвечает: Кот Матроскин
Здравствуйте, Попов Николай!
Немного измените Ваш запрос
в частности строку
where ((фио) Like '%'+lstrim(rstrim(forms!name_form!fam))+'%')
знаки % - по стандарту sql - это любой символ или набор символов
Ответ отправил: Кот Матроскин (статус: 5-ый класс)
Ответ отправлен: 20.03.2007, 10:58
Отвечает: Игорь Елизаров
Здравствуйте, Попов Николай!
Добавление к вышесказанному.
У меня описанный вариант взаимодействия запроса и формы не получался, пришлось сделать немного по другому.
Я просто ищу вхождение строки, которая есть в форме.
Вот пример
select ФИО from Протокол
WHERE ((InStr([Протокол]![ФИО],[Forms]![выбор ФИО]![ФИО]))>0)
Но для Вас надо вводить более жесткую проверку, что совпадает именно с первого знака (если фамилия в базе начинается с первого знака), иначе , например, кроме людей по фамилии Иванов вы отберете и всех женщин, у которых отчество Ивановна или Иванович
то есть для вас похоже проверка дожна быть
WHERE ((InStr([Протокол]![ФИО],[Forms]![выбор ФИО]![ФИО]))=1)
С уважением, Игорь
--------- Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: 10-ый класс)
Ответ отправлен: 20.03.2007, 23:01