У нас есть установка, в которой наши пользователи входят в базу данных доступа с помощью MS Access 2003 через соединение RDP. Бэкэнд-база данных (.mdb) доступны для наших пользователей с их базой данных внешнего интерфейса (.mde) и защищен базой данных безопасности (* .mdw).
Сначала пользователь входит на свои машины с помощью перемещаемого профиля. Затем они щелкают файл подключения rdp на рабочем столе и входят на удаленный сервер через RDP, где они используют MS Access в качестве оболочки; у них нет доступа ни к одной из функций explorer.exe, например к меню «Пуск».
База данных, в которую они входят, больше похожа на приложение и предоставляет функциональные возможности для ввода данных, запроса данных и запуска отчетов через меню на основе форм. Все работало очень хорошо, пока мы не разделили базу данных, так как ее размер приближался к 2 ГБ.
Мы переместили данные о заработной плате в отдельный раздел, базу данных с тем же именем в другую папку, обе они находятся на сервере. В этот новый раздел базы данных были перемещены только две таблицы, и они были повторно связаны как внешние таблицы в новом разделе.
Теперь, хотя после разделения все работает нормально с точки зрения данных, возникает новая проблема, когда наши пользователи входят в систему через RDP и пытаются запускать отчеты: часто отчет не отображается, и вместо этого пользователь видит ошибку о событии щелчка для форма. Сначала я даже не знал, что это связано с принтером, поскольку, насколько я знал, мы не меняли ничего, что касалось принтеров.
Сбитый с толку из-за ошибки, я поговорил с парнем, который ранее работал здесь и отвечал за разделение базы данных, и он сказал мне, чтобы пользователи установили свои принтеры по умолчанию (на их локальных машинах, а не на сервере) на "принтер" Microsoft XPS Document Writer
который вообще не является физическим принтером. Это позволило пользователю отображать свои отчеты, но если они хотят распечатать отчеты, они должны перейти к File
меню и выберите Print
, щелкнув значок печати на панели инструментов, вы перейдете к Save As...
диалог, как и следовало ожидать при использовании Microsoft XPS Document Writer
в качестве принтера по умолчанию.
Легко определить, возникла ли у пользователя проблема, потому что при быстром наведении курсора мыши на значок принтера появится всплывающая подсказка (none)
когда они не могут получить доступ к своим отчетам, и всплывающая подсказка Microsoft XPS Document Writer
когда они смогут просматривать отчеты. Если для принтера пользователя установлено любое значение, кроме Microsoft XPS Document Writer
по умолчанию на их локальном компьютере, затем (none)
всегда отображается, когда они отправляют rdp в базу данных. Настройки RDP настроены для передачи локального принтера на сервер.
Сказать пользователям сделать это для печати было скорее поводом для исправления ситуации, пока мы не найдем лучшее решение и объяснение того, почему разделение базы данных не позволит пользователям печатать или даже просматривать отчеты о доступе к базе данных. Вот почему я задаю этот вопрос.
Также следует отметить, что все принтеры в сети теперь отображаются на сервере, поэтому, когда пользователи нажимают File->Print
чтобы распечатать свои отчеты на физическом принтере, им нужно просмотреть огромный список принтеров, чтобы найти свой в раскрывающемся списке. Так что наш небольшой лейкопластырь не идеален. Ранее здесь отображались только принтеры на локальном компьютере пользователя, а не все принтеры в сети.
Мой коллега, кажется, думает, что это как-то связано с разрешениями, я лично думаю, что это связано с перемещаемыми профилями и групповыми политиками, о которых я читал.
Я действительно не знаю, как это исправить или как это связано с разделением базы данных.
Access требует принтера по умолчанию, прежде чем он сможет открывать отчеты (дизайн / печать / предварительный просмотр). Похоже, ваша проблема больше в конфигурации принтеров и серверов, чем в разделении базы данных. Я также сталкивался с редкими случаями, когда определенные драйверы принтера вызывали сбой отчетов Access.
Судя по вашему описанию проблемы, у них не выбран принтер по умолчанию, который вызывает сбой.
Ваши пользователи вообще печатают? Если они это сделают, тогда драйверы будут установлены на сервере, и их принтер будет сопоставлен, так почему бы не позволить им по умолчанию использовать их обычный принтер? Ничего не зная о вашей настройке, это слепая догадка.
Похоже, что кто-то также внес изменения в опубликованные настройки приложения TS-сервера, управляющие принтерами.
Единственный способ, которым я могу подумать, что разделение БД могло бы сделать это, было бы, если бы бывший MDB имел некоторую логику для ограничения / установки принтеров, а после разделения вы использовали бы новый интерфейсный MDB, у которого нет та же логика. Однако, судя по вашему описанию, пользователи по-прежнему используют тот же MDB для своего внешнего интерфейса, только с несколькими таблицами, которые теперь являются ссылками на новый внутренний файл MDB.