初心者です。
現在、SqlServerとMDBのテーブルのデータを比較し、条件にあったらMDBのテーブルにレコードを追加するといったSQLを作成しているのですが、どのようにして良いのかわかりません。どなたかお教えいただけないでしょうか?
MDBのテーブル:T_Mdb
ID 住所 生年月日 データ更新日
データ更新日とは、レコードを更新した日付が入ってきます。
SqlServerのテーブル:SqlServerTbl
ID 住所 生年月日 データ更新日
データ更新日とは、レコードを更新した日付が入ってきます。
T_MdbはSqlServerTblの以前までのデータが入っています。その2つのテーブルを比較し、更新のあったものは、T_MdbHistoryに更新履歴として格納します。
更新履歴テーブル:T_MdbHistory
ID 住所 生年月日 データ更新日 データ取得日
IDからデータ更新日までは、T_Mdbのデータが入り、データ取得日は、更新履歴を取得した日が入ってきます。
Accessで書くと以下のようになりました。
INSERT INTO T_MdbHistory ( ID, 名前, 住所, 生年月日, データ更新日, データ取得日)
SELECT T_Mdb.ID, T_MdbData.名前, T_MdbData.住所, T_MdbData.生年月日, T_MdbData.データ更新日, Date()
FROM T_Mdb, SqlServerDb
WHERE (T_Mdb.ID=SqlServerTbl.ID) And (T_MdbData.データ更新日<>SqlServerTbl.データ更新日)
これを、VB6.0で行いたいのですが、うまくいきません。どのようにすればよいのでしょうか?お教えください。
申し訳ありません。
FROMのSqlServerTblがSqlServerDbと入力してしまいました。
FROM T_Mdb, SqlServerTbl
が正常です。
エラー出るのかな?
どううまくいかないのでしょうか?
どういうコード書いたのでしょうか?
条件次第では、[データ変換ウィザード](DTS:Data Transformation Service)を
利用する事ができるのでは無いでしょうか。
http://www.microsoft.com/japan/msdn/sqlserver/columns/dts/dts1.asp
もしも条件が複雑で、DTSでは手に負えそうになければ、
SQL Server側から、mdbへの「リンクサーバ」を設定するか、もしくは
mdb側から、SQL Serverへの「ODBCリンクテーブル」を設定すれば、
異種DB間で SELECT/UPDATEなどのSQLを実行可能です。
DTSやリンクサーバの詳細は、SQL ServerのBooks Onlineを参照してください。
ODBCリンクテーブルの詳細は、Jetリファレンス、またはAccessのヘルプを参照してください。
VB6からSQL ServerやJetを操作する方法については、MDAC SDKを参照してください。
ツイート | ![]() |