忍者ブログ

[PR]

2024年05月07日
×

[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

MDBファイルのショートカット

2008年10月16日
エラーメッセージ

① 他MDBにあるテーブルとの同期
② アプリケーション(MS Access)の終了
以上の処理をするMDBファイルですが、ショートカットから実行すると

「●●●.mdbが見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。ファイルを検索するには、[スタート]ボタンをクリックしてから、[検索]をクリックしてください。」

「プログラムにコマンドを送信しているときに、エラーが発生しました。」

のエラーが発生します。
肝心な同期処理は自体は正常に実行されているようです。

ショートカットからではなく、MDB本体を実行すればエラーメッセージは表示されません。
あと②の「DoCmd.Quit」がなければエラーになりません。



解決方法:
ショートカットのプロパティ→ショートカットタブのリンク先にMicrosoft AccessのEXEまでのパスを追加してあげます。これで正常に終了するようになりました。
例:"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" D:\db1.mdb
ショートカットのプロパティ
 | HOME |