|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, я не очень понимаю, как мне данные с сервера передавать в форму. Т.е. я должна создать временную таблицу (точную копию таблицы на сервере), в нее залить данные, данную таблицу указать в RecordSource формы, а при закрытии формы удалить таблицу? А как быть со всеми изменениями данных? Все прописывать вручную? Чтобы каждое действие отражалось на сервере оперативно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:08 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел ФурсовVerochkaS, Спасибо. Я в принципе об этом и подумал. Многие так до сих пор делают (у ROI даже ошибок не возникает). Я уже высказал свою точку зрения, что так работать не надо. Используйте только RecordSource. В коде формы можно создать нужные объекты в CurrentDb или другой MDB/ACCDB, сформировать RecordSource и использовать его. Никто нас особо не ограничивает в названиях таблиц или запросов. Они могут быть созданы как временные объекты, нужные для работы самой формы. Естественно, при закрытии форма должна их удалить. Если у вас форма существует в единственном экземпляре, то объекты можно делать постоянными. Еще зависит от того, используется ли соместный доступ к CurrentDb или у каждого пользователя есть своя копия. С уважением, Павел. Я уже писал у меня при открыти фрмы всегда стоит "Me.RecordSource = "" " Всегда, Всегда, Всегда............... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:10 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
VerochkaSПавел Фурсов, я не очень понимаю, как мне данные с сервера передавать в форму. Т.е. я должна создать временную таблицу (точную копию таблицы на сервере), в нее залить данные, данную таблицу указать в RecordSource формы, а при закрытии формы удалить таблицу? А как быть со всеми изменениями данных? Все прописывать вручную? Чтобы каждое действие отражалось на сервере оперативно. Отлично, продолжаем. Я писал про связанные таблицы. Они решают нашу задачу. SQL-таблица/вьюшка = TableDef в Access'е Только связанные таблицы можно редактировать. Запросы к серверу всегда только для чтения. Ваш запрос в Access должен обращаться к связанным таблицам! С уважением, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:14 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, так, иду по шагам: создавать таблички TableDefs научилась, добавлять в них поля тоже. Как теперь данные из SQL загрузить в эту таблицу? И еще вопрос - эти таблицы в списке объектов не должны появляться? Они как рекордсеты, получаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:34 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
П-ЛЕсли работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс. Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе просто хреновейше сделана. Поэтому и "много забот" Павел Фурсов в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей). можно на временном xml-файле, с форматом adPersistXML открывать рекордсет (а сам файл формировать как обычный текстовый) Тогда с встроенной сортировкой проблемы нет. И фильтр формы - те крашит Акцесс, правда и не работает тоже :) ROI2571... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов. Да ну а я то их 15 лет пользуююю. Вот я дебил.с ДАО-рекордсетом? отвязанным/свободным?? похвастаешься ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:35 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
поправка: Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе , через форму , просто хреновейше сделана. Поэтому и "много забот" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:37 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
VerochkaSтак, иду по шагам: создавать таблички TableDefs научилась, добавлять в них поля тоже. Как теперь данные из SQL загрузить в эту таблицу? И еще вопрос - эти таблицы в списке объектов не должны появляться? Они как рекордсеты, получаются? А вот тут стоп. Нужно создавать "Связь с таблицами..." (у меня Access 2003 до сих пор). Там Access все сам сделает с полями и даже индекс уникальный поможет создать. С уважением, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:37 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, Вы имеете в виду связанные через ODBC таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:40 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
VerochkaSВы имеете в виду связанные через ODBC таблицы? Так точно. Других связанных я не знаю. Проще поробовать это сделать через интерфейс, а потом научиться программно. С уваженим, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:41 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, Так я про них знаю и даже использую немного. Но как мне их использовать для своих потребностей. Объясню немного саму суть системы: на сервере SQL хранятся все таблицы (они связаны, проиндексированы, нужные триггеры написаны...). Таблицы большие, поэтому все перенести на Access невозможно. У польозователей есть своя копия базы Access, которая содержить только формы и 0 данных. Пользователь выбирает в форме параметры, по которым он хочет отобрать данные с сервера, и запрос отправляется в SQL. Дальше все понятно, как у меня реализовано - результат SQL запроса присваивается рекордсету и на основании этого рекордсета открывается форма. Все изменения, вносимые в форму отправляются на сервер самостоятельно ( с помощью ADO и реализованного в Access механизма). Как мне перейти на связанные таблицы не очень понятно. Я так думаю, что Вы предлагаете связывать таблицу с view на sql. Но у всех же разные запросы будут. Для них разные view каждый раз создавать? Или View основывать на параметрах? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:51 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Сделано правильно. Данные в SQL, а приложение - в Access. VerochkaSТак я про них знаю и даже использую немного. Но как мне их использовать для своих потребностей. Прикрепил картинку. Связанная таблица не хранит данные в Access. Она только содержит инормацию об объекте в SQL Server'е. Данные можно редактировать. Они будут сразу появляться на сервере и будут видны другим пользователям. VerochkaSнужные триггеры написаны... Часто проблемы возникают именно из-за триггеров в SQL. Скорее из-за невозможности правильного определения в Access записи на сервере после завершения редактирования. VerochkaSКак мне перейти на связанные таблицы не очень понятно. Я так думаю, что Вы предлагаете связывать таблицу с view на sql. Но у всех же разные запросы будут. Для них разные view каждый раз создавать? Или View основывать на параметрах? Создайте пустую базу и просто создайте несколько связанных таблиц, потом создайте и сохраните запрос. Выполните его. Будет ли он редактируемым? С уважением, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 13:07 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
авторОднако, если перейти на эту строку с ошибками, что все данные появляются, а ошибка пропадает. А если попробовать resync adAffectCurrent на афтерапдате формы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 13:27 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
2163П-ЛЕсли работать через рекордсеты, то надо брать на себя очень много забот. Аксес этого не любит. Его кредо - рекордсоурс. Если "на чистоту" - работа с АДО-рекордсетом (в особенности свободным) в Акцессе просто хреновейше сделана. Поэтому и "много забот" Павел Фурсов в свое время (2003-й год) столкнулся с проблемаи с фильтрами, сортировкой и определением выделенных записей (а не только текущей). можно на временном xml-файле, с форматом adPersistXML открывать рекордсет (а сам файл формировать как обычный текстовый) Тогда с встроенной сортировкой проблемы нет. И фильтр формы - те крашит Акцесс, правда и не работает тоже :) ROIпропущено... Да ну а я то их 15 лет пользуююю. Вот я дебил.с ДАО-рекордсетом? отвязанным/свободным?? похвастаешься ? :) Ты пост внимательно прочитай не RS а форма отвязанная/свободная.!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 13:44 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
ROIТы пост внимательно прочитай не RS а форма отвязанная/свободная.!!!! "свободная форма" - форма БЕЗ Рекордсета. Явно не случай ТС VerochkaSВ Access 2013 есть форма, основанная на рекордсете. А что такое "отвязанная форма"? И комментировал ты, как раз, мой пост про рекордсеты. Напоминаю: ROI2571... и нету в ДАО ни отвязанных, ни "синтетических" рекордсетов. Да ну а я то их 15 лет пользуююю. Вот я дебил. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 13:52 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, когда я начинала делать базу, так и делала, как Вы предлагаете. Но скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO. Я что-то сразу и не поняла, что Вы их имеете в виду ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 13:54 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
?????, тогда при копировании строки в новую строка сначала пропадает (пока новая строка активна), а как только перехожу с новой строки, то строка появляется и ошибка пропадает. Т.е. теперь не обязательно вставать на пропавшую строку. Спасибо. Это уже хорошо. Как прописать это функцию, чтобы она срабатывала сразу после вставки, а не при сохранении сроки? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:03 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Т.е., когда мы вставляем скопированные данные в новую строку (нажали CTRL+V), данные вставляются и строка еще активна (она редактируется). А как можно сразу программно сохранить то, что вставили? Функция "Вставить" в меню не отключена. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:06 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
на афтеринсерт????? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:07 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
0432ROIТы пост внимательно прочитай не RS а форма отвязанная/свободная.!!!! "свободная форма" - форма БЕЗ Рекордсета. Явно не случай ТС VerochkaSВ Access 2013 есть форма, основанная на рекордсете. А что такое "отвязанная форма"? И комментировал ты, как раз, мой пост про рекордсеты. Напоминаю: ROIпропущено... Да ну а я то их 15 лет пользуююю. Вот я дебил. >>А что такое "отвязанная форма"? тоже самое что и свободная (сори если ввел вас в заблуждения этим термином) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:15 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
?????, уже тоже попробовала - также срабатывает только при переходе со строки ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:15 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
VerochkaSкогда я начинала делать базу, так и делала, как Вы предлагаете. И кто же Вам сказал делать по другому? VerochkaSНо скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO. Я так не думаю. Access умеет (!) делать прямые запросы к серверу, используя информацию из связанных таблиц. Никаких проблем с производительностью быть не должно. Конечно, нужно видеть эти запросы, чтобы сравнивать их работу. Я использую обычно SQL Server Profiler. С уважением, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:16 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, я сравнивала 2 базы - на ODBC и на ADO. ADO значительно быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:20 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел ФурсовVerochkaSкогда я начинала делать базу, так и делала, как Вы предлагаете. И кто же Вам сказал делать по другому? VerochkaSНо скорость работы с ODBC и с ADO абсолютно разная, тем более с большими объемами данных. Поэтому пришлось перейти на ADO. Я так не думаю. Access умеет (!) делать прямые запросы к серверу, используя информацию из связанных таблиц. Никаких проблем с производительностью быть не должно. Конечно, нужно видеть эти запросы, чтобы сравнивать их работу. Я использую обычно SQL Server Profiler. С уважением, Павел Я конечно дико извиняюсь!!!! Но скорость работы через связаные таблицы сиреч(ODBC) и ADO. Тема обсосана и разница на больших объемах данных - огромная.!!!! ТС прав!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:21 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
Павел Фурсов, ADO рулит ODBC нервно курит И не надо разводить холивар. Поиск рулит!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:23 |
|
Ошибка #Error в форме, основанной на ADO рекордсете, в Access 2013
|
|||
---|---|---|---|
#18+
VerochkaSADO значительно быстрее Тогда будет интересно на каких операциях быстрее. Принципиальной разницы быть не должно, т.к. они работают с SQL Server'ом через курсоры и также выполняют запросы и получают данные. Значит что-то не так с кодом или интерфейсом было. Имею ввиду, что не оптимально. С уважением, Павел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:25 |
|
|
start [/forum/topic.php?fid=45&msg=38993643&tid=1613150]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 463ms |
0 / 0 |