Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 12:51   #1
ikrukov
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 11
Вопрос Выбор значений по условиям, введенным с клавиатуры

Прошу помочь старику-самоучке

В Access есть таблица Participants, из которой нужно выбрать строки с определенными значениями StartNumber.
Запрос
---------------------------
SELECT Participants.Team, Participants.StartNumber
FROM Participants
WHERE (((Participants.StartNumber) In ("1","2","3")));
---------------------------
с этим справляется. А как быть, если условия отбора нужно вводить с клавиатуры? Вот такая конструкция работает, только если вводить одно значение:
---------------------------
SELECT Participants.Team, Participants.StartNumber
FROM Participants
WHERE (((Participants.StartNumber) In ([Введите №№])));
---------------------------

Где тут ошибка и как ее исправить?
ikrukov вне форума Ответить с цитированием
Старый 15.03.2012, 15:44   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
Я с таким конечно ещё не сталкивался, но может так:

SELECT Participants.Team, Participants.StartNumber
FROM Participants
WHERE (((Participants.StartNumber) In ([Введите №1];[Введите №2];[Введите №3])));

Или как Вы делали только в всплывающем окне вводить:
1;2;3;4
gluk_fm вне форума Ответить с цитированием
Старый 15.03.2012, 16:31   #3
ikrukov
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от gluk_fm Посмотреть сообщение
Добрый день.
Я с таким конечно ещё не сталкивался, но может так:

SELECT Participants.Team, Participants.StartNumber
FROM Participants
WHERE (((Participants.StartNumber) In ([Введите №1];[Введите №2];[Введите №3])));

Или как Вы делали только в всплывающем окне вводить:
1;2;3;4
... увы, не работает. насчет первого варианта пишет, что ошибка синтаксиса.
На всякий случай уточню вопрос. Число значений StartNumber может быть произвольным (<=20)

Последний раз редактировалось ikrukov; 15.03.2012 в 16:35.
ikrukov вне форума Ответить с цитированием
Старый 15.03.2012, 17:20   #4
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Не знаю, что вы именно неправильно делали, но вот по первому примеру:
Вложения
Тип файла: rar База данных2.rar (10.9 Кб, 20 просмотров)
gluk_fm вне форума Ответить с цитированием
Старый 15.03.2012, 17:35   #5
ikrukov
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 11
По умолчанию

спасибо за быстрый ответ. Но не могу открыть accdb. у меня Access2003
ikrukov вне форума Ответить с цитированием
Старый 15.03.2012, 17:44   #6
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

В 2003 формате.
Вложения
Тип файла: rar t.rar (8.8 Кб, 17 просмотров)
gluk_fm вне форума Ответить с цитированием
Старый 15.03.2012, 18:00   #7
ikrukov
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 11
По умолчанию

ура!
а можно ли сделать походий запрос для произвольного числа значений-условий? (сейчас оно фиксированное - три шт.)
ikrukov вне форума Ответить с цитированием
Старый 16.03.2012, 01:40   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте ikrukov.
"..для произвольного числа значений.." - для произвольного нельзя, но можно задать максимально допустимое кол-во,
конечно потом всем им придется давать подтверждения.

рекомендую SQL конструкцию предложенную gluk_fm привести к корректному виду запроса с параметрами,
т.е. явно объявлять все параметры в запросе, с указанием типов параметров, и так делать всегда.

Это не просто хороший тон, это гарантия того, что в будущем у Вас не будет проблем с разночтением типов данных.
Код:
PARAMETERS pp1 Long, pp2 Long, pp3 Long, pp4 Long, pp5  Long;
SELECT Поле1
FROM Таблица1
WHERE Поле1 In ([pp1],[pp2],[pp3],[pp3],[pp4],[pp5]);
Успехов Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выбор значений с условиями best_vint Microsoft Office Excel 3 12.05.2011 09:05
выбор уникальных значений олег69 Microsoft Office Excel 7 10.03.2011 14:15
Выборка значений по двум условиям Stefav Microsoft Office Excel 6 16.03.2010 13:34
отбор уникальных значений по определенным условиям Alex___ Microsoft Office Excel 39 12.10.2009 17:02
выбор значений в цикле Melok Паскаль, Turbo Pascal, PascalABC.NET 3 15.12.2007 22:56