Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
Set rst = CurrentDb.OpenRecordset("RealizationPay")
возвращает ошибку 3061. Слишком мало параметров. Требуется 3.
Я всегда заполнял 2 переметра (хотя обязательный один).

ПОМОГИТЕ....
12 июл 04, 12:57    [799812]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Hummer
Member

Откуда:
Сообщений: 2583
RealizationPay - это таблица, запрос? Что это? Если запрос, то требует ли он параметры из функции или из формы?
12 июл 04, 12:59    [799824]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
Это запрос, параметры из формы он требует (даты с и по), форма открыта. Хотя я пробовал и через VBA (типа запрос.parameters... и так далее). Одна фигня.
12 июл 04, 13:02    [799833]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
S. Fedorenko
Это запрос, параметры из формы он требует (даты с и по), форма открыта. Хотя я пробовал и через VBA (типа запрос.parameters... и так далее). Одна фигня.


Фигня искать на конфе ответ без текстов запросов!
12 июл 04, 13:04    [799838]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Лифчик
Member

Откуда:
Сообщений: 1699
Запрос в студию. Знатоки посмотрят на него орлиным взором
12 июл 04, 13:05    [799843]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Hummer
Member

Откуда:
Сообщений: 2583
Т.е. если при открытой форме запускаем запрос, то данные он возвращает?
А если пытаемся по нему открыть рекордсет (при открытой форме), то данные не получаем?

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

Set rs = db.OpenRecordset("RealizationPay")
12 июл 04, 13:05    [799844]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
kedzo
Member

Откуда: Москва
Сообщений: 964
я думаю, надо зайти в ссылки и проверить галку напротив DAO
12 июл 04, 13:09    [799855]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
Hummer
Т.е. если при открытой форме запускаем запрос, то данные он возвращает?
А если пытаемся по нему открыть рекордсет (при открытой форме), то данные не получаем?

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

Set rs = db.OpenRecordset("RealizationPay")


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

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

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;

Тупая байда.
12 июл 04, 13:10    [799857]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
kedzo
я думаю, надо зайти в ссылки и проверить галку напротив DAO


Я не маленький мальчик. В соседней процедуре всё работает. С DAO проблем не имею
12 июл 04, 13:11    [799859]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
kedzo
Member

Откуда: Москва
Сообщений: 964
S. Fedorenko
kedzo
я думаю, надо зайти в ссылки и проверить галку напротив DAO


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


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

у меня такая ошибка возникала, когда слетела связь с библиотекой.
12 июл 04, 13:14    [799870]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Hummer
Member

Откуда:
Сообщений: 2583
2 S. Fedorenko
Уважаемый, нормально дату передавайте в запрос, проблем не будет. Используем в запросе #.
12 июл 04, 13:14    [799871]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
kedzo
S. Fedorenko
kedzo
я думаю, надо зайти в ссылки и проверить галку напротив DAO


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


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

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


Прошу прощения за грубость. Я по доброму отвечал.
12 июл 04, 13:18    [799892]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
Hummer
2 S. Fedorenko
Уважаемый, нормально дату передавайте в запрос, проблем не будет. Используем в запросе #.


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

а не Between #01.05.06# and #31.05.06#
12 июл 04, 13:19    [799899]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
выдели sql-стринг отдельно и сделай debug.print

гадить может и дата
и Set db = CurrentDb - лучше отвязать
12 июл 04, 13:21    [799910]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Hummer
Member

Откуда:
Сообщений: 2583
2 Shuhard
У него про set db ничего и не написано. Я так давно писал, когда в 97 работал. Глюков не было, так что почему лучше отвязать, не очень понял.

2 S. Fedorenko
Разнится интерпритация строки при выполнении запроса и открытии по нему рекордсета. Для проверки, окройте рекордсет по строке. которую привели.
12 июл 04, 13:25    [799928]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
Hummer
2 Shuhard
У него про set db ничего и не написано. Я так давно писал, когда в 97 работал. Глюков не было, так что почему лучше отвязать, не очень понял.


Бывают чудеса при повторном обращении к CurrentDb,писал об этом кто-то из мэтров.
Я сам попадал при работе с семейством Properties-без set db не работало.
12 июл 04, 14:04    [800076]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
тиа
Guest
А что есть MainPay. Таблица или, м.б., запрос со СВОИМИ параметрами?
12 июл 04, 15:51    [800500]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Акс в ркордсете требует действительные данные, а не ссылку на них. Такая конструкция будет работать:

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 может ошибаться, в завичимости от установок. Поэтому е этой ф-ией надо обращаться осторожно. Можно придумать другие варианты, важно, в рекордсет подать данные, а не ссылку
12 июл 04, 16:20    [800602]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Proga
Member

Откуда: МО
Сообщений: 3042
К автору топика:
А если что-то типа этого попробовать
Set rs=db.OpenRecordset("RealizationPay", dbOpenSnapshot)
Если записывать собрался, то
Set rs=db.OpenRecordset("RealizationPay", dbOpenDynaset)
12 июл 04, 16:23    [800616]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
MainPay - это таблица.
Проблему я решил.
Заключалась она в том, что при запуске процедуры запрос не видел (почему-то) поля Date1 и Date2 на открытой форме.
Пришлось создать функцию которая возвращает в запрос значения этих поле.


Public Function RealizationDate(DateNumber as byte)
RealizationDate = Form_SelectRealization.controls("Date" & DateNumber ).value
End Function

Я знаю, бред. Но это, единственное, что работает.
12 июл 04, 16:24    [800619]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Proga
Member

Откуда: МО
Сообщений: 3042
Если не поможет, попробуй так
Set rs=db.OpenRecordset("RealizationPay",dbOpenSnapshot, dbSeeChanges)
12 июл 04, 16:25    [800624]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
Нет, дело не в параметрах openrecordset.
Если я в запрос добавлю другие параметры отбора, то количество требуемых параметров в сообщениее об ошибке возрастает.
Т.Е. если я отбираю по одной дате, он мне говорит: мало параметров. Требуется 1.
Если отбираю по временному периоду (дата с/по), то он требует 2 параметра, и т.д.
12 июл 04, 16:30    [800642]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
S. Fedorenko
Member

Откуда: Санкт-Петербург
Сообщений: 257
И неважно, по дате я отбираю, по целому числу (PIN - другой столбец) или по тексту. Принчипиально с параметрическим запросом не дружит.
12 июл 04, 16:32    [800646]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
S. Fedorenko
И неважно, по дате я отбираю, по целому числу (PIN - другой столбец) или по тексту. Принчипиально с параметрическим запросом не дружит.


а строка через debug.print выглядет нормально и в качестве запроса(будучи сохранена) выполняется ?
12 июл 04, 16:36    [800668]     Ответить | Цитировать Сообщить модератору
 Re: Recordset глючит  [new]
ищ
Guest
а може справочку почитаем?


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)
12 июл 04, 16:49    [800730]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить