powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
7 сообщений из 7, страница 1 из 1
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191196
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PROBLEM(s):
А) Ошибка открытия перекрестного запроса, основанного на запросах с параметрами
Б) Ошибка открытия рекордсета ДАО (возможно, АДО и проч.), основанного на запросах с параметрами

SOLUTION:
Как это ни смешно, все-таки нужно заменять параметры запроса наподобие

[Forms]![Дт_Обороты].[comboBegDate]

на функции, к ним обращающиеся:

GetDTBeg()

, описывая их в модуле:

Function GetDTBeg()
GetDTBeg = [Forms]![Дт_Обороты].[comboBegDate]
End Function

Вариант решения "прописать типы параметров [Forms]![Дт_Обороты].[comboBegDate]
в запросе
через PARAMETERS или интерфейс "Параметры" в режиме конструктора
действительно убирает ошибку - но только в перекрестных запросах, -
а ДАО не вылечивается.

Вывод: Универсале Перпетуум Мобиле?
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191204
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Флейм вот там, по уговору, да?\r
/topic/37034
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191230
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некотрая неточность.
При явном указании параметра работает везде (у меня во всяком случае, на Акес2000).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim db                         As DAO.Database
    Dim q                          As DAO.QueryDef
    Dim r                          As DAO.Recordset
    Set db = CurrentDb ' DBEngine(0)(0)

    Set q = db.QueryDefs("t2_per")
    q.Parameters![[Forms]![forma11]![Pole1]] = 11 ' можно и через For each и Eval
    Set r = q.OpenRecordset
    Do While Not r.EOF
        Debug.Print r( 0 ), r( 1 ), r( 2 )
        r.MoveNext
    Loop

    Set q = Nothing
    r.Close: Set r = Nothing
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191231
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некотрая неточность.
При явном указании параметра работает везде (у меня во всяком случае, на Акес2000).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim db                         As DAO.Database
    Dim q                          As DAO.QueryDef
    Dim r                          As DAO.Recordset
    Set db = CurrentDb ' DBEngine(0)(0)

    Set q = db.QueryDefs("t2_per")
    q.Parameters![[Forms]![forma11]![Pole1]] = 11 ' можно и через For each и Eval
    Set r = q.OpenRecordset
    Do While Not r.EOF
        Debug.Print r( 0 ), r( 1 ), r( 2 )
        r.MoveNext
    Loop

    Set q = Nothing
    r.Close: Set r = Nothing
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191329
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верю, Виктор, хотя так не пробовал.
Вопрос риторический - что эргономичнее:
функции на поля или указание параметров...
;)

ВЕДЬ ПОЛУЧАЕТСЯ, ЧТО ФУНКЦИИ VB УНИВЕРСАЛЬНЕЕ?
ТАК ЗАЧЭМ?..
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191349
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция м.б. и универсальнее, но что будет с планом выполнения и использованием RushMore?
ИМХО, тут надо конкретно на алгоритм смотреть и выбирать, то что нужно.
А в FAQ надо упоменуть два способа. Тока кто фак писать будет? Нуф-нуф почти выдохся...
...
Рейтинг: 0 / 0
FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
    #32191407
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, для FAQ нужны все способы.
А Рашмором пользуются на вкус ;)
Кто как приучился и кто с какого учебника начинал.
Я издавна и до сих пор пишу префиксы lbl, txt, btn и т.д., хотя про Рашмора услышал недавно ;-)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ.Ошибка открытия ПЕРЕКРЕСТНОГО запроса или DAO - Recordset'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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