powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
73 сообщений из 73, показаны все 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
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993497
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Фурсов,

я не очень понимаю, как мне данные с сервера передавать в форму.
Т.е. я должна создать временную таблицу (точную копию таблицы на сервере), в нее залить данные, данную таблицу указать в RecordSource формы, а при закрытии формы удалить таблицу?

А как быть со всеми изменениями данных? Все прописывать вручную? Чтобы каждое действие отражалось на сервере оперативно.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993500
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовVerochkaS,
Спасибо.
Я в принципе об этом и подумал.
Многие так до сих пор делают (у ROI даже ошибок не возникает).
Я уже высказал свою точку зрения, что так работать не надо. Используйте только RecordSource.

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

С уважением, Павел.
Я уже писал у меня при открыти фрмы всегда стоит "Me.RecordSource = "" "
Всегда, Всегда, Всегда...............
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993513
VerochkaSПавел Фурсов,

я не очень понимаю, как мне данные с сервера передавать в форму.
Т.е. я должна создать временную таблицу (точную копию таблицы на сервере), в нее залить данные, данную таблицу указать в RecordSource формы, а при закрытии формы удалить таблицу?

А как быть со всеми изменениями данных? Все прописывать вручную? Чтобы каждое действие отражалось на сервере оперативно.
Отлично, продолжаем.
Я писал про связанные таблицы. Они решают нашу задачу.
SQL-таблица/вьюшка = TableDef в Access'е
Только связанные таблицы можно редактировать. Запросы к серверу всегда только для чтения.
Ваш запрос в Access должен обращаться к связанным таблицам!

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

так, иду по шагам: создавать таблички TableDefs научилась, добавлять в них поля тоже.
Как теперь данные из SQL загрузить в эту таблицу? И еще вопрос - эти таблицы в списке объектов не должны появляться? Они как рекордсеты, получаются?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993534
2163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-ЛЕсли работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс.
Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе просто хреновейше сделана.
Поэтому и "много забот"
Павел Фурсов в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей).
можно на временном xml-файле, с форматом adPersistXML открывать рекордсет (а сам файл формировать как обычный текстовый)
Тогда с встроенной сортировкой проблемы нет. И фильтр формы - те крашит Акцесс, правда и не работает тоже :)
ROI2571... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов.
Да ну а я то их 15 лет пользуююю.
Вот я дебил.с ДАО-рекордсетом? отвязанным/свободным??
похвастаешься ? :)
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993536
2163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправка:
Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе , через форму , просто хреновейше сделана.
Поэтому и "много забот"
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993537
VerochkaSтак, иду по шагам: создавать таблички TableDefs научилась, добавлять в них поля тоже.
Как теперь данные из SQL загрузить в эту таблицу? И еще вопрос - эти таблицы в списке объектов не должны появляться? Они как рекордсеты, получаются?
А вот тут стоп.
Нужно создавать "Связь с таблицами..." (у меня Access 2003 до сих пор).
Там Access все сам сделает с полями и даже индекс уникальный поможет создать.

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

Вы имеете в виду связанные через ODBC таблицы?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993545
VerochkaSВы имеете в виду связанные через ODBC таблицы?
Так точно.
Других связанных я не знаю.

Проще поробовать это сделать через интерфейс, а потом научиться программно.

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

Так я про них знаю и даже использую немного. Но как мне их использовать для своих потребностей.
Объясню немного саму суть системы:

на сервере SQL хранятся все таблицы (они связаны, проиндексированы, нужные триггеры написаны...). Таблицы большие, поэтому все перенести на Access невозможно.

У польозователей есть своя копия базы Access, которая содержить только формы и 0 данных. Пользователь выбирает в форме параметры, по которым он хочет отобрать данные с сервера, и запрос отправляется в SQL. Дальше все понятно, как у меня реализовано - результат SQL запроса присваивается рекордсету и на основании этого рекордсета открывается форма. Все изменения, вносимые в форму отправляются на сервер самостоятельно ( с помощью ADO и реализованного в Access механизма).

Как мне перейти на связанные таблицы не очень понятно. Я так думаю, что Вы предлагаете связывать таблицу с view на sql. Но у всех же разные запросы будут. Для них разные view каждый раз создавать? Или View основывать на параметрах?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993582
Сделано правильно. Данные в SQL, а приложение - в Access.
VerochkaSТак я про них знаю и даже использую немного. Но как мне их использовать для своих потребностей.
Прикрепил картинку.

Связанная таблица не хранит данные в Access. Она только содержит инормацию об объекте в SQL Server'е.
Данные можно редактировать. Они будут сразу появляться на сервере и будут видны другим пользователям.

VerochkaSнужные триггеры написаны...
Часто проблемы возникают именно из-за триггеров в SQL.
Скорее из-за невозможности правильного определения в Access записи на сервере после завершения редактирования.
VerochkaSКак мне перейти на связанные таблицы не очень понятно. Я так думаю, что Вы предлагаете связывать таблицу с view на sql. Но у всех же разные запросы будут. Для них разные view каждый раз создавать? Или View основывать на параметрах?
Создайте пустую базу и просто создайте несколько связанных таблиц, потом создайте и сохраните запрос. Выполните его. Будет ли он редактируемым?

С уважением, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993605
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторОднако, если перейти на эту строку с ошибками, что все данные появляются, а ошибка пропадает.
А если попробовать resync adAffectCurrent на афтерапдате формы?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993629
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2163П-ЛЕсли работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс.
Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе просто хреновейше сделана.
Поэтому и "много забот"
Павел Фурсов в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей).
можно на временном xml-файле, с форматом adPersistXML открывать рекордсет (а сам файл формировать как обычный текстовый)
Тогда с встроенной сортировкой проблемы нет. И фильтр формы - те крашит Акцесс, правда и не работает тоже :)
ROIпропущено...

Да ну а я то их 15 лет пользуююю.
Вот я дебил.с ДАО-рекордсетом? отвязанным/свободным??
похвастаешься ? :)

Ты пост внимательно прочитай не RS а форма отвязанная/свободная.!!!!
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993641
0432
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIТы пост внимательно прочитай не RS а форма отвязанная/свободная.!!!!
"свободная форма" - форма БЕЗ Рекордсета. Явно не случай ТС
VerochkaSВ Access 2013 есть форма, основанная на рекордсете.
А что такое "отвязанная форма"?

И комментировал ты, как раз, мой пост про рекордсеты. Напоминаю:
ROI2571... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов.
Да ну а я то их 15 лет пользуююю.
Вот я дебил.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993643
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Фурсов,

когда я начинала делать базу, так и делала, как Вы предлагаете.

Но скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO.
Я что-то сразу и не поняла, что Вы их имеете в виду
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993657
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?????,
тогда при копировании строки в новую строка сначала пропадает (пока новая строка активна), а как только перехожу с новой строки, то строка появляется и ошибка пропадает. Т.е. теперь не обязательно вставать на пропавшую строку.

Спасибо. Это уже хорошо. Как прописать это функцию, чтобы она срабатывала сразу после вставки, а не при сохранении сроки?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993659
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е., когда мы вставляем скопированные данные в новую строку (нажали CTRL+V), данные вставляются и строка еще активна (она редактируется). А как можно сразу программно сохранить то, что вставили? Функция "Вставить" в меню не отключена.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993662
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на афтеринсерт?????
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993678
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0432ROIТы пост внимательно прочитай не RS а форма отвязанная/свободная.!!!!
"свободная форма" - форма БЕЗ Рекордсета. Явно не случай ТС
VerochkaSВ Access 2013 есть форма, основанная на рекордсете.
А что такое "отвязанная форма"?

И комментировал ты, как раз, мой пост про рекордсеты. Напоминаю:
ROIпропущено...

Да ну а я то их 15 лет пользуююю.
Вот я дебил.
>>А что такое "отвязанная форма"?
тоже самое что и свободная (сори если ввел вас в заблуждения этим термином)
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993679
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?????,

уже тоже попробовала - также срабатывает только при переходе со строки
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993683
VerochkaSкогда я начинала делать базу, так и делала, как Вы предлагаете.
И кто же Вам сказал делать по другому?
VerochkaSНо скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO.
Я так не думаю.
Access умеет (!) делать прямые запросы к серверу, используя информацию из связанных таблиц.
Никаких проблем с производительностью быть не должно.

Конечно, нужно видеть эти запросы, чтобы сравнивать их работу.
Я использую обычно SQL Server Profiler.

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

я сравнивала 2 базы - на ODBC и на ADO. ADO значительно быстрее
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993693
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовVerochkaSкогда я начинала делать базу, так и делала, как Вы предлагаете.
И кто же Вам сказал делать по другому?
VerochkaSНо скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO.
Я так не думаю.
Access умеет (!) делать прямые запросы к серверу, используя информацию из связанных таблиц.
Никаких проблем с производительностью быть не должно.

Конечно, нужно видеть эти запросы, чтобы сравнивать их работу.
Я использую обычно SQL Server Profiler.

С уважением, Павел

Я конечно дико извиняюсь!!!!
Но скорость работы через связаные таблицы сиреч(ODBC) и ADO.
Тема обсосана и разница на больших объемах данных - огромная.!!!!
ТС прав!!!
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993696
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Фурсов,

ADO рулит
ODBC нервно курит
И не надо разводить холивар.
Поиск рулит!!!!
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993703
VerochkaSADO значительно быстрее
Тогда будет интересно на каких операциях быстрее.
Принципиальной разницы быть не должно, т.к. они работают с SQL Server'ом через курсоры и также выполняют запросы и получают данные.
Значит что-то не так с кодом или интерфейсом было. Имею ввиду, что не оптимально.

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

Да, такое поле есть. Убрала его - та же ситуация
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993823
ROIADO рулит
ODBC нервно курит
И не надо разводить холивар.
Поиск рулит!!!!
Спасибо, нашел интересную статью.
Вот она:
Choosing between DAO and ADO

Оттуда цитата:
Forms bound to ADO recordsets cannot use the following form-level properties: Filter, OrderBy, RecordSource, RecordCount, Bookmark
Когда с столкнулся с реальными проблемами (приложение закрывалось), лучшим решением было не использовать ADO с формами.
Исходя из этого, строил всю свою дальнейшую работу.

И еще цитата:
Though ADO was meant to replace DAO, Microsoft has since reversed the position and made DAO the blessed data access library for Access
Microsoft поменяла свою отношение к DAO!

В Access мы не работаем с ODBC напрямую (ODBC Direct запретили еще в Access 2007), а только через DAO или интерфейс Access.

С уважением, Павел
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993832
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Фурсов,
Павел ФурсовОттуда цитата:
Forms bound to ADO recordsets cannot use the following form-level properties: Filter, OrderBy, RecordSource, RecordCount, Bookmark

Вообще-то сортировки и фильтры работают в таких формах
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993857
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ФурсовROIADO рулит
ODBC нервно курит
И не надо разводить холивар.
Поиск рулит!!!!
Спасибо, нашел интересную статью.
Вот она:
Choosing between DAO and ADO

Оттуда цитата:
Forms bound to ADO recordsets cannot use the following form-level properties: Filter, OrderBy, RecordSource, RecordCount, Bookmark
Когда с столкнулся с реальными проблемами (приложение закрывалось), лучшим решением было не использовать ADO с формами.
Исходя из этого, строил всю свою дальнейшую работу.

И еще цитата:
Though ADO was meant to replace DAO, Microsoft has since reversed the position and made DAO the blessed data access library for Access
Microsoft поменяла свою отношение к DAO!

В Access мы не работаем с ODBC напрямую (ODBC Direct запретили еще в Access 2007), а только через DAO или интерфейс Access.

С уважением, Павел

Вы на дату статьи смотрели?
Эта статья не актуальна
>> Microsoft поменяла свою отношение к DAO!
Нет не поменяла и везде советует использовать ADO.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993860
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaSПавел Фурсов,
Павел ФурсовОттуда цитата:
пропущено...


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

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

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

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

