Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите выбрать интервал данных из recordset
 
 автор: денник   (25.04.2009 в 09:29)   личное сообщение
 
 

Не могу решить задачу по выбору данных от 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"

  Ответить  
 
 автор: ars_bs   (25.04.2009 в 09:46)   личное сообщение
 
 

по нормальной схеме нужно сначала перевести в Х иУ в числовые значения а потом уже выбирать, ведь код у тебя числовое поле

  Ответить  
 
 автор: денник   (25.04.2009 в 09:54)   личное сообщение
 
 

В том то и проблема что код тоже текстовое поле. или нужно переводить все поля в числовые?

  Ответить  
 
 автор: ars_bs   (25.04.2009 в 09:56)   личное сообщение
 
 

кинь базу

  Ответить  
 
 автор: ars_bs   (25.04.2009 в 10:05)   личное сообщение
 
 

если в там храняться числовые значения почему поле текстовое

  Ответить  
 
 автор: денник   (25.04.2009 в 19:30)   личное сообщение
 
 

у меня таблица создается программно. цифра семизначная и некоторые из них начинается с 0. если ставлю Long то он мне первые нули убирает. а как при создании таблицы указать формат поля 0000000 я не знаю

  Ответить  
 
 автор: Lukas   (25.04.2009 в 12:35)   личное сообщение
 
 



Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_все_коды WHERE (Clng([Код]) Between " & Clng(x) & " And " & Clng(y) & ")") 

  Ответить  
 
 автор: денник   (25.04.2009 в 19:39)   личное сообщение
 
 

Всем спасибо. Особенно Lukas в таком виде работает.

  Ответить  
 
 автор: денник   (03.05.2009 в 11:04)   личное сообщение
 
 

Возникла новая задача, уже три дня бьюсь не могу решить, помогите, пожалуйста :
Есть запись в таблице [ОКДП] :
Поле [Расшифровка_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]
Пишет не соответствие типов данных в выражении условия отбора.

  Ответить  
 
 автор: KrukVN   (03.05.2009 в 12:42)   личное сообщение
 
 

проще будет если покажете бд
*
- а почему, вместо: Left(Right([Расшифровка_IV_уровень], 18), 7))
не написать: Mid([Расшифровка_IV_уровень], 5, 7) ?
- в запрос 'select * from ОКДП... сразу не включить qry_ххххххх ?

  Ответить  
 
 автор: Goblin   (03.05.2009 в 13:40)   личное сообщение
7 Кб.
 
 

Я бы ка дилетант начинал бы с запроса. Типа того, что пристегнул. Если правильно вник в тему, то может что поможет?

  Ответить  
 
 автор: Goblin   (03.05.2009 в 15:36)   личное сообщение
15 Кб.
 
 

ВО! Получилось. Первый опус был глуп по своему решению. Алгоритм таков:
Если вся инфа в таблице имеет структуру ЖЖЖЖЖЖЖ [00111]-[00002222] или как-то там еще, то
1. Отделяю цифровую часть в [] в которой первая цифра
2. Отделяю цифровую часть в [] в которой вторая цифра
3. С помощью функции CDbl([Поле]) перевожу полученные данные в цифровой формат на каждое поле
4. С помощью условия в запросе вывожу некое число, а там и всю строку.

По ходу дела получилось 2 запроса (для наглядности), но можно все в одном сделать, а форму на таблицу поставить.
Мозги, может проще есть варианты? А то подобные задачи решаю вот примерно так.

PS подредактировал, что бы #ошибка не вылазила.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList