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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С уважением, Павел.
...
Рейтинг: 0 / 0
26.06.2015, 12:01
    #38993486
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
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
26.06.2015, 12:06
    #38993492
VerochkaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
ROI,

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

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


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