SqlServerとMDBを比較し、MDBにデータを取得するには?


きのこ  2005-05-19 06:14:34  No: 89908

初心者です。

現在、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で行いたいのですが、うまくいきません。どのようにすればよいのでしょうか?お教えください。


きのこ  2005-05-19 06:23:49  No: 89909

申し訳ありません。

FROMのSqlServerTblがSqlServerDbと入力してしまいました。
FROM T_Mdb, SqlServerTbl
が正常です。


medaka  2005-05-19 20:37:15  No: 89910

エラー出るのかな?
どううまくいかないのでしょうか?
どういうコード書いたのでしょうか?


Dental  2005-05-19 21:45:52  No: 89911

条件次第では、[データ変換ウィザード](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を参照してください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加