忍者ブログ

[PR]

2024年05月06日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ODBC接続経由時のパスワード入力を省く

2008年10月16日

Microsoft Access 2000
IBM iSeries Access for Windows

サインオン画面
ODBC接続経由でサーバーのDBにアクセスすると、「サーバー」「ユーザー名」「パスワード」の入力を求められます(上記画像参照)
1度入力すればその後PCを終了するまで有効となり、再度入力を求められる事はありませんが、使用者の手間になるので省きたいところです。

という事でMDB起動時にでも以下の処理を実行するようにします。



Public Function i5Connect() As Long
    '参照設定:Microsoft DAO 3.x Object Library
    Dim db As DAO.Database
    Dim qd As DAO.QueryDef
    Dim rs As DAO.Recordset
   
    Set db = Application.CurrentDb
    Set qd = db.CreateQueryDef(Name:="", SQLText:="SELECT * FROM [テーブル名]")
    Let qd.Connect = "ODBC;DSN=[データ・ソース名];;TABLE=[テーブル名];UID=[ユーザー名];PWD=[パスワード];"
   
On Error Resume Next
    Set rs = qd.OpenRecordset()
   
    Select Case Err.Number
        Case 0
            rs.Close
        Case Else
            MsgBox (Err.Number & VBA.vbNewLine & Err.Description)
    End Select

On Error GoTo 0
    qd.Close
    db.Close
    Set rs = Nothing
    Set qd = Nothing
    Set db = Nothing
End Function



これでサーバーDBにアクセスする前にVBAにて存在するテーブルを開くという処理をしてあげる事で使用者がパスワードを入力しなければならないという手間が省けます。

なお、ここでselectしているテーブルはサーバーに存在するDBです。これはなるべく軽いものをお勧めします。
Let qd.Connect にて指定する文字は、実際にサーバーへのリンクテーブルを作り、そのテーブルプロパティの説明部分を参考にすると良いでしょう。
同じくLet qd.Connect にて指定している「UID」と「PWD」は、ODBC接続時に入力するユーザー名とパスワードを入れて下さいね。

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: