powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset глючит
39 сообщений из 39, показаны все 2 страниц
Recordset глючит
    #32599495
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set rst = CurrentDb.OpenRecordset("RealizationPay")
возвращает ошибку 3061. Слишком мало параметров. Требуется 3.
Я всегда заполнял 2 переметра (хотя обязательный один).

ПОМОГИТЕ....
...
Рейтинг: 0 / 0
Recordset глючит
    #32599503
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RealizationPay - это таблица, запрос? Что это? Если запрос, то требует ли он параметры из функции или из формы?
...
Рейтинг: 0 / 0
Recordset глючит
    #32599510
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это запрос, параметры из формы он требует (даты с и по ), форма открыта. Хотя я пробовал и через VBA (типа запрос.parameters... и так далее). Одна фигня.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599513
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S. FedorenkoЭто запрос, параметры из формы он требует (даты с и по ), форма открыта. Хотя я пробовал и через VBA (типа запрос.parameters... и так далее). Одна фигня.

Фигня искать на конфе ответ без текстов запросов!
...
Рейтинг: 0 / 0
Recordset глючит
    #32599515
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос в студию. Знатоки посмотрят на него орлиным взором
...
Рейтинг: 0 / 0
Recordset глючит
    #32599516
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. если при открытой форме запускаем запрос, то данные он возвращает?
А если пытаемся по нему открыть рекордсет (при открытой форме), то данные не получаем?

Dim rs As Recordset
Dim db As Database
Set db = CurrentDb

Set rs = db.OpenRecordset("RealizationPay")
...
Рейтинг: 0 / 0
Recordset глючит
    #32599525
Фотография kedzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю, надо зайти в ссылки и проверить галку напротив DAO
...
Рейтинг: 0 / 0
Recordset глючит
    #32599527
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HummerТ.е. если при открытой форме запускаем запрос, то данные он возвращает?
А если пытаемся по нему открыть рекордсет (при открытой форме), то данные не получаем?

Dim rs As Recordset
Dim db As Database
Set db = CurrentDb

Set rs = db.OpenRecordset("RealizationPay")

Именно так. Просто не желает открывать recordset

Вот вам запрос:

Код: plaintext
1.
2.
3.
4.
SELECT MainPay.PIN, Sum(MainPay.Total) AS Vsego
FROM MainPay
WHERE (((MainPay.PayDate) Between [Forms]![SelectRealization]![Date1] And [Forms]![SelectRealization]![Date2]))
GROUP BY MainPay.PIN;

Тупая байда.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599528
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kedzoя думаю, надо зайти в ссылки и проверить галку напротив DAO

Я не маленький мальчик. В соседней процедуре всё работает. С DAO проблем не имею
...
Рейтинг: 0 / 0
Recordset глючит
    #32599536
Фотография kedzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S. Fedorenko kedzoя думаю, надо зайти в ссылки и проверить галку напротив DAO

Я не маленький мальчик. В соседней процедуре всё работает. С DAO проблем не имею

я где-то намекал на Ваш возраст? Время? Место?

у меня такая ошибка возникала, когда слетела связь с библиотекой.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599537
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 S. Fedorenko
Уважаемый, нормально дату передавайте в запрос, проблем не будет. Используем в запросе #.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599546
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kedzo S. Fedorenko kedzoя думаю, надо зайти в ссылки и проверить галку напротив DAO

Я не маленький мальчик. В соседней процедуре всё работает. С DAO проблем не имею

я где-то намекал на Ваш возраст? Время? Место?

у меня такая ошибка возникала, когда слетела связь с библиотекой.

Прошу прощения за грубость. Я по доброму отвечал.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599552
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer2 S. Fedorenko
Уважаемый, нормально дату передавайте в запрос, проблем не будет. Используем в запросе #.

У меня в параметре отбора написано
Between [Forms]![SelectRealization]![Date1] And [Forms]![SelectRealization]![Date2]

а не Between #01.05.06# and #31.05.06#
...
Рейтинг: 0 / 0
Recordset глючит
    #32599557
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выдели sql-стринг отдельно и сделай debug.print

