[Access VBA] SQLServerのテーブルをODBC接続でAccessにインポートする方法

AccessからSQLServerのテーブルを参照したいが、直接接続すると問題があるときには、一旦Accessにテーブルをインポートしてから参照する

AccessにSQL Serverのテーブルをインポートする

前提として、SQL Serverに対するODBC接続が定義されていること
<SQL>
Function OdbcTableImport() As Integer
On Error GoTo Err_Handler
    Dim DB_Connect_String As String
    
    OdbcTableImport = 0
    
    DB_Connect_String = "ODBC;DSN=[ODBC接続名];UID=[ユーザID];PWD=[パスワード]"
    DoCmd.DeleteObject acTable, "[Accessテーブル名]"
    
    DoCmd.Hourglass True
    DoCmd.TransferDatabase acImport, "ODBC データベース", DB_Connect_String, acTable, "[SQLServerテーブル名]", "[Accessテーブル名]"
    
    DoCmd.Hourglass False
    
    OdbcTableImport = Nz(DCount("*", "[Accessテーブル名]"), 0)
    
    Exit Function
    
Err_Handler:
    Select Case Err
           Case 3011
                Resume Next
           Case Else
                Resume Next
    End Select
    Exit Function

End Function
○処理の内容
8行目:Access内のインポートテーブルをあらかじめ削除しておく。削除しないと11行目のインポート処理でテーブルが上書きされず、末尾に連番が付与されたテーブル名になる

11行目:インポート処理。SQLServerのテーブルをAccessにコピーする




このブログの人気の投稿

[Access SQL] Access SQLで切り捨てを行う方法

[SQL Server] テーブル一覧や列の一覧を取得する方法