Как использовать запрос в другой БД в качестве RecordSource формы? - PullRequest
0 голосов
/ 09 июля 2009

Я пытаюсь разделить базу данных на две части - серверную часть, которая обновляется автоматически, и интерфейсную часть, которая позволяет искать и добавлять / редактировать комментарии. Данные в исходной базе данных объединяются из нескольких таблиц в пару запросов, и я хочу использовать эти запросы в качестве источника текущей базы данных.

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

Access 2007 также поддерживает связанные таблицы, но они могут использовать только таблицу в качестве источника, а не объект запроса.

Я думал, что лучший способ сделать это - выполнить SQL-запрос в соответствии с

SELECT * FROM SourceQuery IN "C:\Path\To\ExternalDB.accdb";

Возможно ли то, над чем я работаю, и будет ли это лучшим способом сделать это?

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

Ответы [ 2 ]

1 голос
/ 10 июля 2009

Вы правильно описали обычное разделение Access BE-FE: только таблицы в серверной части. Я знаю, что не все программы БД делают это таким образом, но это Access, и мой подход заключается в соблюдении обычного деления. (И у вас вряд ли есть выбор, поскольку вы не можете «ссылаться на запрос» в Access.)

Рассматривая ваш комментарий («Есть определенная причина ...»), я думаю, это могло бы означать

  1. добавление еще нескольких таблиц в бэкэнд, по существу, сегментов (данные импорта в готовой форме; экспорт 1; экспорт 2), которые позволяют всем пользователям получать согласованные обработанные данные;
  2. создание небольшой административной FE, которая находится рядом с BE и хранит ваши модули, запросы на экспорт и процедуры экспорта; и
  3. наличие некоторых избыточных запросов для пользователя FE. Это неприятно в моей собственной работе. Я просто пытаюсь спроектировать устойчивые стабильные запросы «строительных блоков» в этих ролях и сводить их количество к минимуму.
1 голос
/ 09 июля 2009

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

Есть ли какая-то особая причина, по которой вы не хотите получать запросы в базе данных пользовательского интерфейса?

...