гадить может и дата
и Set db = CurrentDb - лучше отвязать
...
Рейтинг: 0 / 0
Recordset глючит
    #32599567
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shuhard
У него про set db ничего и не написано. Я так давно писал, когда в 97 работал. Глюков не было, так что почему лучше отвязать, не очень понял.

2 S. Fedorenko
Разнится интерпритация строки при выполнении запроса и открытии по нему рекордсета. Для проверки, окройте рекордсет по строке. которую привели.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599666
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer2 Shuhard
У него про set db ничего и не написано. Я так давно писал, когда в 97 работал. Глюков не было, так что почему лучше отвязать, не очень понял.


Бывают чудеса при повторном обращении к CurrentDb,писал об этом кто-то из мэтров.
Я сам попадал при работе с семейством Properties-без set db не работало.
...
Рейтинг: 0 / 0
Recordset глючит
    #32599975
тиа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что есть MainPay. Таблица или, м.б., запрос со СВОИМИ параметрами?
...
Рейтинг: 0 / 0
Recordset глючит
    #32600039
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Акс в ркордсете требует действительные данные, а не ссылку на них. Такая конструкция будет работать:

Код: plaintext
1.
2.
3.
SELECT MainPay.PIN, Sum(MainPay.Total) AS Vsego
FROM MainPay
WHERE (((MainPay.PayDate) Between CDate('" & [Forms]![SelectRealization]![Date1] & "') And CDate('" & [Forms]![SelectRealization]![Date2] & "')))
GROUP BY MainPay.PIN;
Правда, как здесь на форуме уже не однократно замечалось, CDate может ошибаться, в завичимости от установок. Поэтому е этой ф-ией надо обращаться осторожно. Можно придумать другие варианты, важно, в рекордсет подать данные, а не ссылку
...
Рейтинг: 0 / 0
Recordset глючит
    #32600051
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К автору топика:
А если что-то типа этого попробовать
Код: plaintext
1.
Set rs=db.OpenRecordset("RealizationPay", dbOpenSnapshot)
Если записывать собрался, то
Set rs=db.OpenRecordset("RealizationPay", dbOpenDynaset)
...
Рейтинг: 0 / 0
Recordset глючит
    #32600053
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainPay - это таблица.
Проблему я решил.
Заключалась она в том, что при запуске процедуры запрос не видел (почему-то) поля Date1 и Date2 на открытой форме.
Пришлось создать функцию которая возвращает в запрос значения этих поле.


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

Я знаю, бред. Но это, единственное, что работает.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600057
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не поможет, попробуй так
Код: plaintext
1.
Set rs=db.OpenRecordset("RealizationPay",dbOpenSnapshot, dbSeeChanges)
...
Рейтинг: 0 / 0
Recordset глючит
    #32600068
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, дело не в параметрах openrecordset.
Если я в запрос добавлю другие параметры отбора, то количество требуемых параметров в сообщениее об ошибке возрастает.
Т.Е. если я отбираю по одной дате, он мне говорит: мало параметров. Требуется 1.
Если отбираю по временному периоду (дата с/по), то он требует 2 параметра, и т.д.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600072
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И неважно, по дате я отбираю, по целому числу (PIN - другой столбец) или по тексту. Принчипиально с параметрическим запросом не дружит.
...
Рейтинг: 0 / 0
Recordset глючит
    #32600089
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S. FedorenkoИ неважно, по дате я отбираю, по целому числу (PIN - другой столбец) или по тексту. Принчипиально с параметрическим запросом не дружит.

а строка через debug.print выглядет нормально и в качестве запроса(будучи сохранена) выполняется ?
...
Рейтинг: 0 / 0
Recordset глючит
    #32600131
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а може справочку почитаем?


Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim rst As DAO.Recordset
Set db = CurrentDb()
Set qdf = db.QueryDefs("qrySomeQuery")
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next prm
Set rst = qdf.OpenRecordset(dbOpenDynaset)
...
Рейтинг: 0 / 0
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
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Recordset глючит
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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