Использование разделенной базы данных Access

Мне нужно увеличить размер разделенной базы данных Access, то есть той, которая в настоящее время разделена между файлами tow mdb, внешним и внутренним интерфейсом. Я вижу много веб-страниц, которые по сути говорят: "Запустите мастер увеличения размера". Мой первый, очень простой вопрос:

Должен ли я запускать этот мастер в моем внешнем mdb или моем внутреннем mdb?

Я предполагаю, что не хочу связывать основной сервер mdb -> backend mdb -> sql. Должен ли я запустить мастер на бэкэнде mdb, а затем во внешнем mdb изменить связанные таблицы так, чтобы они указывали на сервер sql, а не на бэкэнд mdb? Если так, то как это сделать? Когда я щелкаю правой кнопкой мыши и захожу в Менеджер связанных таблиц для таблицы во внешнем интерфейсе (связан с бэкендом md), кажется, что это только позволяет мне выбрать новый файл mdb.

5 ответов

Я бы согласился с вашей первой догадкой: вы захотите запустить мастер на бэк-энде mdb.

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

  1. Откройте ярлык "Источники данных" (ODBC): в XP Pro это находится на панели управления в разделе "Администрирование". (Если вы этого не видите, у вас, вероятно, нет разрешения на создание источника данных, поэтому вам придется работать с сетевиками, чтобы сделать это.) Это откроет ODBC Administrator.
  2. На вкладке File DSN нажмите Add.... Вы увидите список доступных драйверов. Выберите SQL Server и нажмите Далее. (Если внешний интерфейс используется только на вашем компьютере, вы можете создать системный DSN.)
  3. Найдите общее местоположение и назовите свой источник данных.
  4. Нажмите Далее и Готово. Это настроит первую часть источника данных и откроет мастер источника данных SQL Server.
  5. Назовите источник данных и выберите сервер, на котором вы разместили увеличенную внутреннюю базу данных.
  6. Измените остальные параметры по мере необходимости (вам может не потребоваться много изменений, но для объема этих изменений может потребоваться второй вопрос) и нажмите "Готово".

После того, как вы настроили источник данных, тогда Get External Data даст вам возможность выбрать его в качестве источника. (В 2007 году вы можете получить их с ленты внешних данных. Источники данных ODBC доступны в разделе Подробнее.)

Чтобы немного расширить, основываясь на последующих вопросах Мэтта:

Как вы это делаете, это выбор дизайна. Я рекомендую увеличить размер внутренней базы данных mdb, потому что это позволит вам сохранить любые формы и подобные им в Access; Я думаю, что это меньше переход, если ваши данные в SQL Server.

До того, как вы увеличили размер, ваши таблицы были связаны с внутренней базой данных, и менеджер связанных таблиц показал ссылки. После того, как вы настроите источник данных ODBC и свяжете эти таблицы, он покажет эту ссылку. Вы будете просматривать ссылки двумя разными способами, потому что это на самом деле разные типы ссылок (Access и ODBC), даже если ссылки на внешний интерфейс mdb выглядят одинаково.

Лично я обнаружил, что мастер изменения размера очень плохо определяет правильные типы данных. Я сам создавал бы таблицы в SQL-сервере, используя нужные мне типы данных, а затем перемещал данные в существующие таблицы из Access. в противном случае вы застрянете с текстовыми данными, когда сможете использовать varchar или float, когда вам действительно нужно десятичное число.

После того, как данные были перемещены, я бы удалил таблицы Access и связался с таблицами SQL Server.

Ничего не делайте без предварительной резервной копии базы данных.

Как стандартная паранойя, я просто сделал бы резервную копию существующих файлов и запустил Мастер Upsizing на внешнем интерфейсе. Если произойдет что-то нежелательное, просто отмените изменения, перезаписав их резервной копией.

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

Однако любые запросы, которые используют -1 вместо Да, не будут выполнены. Любое удаление полной таблицы в таблицах без первичного ключа завершится неудачно, и вы получите поведение, отличное от того, которое вы сделаете, просто используя сквозной SQL-запрос для усечения таблицы. Усечение удалит все строки, версия Access может оставить пустым.

Также вам нужно будет включить dbSeeChanges везде, где у вас есть открытие набора записей в таблице с типом данных столбца автонумерации. SQL меняет их на типы данных Identity, а затем пытается сжечь, прежде чем пытаться открыть таблицу. Удачи.

Сделайте все это в передней части

Вы можете просто экспортировать таблицы в SQL Server.

Затем вы можете удалить связанные таблицы, которые есть в вашем интерфейсе.

Затем свяжите соединение с SQL Server

Проверять:

  • когда вы открываете таблицы, вы получаете записи
  • все ваши запросы выполняются
  • скомпилируйте свой код

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

Вам нужно будет определить, как конечный пользователь получает доступ к SQL Server. Вы используете единый логин с сохраненными в соединении именем пользователя и паролем?

Вы также можете разделить свою внутреннюю базу данных на несколько баз данных Access и связать их во внешнем интерфейсе.

Другие вопросы по тегам