Заранее всем спасибо!
Уважаемы ТС хочю чтоб вы подтвердили мы это обсуждаем,
а то мне кажется что мы все сьехали с темы.
Если в котнтроле появляется #Error то это означает контрол почемута потерял источник данных.
А вот почему это вопрос.
Может конект временно прикрылся или есче чего.
И ответте всё таки вы чем работаете ADO DAO ODBC.
С уважением...
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993890
VerochkaSВообще-то сортировки и фильтры работают в таких формах
Давно это было.
Вначале в интерфейсе:
Фильтр по выделенному фрагменту.
Потом нужно:
Выделить несколько строк (не все) и к ним применить действие. Другими словами выполнить групповую операцию.
Для этого в коде:
Определить выделение, пройтись по выделенным строкам, записать в таблицу или массив ключевые поля. Дальше пока не надо.
Отменить фильтр.
Будет ли ошибка.

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

На ADO. в теме написано и в нескольких сообщениях я это уже написала
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38993975
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaS
Код: vbnet
1.
2.
3.
4.
5.
If Me![MyOrMappingRecords] = 1 Then
        sqlquery = "SELECT 1"
    Else
        sqlquery = "SELECT 2"
    End If



хотелось бы увидеть какого тип эти запросы, что они выбирают
зачем потребовалось дублировать запись, на еще в ручную
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38994301
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла такая идея - к рекордсету, на котором основана форма, добавить столбец CheckBox, но он не будет тянуться из базы, а будет специально созданным. В форме этот столбец будет полем с галочками (тип CheckBox). Пользователь будет галочками выбирать, какие строки скопировать, нажимать кнопку и по кнопке макрос уже скопирует нужные строки.

Можно ли так сделать?

Пыталась в запрос добавить левое поле (например, Select 1 as 'checkbox'), тогда поле добавляется нередактируемое.
Если просто добавить и не основываться на рекордсете, то при установки галочки для 1 поля галочка ставится для всех.

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

наверняка добавила бы поле а таблицу

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

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

в таблицу добавить не могу - одни и те же строки могут одновременно отрывать несколько пользователей. Один поставит галочку, другой уберет, и получится ерунда
какова у вас структура базы
--одна общая с данными
--у каждого пользователя --своя с формами и рабочей таблицей для отбора

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

рабочей таблицей для отбора со структурой
--ид
--идКлиент
--идКвартира
--ранг предпочтения по 5-бальной системе
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38994329
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VerochkaSВозникла такая идея - к рекордсету, на котором основана форма, добавить столбец CheckBox, но он не будет тянуться из базы, а будет специально созданным. В форме этот столбец будет полем с галочками (тип CheckBox). Пользователь будет галочками выбирать, какие строки скопировать, нажимать кнопку и по кнопке макрос уже скопирует нужные строки.

Можно ли так сделать?Посмотрите это 3335051 .
Не пугайтесь, там в формате Ac97 - преобразуйте в свой.

Еще как возможный вариант:
- у каждого пользователя своя служебная таблица с двумя полями - ключ из основной и логическое поле (флажок),
- сделать INNER JOIN основной и служебной, выводя флажок.
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38994458
VerochkaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

__MichelleЕще как возможный вариант:
- у каждого пользователя своя служебная таблица с двумя полями - ключ из основной и логическое поле (флажок),
- сделать INNER JOIN основной и служебной, выводя флажок.

Отличная идея!

Первый вариант тоже буду изучать.

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

Первый вариант сработал! Конечно, еще нужно доделать использование этой коллекции, но хотя бы барьер с установкой галочек пройден. Единственное, так как Access ругается на то, что столбец нередактируемый, то появляется звук ошибки. Можно ли его убрать? Хотя это уже не критично.

Спасибо огромное!
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38994575
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем по теме, но пример для коллекции, хотя и без коллекции
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #38994643
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




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

ИМХО:
1 .CursorLocation = adUseClient
попробуйте серверный курсор
2 Рекорд сет тоже желательно открывать с серверным курсором
3 rs.Open cmd, , adOpenStatic,
почему набор данных статический ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #39309963
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня ADODB в 2013 акцессе вообще не распознает. В чем проблема?
...
Рейтинг: 0 / 0
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
    #39309964
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за некропостинг
Забыл поставить референс.
Для тех кто столкнется с такой же проблемой - в окне Microsoft Visual Basic - меню Tools/References
поставить галку на Microsoft AktiveX Data Objects 6.0 (или другую версию) Library
...
Рейтинг: 0 / 0
73 сообщений из 73, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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