JET SQL による SQL Server に対するデータ操作 |
対象バージョン : 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