2012年5月9日水曜日

[ACCESS]ACCESS2.0でODBC接続でもパスワードを聞かれる対応

From Evernote:

[ACCESS]ACCESS2.0でODBC接続でもパスワードを聞かれる対応

ACCESS2.0でSQLServerにリンクテーブルとして接続する場合、
ODBC設定でパスワードを入れているのに
毎回パスワードを聞かれる。

解決策が見つからなかったので、
一度接続するモジュールを作成し、
それをAutoExe(起動時に走るマクロ)に埋め込むことにした。
1度接続すれば以降は出ないので。


モジュールは以下。
'-----------------------------------------

Function SQLLogin ()

    Dim strDSN As String: strDSN = "systest.aa"
    Dim strDB As String: strDB = "testDB"
    Dim strUser As String: strUser = "user"
    Dim strPass As String: strPass = "pwd"
    Dim stConnect As String
  'ODBC名はここに
    stConnect = "ODBC;DSN=ここにODBC名;UID=" & strUser & ";PWD=" & strPass & ";DATABASE=" & strDB & ";"
    Dim WS As WorkSpace
    Dim DB2 As Database 'データベースオブジェクト変数
    Dim RS2 As Recordset 'レコードセットオブジェクト変数
    Set WS = DBEngine.Workspaces(0)
    Set DB2 = WS.OpenDatabase("", False, False, stConnect)
    Dim mySQL As String
    'テキトー
    mySQL = "SELECT * FROM sysobjects WHERE xtype IN ('N' , 'U' ) ORDER BY name"
    Set RS2 = DB2.OpenRecordset(mySQL, db_open_Dynaset)
    'レコードセットオブジェクトを閉じる
    RS2.Close
    Set RS2 = Nothing
    'データベースオブジェクトを閉じる
    DB2.Close
    Set DB2 = Nothing
   
End Function

'-----------------------------------------