VBA:将DSN所需的代码替换为ADO

时间:2016-06-16 19:15:15

标签: vba vb6 access-vba

我正在更新访问数据库上的连接字符串。表单代码上有几行:

    Dim MyDB As Database
    Dim QD As QueryDef

    Set MyDB = CurrentDb
    Set QD = New QueryDef

    SQLString = "SELECT list1, list2, list3 FROM Lists WHERE..."

    QD.SQL = SQLString

    QD.Connect = "ODBC;DSN=SQL_Cat;DATABASE=MyCatalog;Trusted_Connection=Yes"

    QD.ODBCTimeout = 0
    MyDB.QueryDefs.Append QD

    Set QD = Nothing
    Set MyDB = Nothing

我需要更改此代码才能使用ADO连接。虽然有些需要改变的部分对我有意义,但还有其他部分,如QD.SQL,QD.Connect和QD。 MyDB.QueryDefs.Append QD必须正确更改。

到目前为止我还没有完成,也没有测试过:

    Dim ADOCon As ADODB.Connection
    Dim ADORS As ADODB.Recordset
    Set ADOCon = New ADODB.Connection
    ADOCon.ConnectionString = GetConnectionString("MyCatalog")
    ADOCon.CommandTimeout = 0
    ADOCon.ConnectionTimeout = 0
    ADOCon.Open

    Set ADORS = New ADODB.Recordset
    ADORS.ActiveConnection = ADOCon
    ADORS.Open

我想在进行此转换时寻求一些帮助。我想我很接近,但我需要一些解释。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该能够根据自己的需要进行调整:

Dim rs As ADODB.Recordset
Dim db As ADODB.Connection

Set db = CurrentProject.Connection
Set rs = New ADODB.Recordset

SQL = "Select * from Table"

rs.Open SQL, db, adOpenDynamic, adLockPessimistic