使用传递查询时更改连接参数

时间:2010-09-27 17:25:30

标签: ms-access-2003 pass-through

我有一个Access 2003应用程序,我想通过传递查询创建使用存储过程的报告。除了一个例外,一切正常。当我指定用于传递查询的存储过程时,我必须选择DSN来提供数据库连接信息。我需要能够通过代码更改传递查询中使用的存储过程的连接信息。这样我就可以从应用程序中切换到开发,生产和测试环境。

目前我的所有数据访问(添加,更新,编辑)都使用ADO,我通过VBA代码构建连接字符串。我不确定如何通过代码更改传递查询的连接信息。有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:3)

查看传递查询的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