JET SQL による SQL Server に対するデータ操作 Hit Counter

対象バージョン : 97, 2000(MDB), 2002(MDB), 2003(MDB)
最終更新日 : 2016/09/18 (オリジナル作成日:2003/05/10)


概 要 

SQL Server のテーブルへのリンクや、ODBC の DSN を作成せずに、Access(JET) の SQL のみで Access(MDB) のテーブルから SQL Server へのテーブルへのレコードの追加、あるいはその逆を行う方法や、SQL Server 側のテーブルからレコードを削除する方法です。

 

解 説

Access(正しくは JET)の SQL では、テーブル名に対して外部 DB の名称の修飾が可能となっています。
この修飾部分に、接続先の SQL Server の情報を記述することによって SQL Server 内のテーブルを参照することができます。

1.SQLの作成
●SQL Server から Access へレコード追加 

Dim strSQL As String
strSQL = "INSERT INTO Table1 SELECT * FROM " & _
    "[ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DatabaseName;" & _
    "UID=UserID;PWD=Password;DSN=;].Table2"


●Access から SQL Server へレコード追加

Dim strSQL As String
strSQL = "INSERT INTO " & _
    "[ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DatabaseName;" & _
    "UID=UserID;PWD=Password;DSN=;].Table2 SELECT * FROM Table1"


●SQL Server のテーブルの全レコードを削除

strSQL = "DELETE FROM " & _
    "[ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DatabaseName;" & _
    "UID=UserID;PWD=Password;DSN=;].Table2"

2.実行

●DAO
Dim db As DAO.Database
' SQLの作成
Set db = CurrentDb
db.Execute strSQL


●ADO
Dim cnn As ADODB.Connection
' SQLの作成
Set cnn = CurrentProject.Connection
cnn.Execute strSQL

 


目次へ戻る