powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
25 сообщений из 73, страница 1 из 3
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38992354
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

В Access 2013 есть форма, основанная на рекордсете. Данные загружаются с сервера SQL.
Если в форме скопировать одну строку и вставить ее в пустую, то строка корректно вставится, но в предыдущей строке некоторые данные пропадают, а в остальных появляется ошибка #Error. Однако, если перейти на эту строку с ошибками, что все данные появляются, а ошибка пропадает.

В чем может быть причина ошибки и как ее решить?

Заранее всем спасибо!
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38992717
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Та же база в 2010 офисе работает корректно
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38992735
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaSТа же база в 2010 офисе работает корректно
У нас не, то что Access 2013, у нас у большинства Access 2010 и Access 2007 не стоит.......
А че в 2010 религия не позволяет работать?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993279
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI, у нас компания крупная. Инфраструктура уже всем политикой накатывает 13 офис. Из-за этой базы ничего отменять не будут.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993296
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaSROI, у нас компания крупная. Инфраструктура уже всем политикой накатывает 13 офис. Из-за этой базы ничего отменять не будут.
Если у вас отсутствует лицензия даунгрейд (извеняюсь за русский).
Тогда только отладка и разбор полетов.
К стати Access 2013 32 или 64
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993343
VerochkaS,

Вы не указали на каком рекордсете: DAO или ADODB.
Какой запрос: вызов процедуры или select?

Я в своих разработках никогда так не делаю, т.к. в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей).

100% работающим решением есть использование RecordSource.

С уважением, Павел.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993351
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединюсь.

Если работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс. Если вы вручную получаете рекордсет, тогда аксес вааще не нужен - делайте на студии.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993356
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовVerochkaS,

Вы не указали на каком рекордсете: DAO или ADODB.
Какой запрос: вызов процедуры или select?

Я в своих разработках никогда так не делаю, т.к. в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей).

100% работающим решением есть использование RecordSource.

С уважением, Павел.
1 RecordSource ---это название свойства формы
а не рекордСет
Я не понял чего вы не используете DAO или ADODB или вызов процедуры или select
К стати с уважением
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993358
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-ЛПрисоединюсь.

Если работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс. Если вы вручную получаете рекордсет, тогда аксес вааще не нужен - делайте на студии.
У меня формы все отвязанные рекордСет скармливаю по мере надобнысти и потребности.
Полет всегда нормальный .
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993365
По порядку
ROI RecordSource ---это название свойства формы
а не рекордСет
RecordSource - это не объект, а строка. Access сам создаст нужный объект для работы.

ROI не понял чего вы не используете DAO или ADODB или вызов процедуры или select
Я конечно их использую в своем коде на VBA, но никогда в качестве источника данных для формы!

С уважением, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993379
2571
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел ФурсовВы не указали на каком рекордсете: DAO или ADODB.
ROIЯ не понял чего вы не используете DAO или ADODB
На сабж посмотрите:)

... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993394
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовПо порядку
ROI RecordSource ---это название свойства формы
а не рекордСет
RecordSource - это не объект, а строка. Access сам создаст нужный объект для работы.

ROI не понял чего вы не используете DAO или ADODB или вызов процедуры или select
Я конечно их использую в своем коде на VBA, но никогда в качестве источника данных для формы!

С уважением, Павел
По порядку дык по порядку
1 RecordSource - это не объект, а строка. Access сам создаст нужный объект для работы.
Это свойство объекта.
2 А чего вы используете в качестве источника данных если это вам не подходит (DAO или ADODB или вызов процедуры или select)
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993397
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2571Павел ФурсовВы не указали на каком рекордсете: DAO или ADODB.
ROIЯ не понял чего вы не используете DAO или ADODB
На сабж посмотрите:)

... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов.
Да ну а я то их 15 лет пользуююю.
Вот я дебил.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993409
2571На сабж посмотрите:)
Спасибо, просто давно не отвечал в форумах...

С уваженим, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993415
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,

ROIК стати Access 2013 32 или 64
- и 32 и 64. Больше 100 пользователей. У всех разные ноутбуки и операционки.

ROIЯ не понял чего вы не используете DAO или ADODB или вызов процедуры или select
К стати с уважением
Использую подключение ADODB.В зависимости от заполненный полей в форме формируется динамический SQL-запрос, который отправляется на сервер. Данные записываются в рекордсет и он приписывается к форме. Это запрос и прописывается в RecordSource формы.

ROIУ меня формы все отвязанные рекордСет скармливаю по мере надобнысти и потребности.
Полет всегда нормальный .
Если делать отвязанный рекордсет, то нужно все действия по изменению/удалению/добавлению прописывать для отправки на сервер, а с этим ADO справляется прекрасно.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993419
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Фурсов100% работающим решением есть использование RecordSource.С уважением, Павел.

Что и как Вы присваиваете RecordSource формы? Можно пример?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993424
ROIЭто свойство объекта.
К чему это?
Мы же говорим о работе с данными, а не пытаемся разобраться с объектной моделью Access.
ROI2 А чего вы используете в качестве источника данных если это вам не подходит (DAO или ADODB или вызов процедуры или select)
Происходят ошибки, приводящие к закрытию msaccess.exe в моих сценариях с использованием фильтров, сортировки и определения выделенных строк (о чем я уже писал выше).

