Изменение подключения проекта Access программными средствами

Дополнительно: требуются экспертные навыки программирования, взаимодействия и многопользовательских навыков.

Эта статья относится только к проекту Microsoft Access (ADP).

Сводка

В этой статье показано, как программно изменить подключение к файлу проекта Microsoft Access (ADP).

Дополнительная информация

Самый простой способ изменить подключение ADP — сделать это вручную. Доступ к свойствам подключения текущего проекта можно получить в Access 2002 или Access 2003: в меню Файл выберите пункт Подключение. В появившемся диалоговом окне можно изменить имя сервера и режимы безопасности, а также другие свойства.

Примечание В Access 2007 выполните следующие действия, чтобы открыть вкладку Подключение диалогового окна Свойства канала данных :

  1. Нажмите кнопку Microsoft Office и выберите Пункт Параметры доступа.
  2. На вкладке Настройка щелкните Все команды в списке Выбрать команды из .
  3. Щелкните Подключение в левой области, нажмите кнопку Добавить, а затем нажмите кнопку ОК.
  4. Щелкните Подключение на панели быстрого доступа.

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

В следующих шагах используется функция, демонстрирующая, как изменить существующее подключение ADP с помощью объектной модели Access. Функция возвращает значение True в случае успешного выполнения и False, если она не выполнена.

  1. Запустите Access и откройте пример проекта Access NorthwindCS.adp.

  2. В Access 2002 или Access 2003 щелкните Модули в разделе Объекты в окне базы данных, а затем нажмите кнопку Создать , чтобы открыть новый модуль.

    В Access 2007 щелкните стрелку вниз под макросом в группе Другие на вкладке Создание , а затем щелкните Модуль.

  3. Добавьте следующий код в новый модуль, а затем сохраните модуль:

Function ChangeADPConnection(strServerName As String, strDBName As _
   String, Optional strUN As String, Optional strPW As String) As Boolean
Dim strConnect As String
On Error GoTo EH:
Application.CurrentProject.CloseConnection
'The Provider, Data Source, and Initial Catalog arguments are required.
strConnect = "Provider=SQLOLEDB.1" & _
";Data Source=" & strServerName & _
";Initial Catalog=" & strDBName
If strUN <> "" Then
    strConnect = strConnect & ";user id=" & strUN
    If strPW <> "" Then
        strConnect = strConnect & ";password=" & strPW
    End If
Else  'Try to use integrated security if no username is supplied.
    strConnect = strConnect & ";integrated security=SSPI"
End If
Application.CurrentProject.OpenConnection strConnect
ChangeADPConnection = True
Exit Function
EH:
MsgBox Err.Number & ": " & Err.Description, vbCritical, "Connection Error"
ChangeADPConnection = False
End Function

  1. В Access 2002 или Access 2003 в окне Базы данных щелкните Формы в разделе Объекты , нажмите кнопку Создать, а затем нажмите кнопку ОК , чтобы открыть новую форму в режиме конструктора.

    В Access 2007 щелкните Форма на вкладке Создать .

  2. Добавьте в форму кнопку команды.

  3. Задайте для свойства OnClick кнопки команды следующую процедуру события:

Dim bCheckConnection As Boolean
   'You must specify the correct parameters for your following server.
   'username and password parameters are optional.
bCheckConnection=ChangeADPConnection("ServerName","DBName","UserName","PW")
MsgBox bCheckConnection
  1. Закройте среду Visual Basic, чтобы вернуться к форме.

  2. Сохраните форму, а затем переключите ее в представление формы.

  3. Нажмите кнопку команды, чтобы запустить базовый код.

    Если на шаге 6 вы укажали правильные параметры подключения, вы получите сообщение True.

    -ИЛИ-

    Если вы не указали правильные параметры, появится сообщение об ошибке. При нажатии кнопки ОК для сообщения об ошибке появится окно сообщения, в котором отображается значение False.