|
|
|
| Не могу решить задачу по выбору данных от X до Y. Причем когда строю запрос с помощью мастера запросов все работает.
Формат всех полей текстовый и значение переменных Х и У тоже из текстовых полей, но значение цифровое . Или может с текстовыми полями работать и не должно?
x = Left(Right(Nrst("Расшифровка_I_уровень"), 18), 7)
y = Left(Right(Nrst("Расшифровка_I_уровень"), 8), 7)
Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_все_коды WHERE (Код>= x And Код <= y)")
|
Выдает ошибку "Слишком мало параметров. требуется 2" | |
|
| |
|
|
|
| по нормальной схеме нужно сначала перевести в Х иУ в числовые значения а потом уже выбирать, ведь код у тебя числовое поле | |
|
| |
|
|
|
| В том то и проблема что код тоже текстовое поле. или нужно переводить все поля в числовые? | |
|
| |
|
|
|
|
| если в там храняться числовые значения почему поле текстовое | |
|
| |
|
|
|
| у меня таблица создается программно. цифра семизначная и некоторые из них начинается с 0. если ставлю Long то он мне первые нули убирает. а как при создании таблицы указать формат поля 0000000 я не знаю | |
|
| |
|
|
|
|
Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_все_коды WHERE (Clng([Код]) Between " & Clng(x) & " And " & Clng(y) & ")")
|
| |
|
| |
|
|
|
| Всем спасибо. Особенно Lukas в таком виде работает. | |
|
| |
|
|
|
| Возникла новая задача, уже три дня бьюсь не могу решить, помогите, пожалуйста :
Есть запись в таблице [ОКДП] :
Поле [Расшифровка_IV_уровень]: Культуры для производства напитков и пряностей [0113610]-[0113750]
Есть запись в запросе [qry_ххххххх]
Поле: [Код]: 0113721
Другими словами «0113721» попадает в интервал [0113610]-[0113750]
Как вывести рекордсет для «0113721» которые бы содержал «Культуры для производства напитков и пряностей [0113610]-[0113750]»?
Я пробовал:
[code]
***
Set rstI = CurrentDb.OpenRecordset("SELECT * FROM qry_ххххххх")
***
Set NrstI = CurrentDb.OpenRecordset("select * from ОКДП where (CLng(Left(Right([Расшифровка_IV_уровень], 18), 7))<=" & CLng(rstI("Код")) & " and CLng(Left(Right([Расшифровка_IV_уровень], 8), 7))>=" & CLng(rstI("Код")) & ")")
[code]
Пишет не соответствие типов данных в выражении условия отбора. | |
|
| |
|
|
|
| проще будет если покажете бд
*
- а почему, вместо: Left(Right([Расшифровка_IV_уровень], 18), 7))
не написать: Mid([Расшифровка_IV_уровень], 5, 7) ?
- в запрос 'select * from ОКДП... сразу не включить qry_ххххххх ? | |
|
| |
|
7 Кб. |
|
| Я бы ка дилетант начинал бы с запроса. Типа того, что пристегнул. Если правильно вник в тему, то может что поможет? | |
|
| |
|
15 Кб. |
|
| ВО! Получилось. Первый опус был глуп по своему решению. Алгоритм таков:
Если вся инфа в таблице имеет структуру ЖЖЖЖЖЖЖ [00111]-[00002222] или как-то там еще, то
1. Отделяю цифровую часть в [] в которой первая цифра
2. Отделяю цифровую часть в [] в которой вторая цифра
3. С помощью функции CDbl([Поле]) перевожу полученные данные в цифровой формат на каждое поле
4. С помощью условия в запросе вывожу некое число, а там и всю строку.
По ходу дела получилось 2 запроса (для наглядности), но можно все в одном сделать, а форму на таблицу поставить.
Мозги, может проще есть варианты? А то подобные задачи решаю вот примерно так.
PS подредактировал, что бы #ошибка не вылазила. | |
|
| |