powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset глючит
14 сообщений из 39, страница 2 из 2
Recordset глючит
    #32600134
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhardвыдели sql-стринг отдельно и сделай debug.print

гадить может и дата
и Set db = CurrentDb - лучше отвязать

Я ещё тогда проверил. Всё нормально было.

Да и когда просто запрос открывал, всё показывало. Проблема - рекордсет не открывался.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600246
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз повторюсь. Этот вопрос нужно выносить в ФАК.
Потому что довольно часто стал повторяться.
Решение все равно одно (с ищ стало 2. Только у него грамотнее)
...
Рейтинг: 0 / 0
Recordset глючит
    #32600255
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз так всё плохо - можно генерить sql строку и динамически:
в строку сядут конкретные значения дат(можешь сделать формат/#).
Это должно устроить-поскольку после открытия RecordSetа их изменения тебе не важны.
Код: plaintext
1.
2.
3.
4.
mystr="Select * from Table Where Xdate Between "  &  _
Forms![F1].[Contr1]  &  " AND "  &
Forms![F1].[Contr2]
set myrst=mydb.openrecordset(mystr)
...
Рейтинг: 0 / 0
Recordset глючит
    #32600261
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищ
Set rst = qdf.OpenRecordset(dbOpenDynaset)

Так херь ведь в том, что у меня последняя строка не работает.

Зачем мне цикл? У меня 2 параметра.

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim q As QueryDef, rst As Recordset
Set q = CurrentDb.QueryDefs("RealizationPay")
q.Parameters( 0 ) = me.date1
q.Parameters( 1 ) = me.date2
Set rst = q.OpenRecordset(dbOpenDynaset)


Ну ни фига не работает.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600454
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ларчик открывается до офигения просто:
Код: plaintext
1.
2.
3.
4.
Dim q As DAO.QueryDef, rst As DAO.Recordset
Set q = CurrentDb.QueryDefs("RealizationPay")
q.Parameters( 0 ) = me.date1
q.Parameters( 1 ) = me.date2
Set rst = q.OpenRecordset(dbOpenDynaset)
...
Рейтинг: 0 / 0
Recordset глючит
    #32600494
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не перебор - в ADODB уже нету!
Код: plaintext
1.
DAO.QueryDef
...
Рейтинг: 0 / 0
Recordset глючит
    #32600571
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть перебор.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600617
madg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж и не знаю как войти в дисскусию потише...
Вот здесь задавал похожий вопрос.

Т.е. пока в запрос не передаю параметры из формы, для отбора записей, все нормально...
Как передал все кирдык... чего то ему (Аксу) мало :(

Я конечно понимаю, руки кривые, но всеж...
Будет интересно чем тут закончится :(

PS
S. Fedorenko прошу прощения за офтоп..., но для меня вопрос до сих пор не решен...

Поправьте если не в тему...
...
Рейтинг: 0 / 0
Recordset глючит
    #32600620
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
S. Fedorenko
Код: plaintext
1.
2.
3.
4.
5.
Dim q As QueryDef, rst As Recordset
Set q = CurrentDb.QueryDefs("RealizationPay")
q.Parameters( 0 ) = me.date1
q.Parameters( 1 ) = me.date2
Set rst = q.OpenRecordset(dbOpenDynaset)

Ну ни фига не работает.
Господа! Так сказать, здрасте. Это я со своими глупыми вопросами.

Вопрос номер раз. Что значит не работает? На этот раз, как я понимаю, сообщение о недостатке параметров уже не выдается? Ну так мы в шаге от цели. Не работает, если я правильно телепячу, на этот раз только в том смысле, что работает неправильно.

По этому поводу вопрос номер два. Что такое me.date1 и me.date2? Это ведь, наверно, текстбоксы, у которых отсутствует ControlSource. Таким образом, Аксесс понимает их значения как стринги, а не как даты. Где гарантия, что строка
q.Parameters(0) = me.date1
занесет в параметр правильную дату? 02/03/04 - это 3 февраля или 4 марта? Надо писать что-то типа такого:
q.Parameters(0) = DateSerial(Mid(me.date1, ..., ...), Mid(me.date1, ..., ...), Mid(me.date1, ..., ...))
...
Рейтинг: 0 / 0
Recordset глючит
    #32600632
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот похожий случай:
/topic/88682
...
Рейтинг: 0 / 0
Recordset глючит
    #32600697
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, проблема была в данном случае в другом. RecordSet описывался по умолчанию не DAO.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600887
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч S. Fedorenko
Код: plaintext
1.
2.
3.
4.
5.
Dim q As QueryDef, rst As Recordset
Set q = CurrentDb.QueryDefs("RealizationPay")
q.Parameters( 0 ) = me.date1
q.Parameters( 1 ) = me.date2
Set rst = q.OpenRecordset(dbOpenDynaset)

Ну ни фига не работает.
Господа! Так сказать, здрасте. Это я со своими глупыми вопросами.

Вопрос номер раз. Что значит не работает? На этот раз, как я понимаю, сообщение о недостатке параметров уже не выдается? Ну так мы в шаге от цели. Не работает, если я правильно телепячу, на этот раз только в том смысле, что работает неправильно.

По этому поводу вопрос номер два. Что такое me.date1 и me.date2? Это ведь, наверно, текстбоксы, у которых отсутствует ControlSource. Таким образом, Аксесс понимает их значения как стринги, а не как даты. Где гарантия, что строка
q.Parameters(0) = me.date1
занесет в параметр правильную дату? 02/03/04 - это 3 февраля или 4 марта? Надо писать что-то типа такого:
q.Parameters(0) = DateSerial(Mid(me.date1, ..., ...), Mid(me.date1, ..., ...), Mid(me.date1, ..., ...))

Ага, особенно если эти 2 поля формата "Длинный формат даты" с маской ввода 00.00.00

авторСаныч, проблема была в данном случае в другом. RecordSet описывался по умолчанию не DAO.

Нифига не помогает. Запрос не видит полей формы. НИ ДАТЫ, НИ ЧИСЛА.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600903
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена следующим образом:

запрос:

Код: plaintext
1.
2.
3.
SELECT MainPay.PIN, Sum(MainPay.Total) AS Vsego
FROM MainPay
WHERE (((MainPay.PayDate)>=RealizationDate( 1 ) And (MainPay.PayDate)<=RealizationDate( 2 )))
GROUP BY MainPay.PIN

Функция RealizationDate() забирает значения полей в запрос

Код: plaintext
1.
2.
Public Function RealizationDate(DateNumber as byte)
RealizationDate = Form_SelectRealization.controls("Date" & DateNumber ).value
End Function

ПРоцедура:

Код: plaintext
1.
2.
3.
Dim q As QueryDef, rst As Recordset
Set q = CurrentDb.QueryDefs("RealizationPay")
Set rst = q.OpenRecordset(dbOpenDynaset)

Можно и не использовать q. да, надо убрать.
...
Рейтинг: 0 / 0
Recordset глючит
    #32602358
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
S. FedorenkoАга, особенно если эти 2 поля формата "Длинный формат даты" с маской ввода 00.00.00
Формат - это не тип данных. Их вечно путают, и это никогда добром не кончалось.
Хотя я и понял, что проблема не в этом.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset глючит
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]