2016-06-16 5 views
0

アクセスデータベースで接続文字列を更新する作業を進めています。フォームのコードにはいくつかの行があります。VBA:DSNに必要なコードをADOに置き換えます。

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 

私は、この変換を行うことで、いくつかの助けをお願いしたいと思います。私は近いと思うが、私はいくつかの説明が必要だ。

ありがとうございます。

+0

'ADOCon.ConnectionString = "プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース=物理パスTOFILE"' –

+0

私はその部分を持ってGetConnectionStringという名前の関数の呼び出しによってカバーされます。私の疑問は、クエリの割り当てが変更された部分とMyDB.QueryDefs.Append QDの部分です。それとも、まったく必要ないのですか?ありがとうございました。 –

答えて

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 
関連する問題