Выбор диапазона запсей заданного в форме из Recordset'a

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Выбор диапазона запсей заданного в форме из Recordset'a

Сообщение TankKk » 07.02.2006 (Вт) 16:31

Не подскажите, как сделать подобие вот этого неработающего запроса? Тут с Between'om косяк :(
Код: Выделить всё
Set rst = db.OpenRecordset("SELECT Pole FROM " & pathSelect & ".[табл1] WHERE " & _
    "(Pole Between (Like '*" & CStr(Forms("Основа")!ПолеСоСписком25) & "') And (Like '*" & _
    CStr(Forms("Основа")!ПолеСоСписком27) & "'))", dbOpenDynaset)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.02.2006 (Вт) 16:42

Лучше покажи структуру таблицы и скажи, что надо.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.02.2006 (Вт) 16:42

Хотя лучше не надо.
Like в Between это уже достаточно самобытно.
Lasciate ogni speranza, voi ch'entrate.

TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Сообщение TankKk » 07.02.2006 (Вт) 17:07

alibek писал(а):Лучше покажи структуру таблицы и скажи, что надо.

Нужно из табл выбрать записи в диапазоне лет заданном в 2х полях со списком (там значения типа 1999, 2000, 2001 и т.д.), а в таблице, поле по которому нужно выбирать записи, типа ##.##.####
Like в Between это уже достаточно самобытно.

Да я такой. :roll:

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 07.02.2006 (Вт) 17:10

может нечто такое подойдет:
between '#01/01/' & [1-й список] & '#' and '#12/31/' & [2-ой список] & '#'

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.02.2006 (Вт) 17:31

Нет... помогут две вещи... Year(pole) between ... and ..., и осознание того факта, что самобытность хороша, пока не выходит за рамки мануала...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 07.02.2006 (Вт) 17:33

GSerg писал(а):Нет... помогут две вещи... Year(pole) between ... and ..., и осознание того факта, что самобытность хороша, пока не выходит за рамки мануала...


по сути то, тоже самое, что я написала

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.02.2006 (Вт) 17:40

Угу... только чуть причёсаннее... да и п.2 главнее...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Сообщение TankKk » 07.02.2006 (Вт) 17:44

Olga писал(а):может нечто такое подойдет:
between '#01/01/' & [1-й список] & '#' and '#12/31/' & [2-ой список] & '#'

Да спасибо, Ольга. пробовал то же самое, только вместо "/" использовал "." писал синтаксическую ошибку :(((
СПАСИБА!!!

TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Сообщение TankKk » 07.02.2006 (Вт) 17:58

GSerg писал(а):Угу... только чуть причёсаннее... да и п.2 главнее...

Мануал я всегда чтил, с самого детства

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.02.2006 (Вт) 18:00

Тогда как like оказался в between?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Сообщение TankKk » 07.02.2006 (Вт) 18:04

GSerg писал(а):Тогда как like оказался в between?..

Это был 20й вариант, заведомо неверный, о чем я сообщил, а вставил я его потому что он отображает суть моей проблемы.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.02.2006 (Вт) 18:13

Суть проблемы лучше словами... а то когда видишь такой код, думаешь, что суть проблемы именно в нём... тот факт, что код призван что-то иллюстрировать, уходит на задний план 20-м заведомо неверным вариантом...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

TankKk
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 19.01.2006 (Чт) 17:10

Сообщение TankKk » 07.02.2006 (Вт) 19:38

ОК, тогда по существу, в чем разница двух записей, первая нормально отрабатывается, на второй на Pole2 пишет variable not defined. Оба поля содержат дату
Код: Выделить всё

Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
Set rst1 = db.OpenRecordset("SELECT * FROM " & pathSelect & ".[Tb1] WHERE " & _
    "(" & Year(Pole1) & " Between " & CInt(Forms("Основа")!ПолеСоСписком25) & _
    " And " & CInt(Forms("Основа")!ПолеСоСписком27) & ")", dbOpenDynaset)

Set rst2 = db.OpenRecordset("SELECT * FROM " & pathSelect & ".[Tb2] WHERE " & _
    "(" & Year(Pole2) & " Between " & CInt(Forms("Основа")!ПолеСоСписком25) & _
    " And " & CInt(Forms("Основа")!ПолеСоСписком27) & ")", dbOpenDynaset)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.02.2006 (Ср) 6:41

Если пишет, что не определена, значит проблема только в этом и ни в чём другом. А year(pole) - часть запроса, а не кода.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 09.02.2006 (Чт) 1:45

в Оракле я делаю так:

Код: Выделить всё

BETWEEN  to_date ('01.01.1990', 'dd.mm.yyyy') AND  to_date ('01.01.2005', 'dd.mm.yyyy')


PS

Чё то у меня подозрение что функция to_date входит в стандарт SQL
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.02.2006 (Чт) 9:27

CORBA писал(а):Чё то у меня подозрение что функция to_date входит в стандарт SQL

Неправильное у тебя подозрение.
Это функция Oracle.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 112

    TopList