Я работаю с клиентом, у которого есть большое устаревшее «приложение» MS Access с десятками таблиц базы данных. В настоящее время только 1 человек может обновлять базу данных одновременно, поскольку она не распространяется; автономно на одной рабочей станции. Учитывая размер и сложность приложения MS Access, мы не можем полностью переписать его - поэтому клиент попросил нас сделать некоторые таблицы обновляемыми через веб-приложение, импортируя и экспортируя данные в начале и в конце фазы обновления.

Нам было поручено разработать следующий рабочий процесс:

  • Экспорт соответствующих данных из необходимых таблиц доступа в промежуточном формате (CSV, XML и т.д.) В начале процесса обновления данных
  • Импорт данных в веб-приложение на базе MySQL
  • В течение фиксированного периода времени разрешите нескольким пользователям одновременно обновлять данные через веб-приложение.
  • В конце процесса обновления данных экспортируйте данные из MySQL в промежуточный формат
  • Импортировать данные обратно в MS Access

Тем не менее, я не могу найти подходящий механизм для включения последнего этапа. Опция импорта без доступа, по-видимому, позволяет обновлять существующие записи, а также добавлять новые - вы можете импортировать данные в новую таблицу, а также добавлять новые записи в существующую таблицу, но не обновлять существующие записи на основе первичного ключа. Как Access помещает его во все свои параметры Import ...

Changes made to the source data will not be reflected in the database

Я что-то пропустил с одним из вариантов импорта? Какие еще могут быть подходы?

1 ответ1

2

Раньше в этом сценарии я разбивал импорт / обновление на несколько этапов.

  1. Добавить данные в пустую "временную" таблицу

  2. Создайте / запустите запрос на обновление, объединяя таблицы назначения и исходные / временные таблицы

  3. Создайте / запустите запрос на добавление, левые и внешние соединяющие таблицы назначения и исходные / временные таблицы (с целевым ключом = ноль)

  4. (необязательно) добавить временную таблицу в таблицу истории

  5. Обрезать временную таблицу

Этапы могут быть легко автоматизированы с помощью макросов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .