[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ODBC接続経由時のパスワード入力を省く
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接続時に入力するユーザー名とパスワードを入れて下さいね。