Изменение параметров соединения при использовании сквозного запроса
У меня есть приложение Access 2003, которое я хотел бы создавать отчеты для использования хранимых процедур через сквозные запросы. Все отлично работает с одним исключением. Когда я указываю хранимую процедуру для использования в сквозном запросе, мне нужно выбрать DSN, чтобы предоставить информацию о соединении с базой данных. Мне нужно иметь возможность изменить информацию о соединении для хранимой процедуры, используемой в сквозном запросе, с помощью кода. Это позволяет мне переходить к средам разработки, производства и тестирования из приложения.
В настоящее время весь мой доступ к данным (дополнения, обновления, изменения) использует ADO, и я строю строки подключения с помощью кода VBA. Я не уверен, как изменить информацию о соединении сквозных запросов с помощью кода. Какие-нибудь мысли? Спасибо.
1 ответ
Посмотрите на свойство Connect вашего сквозного запроса. Вы можете изменить Connect с VBA. Эта процедура переключает между соединениями базы данных prod и dev.
Public Sub SwitchPassThroughConnection(ByVal pQuery As String, ByVal pTarget As String)
Dim db As DAO.Database
Dim qdef As DAO.QueryDef
Dim strConnect As String
Dim blnError As Boolean
Set db = CurrentDb()
Select Case pTarget
Case "dev"
strConnect = "ODBC;DRIVER={PostgreSQL Unicode};DATABASE=dev;SERVER=cmpq;" & _
"PORT=5432;UID=hans;PWD=changeme;CA=d;A6=;A7=100;A8=4096;" & _
"B0=255;B1=8190;BI=0;C2=dd_;CX=1b502bb;A1=7.4"
Case "prod"
strConnect = "ODBC;DRIVER={PostgreSQL Unicode};DATABASE=prod;SERVER=cmpq;" & _
"PORT=5432;UID=hans;PWD=changeme;CA=d;A6=;A7=100;A8=4096;" & _
"B0=255;B1=8190;BI=0;C2=dd_;CX=1b502bb;A1=7.4"
Case Else
blnError = True
MsgBox "Unrecognized target."
End Select
If Not blnError Then
Set qdef = db.QueryDefs(pQuery)
qdef.Connect = strConnect
qdef.Close
End If
Set qdef = Nothing
Set db = Nothing
End Sub