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


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