アルツの備忘録

最近、年のせいで物忘れが激しい。
そこで、いろんなことをここに記録して行きたいと思います。

Access ODBCの自動設定

2008年01月30日 21時27分44秒 | Access
ODBCの自動設定
  ※ここを参考にした。
   SQLConfigDataSource を使用して Access のシステム DSN を作成する方法   
     http://support.microsoft.com/kb/287668/ja

・AcceccVBAで作成
 ODBC接続したいAccessに入れおいて、自分自身を登録・削除する。

Build_SystemDSNファンクションを、登録区分、DSN名、データベースパスの引数で呼び出す。
Accessの自分のパスは、CurrentProject.FullName で得る。(Access2000以降)

<VBA>
Option Explicit
'ユーザDSN
'Const ODBC_ADD_DSN = 1           ' Add a new data source.
'Const ODBC_CONFIG_DSN = 2        ' Configure (edit) existing data source.
'Const ODBC_REMOVE_DSN = 3        ' Remove existing data source.
'システムDSN
'Const ODBC_ADD_SYS_DSN = 4       'Add data source
'Const ODBC_CONFIG_SYS_DSN = 5    'Configure (edit) data source
'Const ODBC_REMOVE_SYS_DSN = 6    'Remove data source

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal _
   hwndParent As Long, ByVal fRequest As Long, ByVal _
   lpszDriver As String, ByVal lpszAttributes As String) As Long

Function Build_SystemDSN(KBN As Integer, DSN_NAME As String, Db_Path As String)

    If KBN <> 4 And KBN <> 6 Then
        MsgBox ("区分エラー 4 or 6 ")
        Exit Function
    End If
    
    Dim ret As Long
    Dim Driver As String
    Dim Attributes As String
    
    Driver = "Microsoft Access Driver (*.MDB)" & Chr(0)
    Attributes = "DSN=" & DSN_NAME & Chr(0)
    Attributes = Attributes & "Uid=Admin" & Chr(0) & "pwd=" & Chr(0)
    Attributes = Attributes & "DBQ=" & Db_Path & Chr(0)
   
    ret = SQLConfigDataSource(0, KBN, Driver, Attributes)
   
    'ret が 1 の時は成功、0 の時は失敗
    If ret <> 1 Then
        MsgBox "DSN 保守エラー"
    End If
End Function





最新の画像もっと見る

コメントを投稿