С уважением, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993436
VerochkaSЧто и как Вы присваиваете RecordSource формы? Можно пример?
Конечно можно.
Какие у нас есть доступные объекты:
1. Таблицы и запросы, находящиеся в CurrentDb.
2. Связанные таблицы и запросы к серверу, находящиеся в CurrentDb (использую для работы с SQL Server через ODBC).

Их можно использовать в качестве RecordSource.
Например, таблица называется Table1. Значит в качестве источнка можно указать "Table1".
Или сформировать строку запроса к этой таблице: "select * from Table1".

С уваженим, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993443
VerochkaSИспользую подключение ADODB.В зависимости от заполненный полей в форме формируется динамический SQL-запрос, который отправляется на сервер. Данные записываются в рекордсет и он приписывается к форме. Это запрос и прописывается в RecordSource формы.

Зачем получать Recordset?
Что приписывается, а что прописывается?

Можно илюстрировать вашим кодом?

С уважением, Павел.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993456
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Фурсов,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim cmd As ADODB.Command
    
    Set cn = New ADODB.Connection
    
    With cn
       .ConnectionString = "PROVIDER=SQLOLEDB;DATA SOURCE=servername;Initial Catalog=Accruals;UID=user;Password=123"
       .CursorLocation = adUseClient
       .Open
    End With
    
    Set cmd = New ADODB.Command
    Set rs = New ADODB.Recordset
    
    If Me![MyOrMappingRecords] = 1 Then
        sqlquery = "SELECT 1"
    Else
        sqlquery = "SELECT 2"
    End If

    With cmd
        .ActiveConnection = cn
        .CommandText = sqlquery
    End With
    
    rs.Open cmd, , adOpenStatic, adLockOptimistic
    
    DoCmd.OpenForm "dbo_Accruals", acNormal, , , acFormEdit, acHidden
    Set Forms!dbo_Accruals.Recordset = rs   
    DoCmd.OpenForm "dbo_Accruals", acFormDS, , , acFormEdit, acWindowNormal



Убрала лишнее, чтобы не засорять код
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993472
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовROIЭто свойство объекта.
К чему это?
Мы же говорим о работе с данными, а не пытаемся разобраться с объектной моделью Access.
ROI2 А чего вы используете в качестве источника данных если это вам не подходит (DAO или ADODB или вызов процедуры или select)
Происходят ошибки, приводящие к закрытию msaccess.exe в моих сценариях с использованием фильтров, сортировки и определения выделенных строк (о чем я уже писал выше).

С уважением, Павел
Чушь , если все правильно сконструровано ничег такого не наблюдал.
Есче раз ЧЮШЬ.(ИМХО)
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993477
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,
в принципе у меня все работает корректно. вот только копирование на компьютерах с 2013 офисом выдает такую ошибку, которая смущает пользователей
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993482
VerochkaS,
Спасибо.
Я в принципе об этом и подумал.
Многие так до сих пор делают (у ROI даже ошибок не возникает).
Я уже высказал свою точку зрения, что так работать не надо. Используйте только RecordSource.

В коде формы можно создать нужные объекты в CurrentDb или другой MDB/ACCDB, сформировать RecordSource и использовать его.
Никто нас особо не ограничивает в названиях таблиц или запросов. Они могут быть созданы как временные объекты, нужные для работы самой формы. Естественно, при закрытии форма должна их удалить.
Если у вас форма существует в единственном экземпляре, то объекты можно делать постоянными.
Еще зависит от того, используется ли соместный доступ к CurrentDb или у каждого пользователя есть своя копия.

С уважением, Павел.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993486
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaSПавел Фурсов,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim cmd As ADODB.Command
    
    Set cn = New ADODB.Connection
    
    With cn
       .ConnectionString = "PROVIDER=SQLOLEDB;DATA SOURCE=servername;Initial Catalog=Accruals;UID=user;Password=123"
       .CursorLocation = adUseClient
       .Open
    End With
    
    Set cmd = New ADODB.Command
    Set rs = New ADODB.Recordset
    
    If Me![MyOrMappingRecords] = 1 Then
        sqlquery = "SELECT 1"
    Else
        sqlquery = "SELECT 2"
    End If

    With cmd
        .ActiveConnection = cn
        .CommandText = sqlquery
    End With
    
    rs.Open cmd, , adOpenStatic, adLockOptimistic
    
    DoCmd.OpenForm "dbo_Accruals", acNormal, , , acFormEdit, acHidden
    Set Forms!dbo_Accruals.Recordset = rs   
    DoCmd.OpenForm "dbo_Accruals", acFormDS, , , acFormEdit, acWindowNormal




Убрала лишнее, чтобы не засорять код

У меня при открытии:
Всегда присутсутствует "Me.RecordSource = "" "
А потом где то в коде "Set Me.Recordset = rst"
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993492
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,

ROIУ меня при открытии:
Всегда присутсутствует "Me.RecordSource = "" "
А потом где то в коде "Set Me.Recordset = rst"

У меня это тоже есть. Просто удалила.
...
Рейтинг: 0 / 0
25 сообщений из 73, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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