Форма MS Access не обновляется при использовании ссылки ODBC на MySql - PullRequest
0 голосов
/ 23 января 2012

У меня есть внешняя база данных Access 2007, подключающаяся к таблицам MySql с использованием коннектора MySQL ODBC.

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

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

Раньше, когда я использовал только таблицы доступа в сети, записи менялись во всех формах доступа, если данные изменялись, и формы не прокручивались до самого верха ...

Можно ли сделать так, чтобы форма доступа автоматически обновляла свою строку, если данные изменились на MySql?

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

Ответы [ 2 ]

2 голосов
/ 23 января 2012

Проверьте интервал обновления ODBC в приложении Access. Значение по умолчанию составляет 1500 секунд. Возможно, более низкое значение позволит вашей форме отображать обновленное содержимое без вмешательства кода.

Кнопка «Office» -> «Параметры доступа» -> «Дополнительно», а затем найдите интервал обновления ODBC ближе к концу этого раздела параметров.

Новые версии Office Файл -> Параметры -> Настройки клиента -> Прокрутите вниз до Дополнительно -> Изменить интервал обновления ODBC (сек)

Кроме того, поскольку вы создали код для обнаружения изменений данных на сервере, а затем обновили формы в ответ, вы можете установить закладку для формы, обновить и затем вернуться в строку формы с закладками.

Recordset.Bookmark Property (DAO)

Обновление : изменение типа набора записей формы на Dynaset стало ключом к решению этого вопроса.

1 голос
/ 23 января 2012

Ваш первый вопрос "Можно ли сделать так, чтобы форма доступа автоматически обновляла свою строку, если данные изменились на MySql?" явно отвечает: Нет.

Когда Access заполнил вашу форму, представление данных в вашей форме становится полностью независимым от записи с тем же первичным ключом в базе данных - MySQL не знает, что вас интересуют какие-либо изменения, поэтому он не сообщит Доступ (на самом деле: нет механизма для этого)

Относительно вопроса прокрутки: в Access 2000 это было возможно, активировав запись, которая прокрутила бы ее в поле зрения. Я подозреваю, что это может быть похоже с Access 2007

...