0

Database1 と Database2 があり、それぞれをデータ テーブル オブジェクトに追加します。現在、Database1 は Access を介して変更されています。レコードが追加されたり、削除されたり、行データが変更されたりする可能性があります。データベースは次のようになります

+----+----------+-------+-------+
| ID |   Name   | Price | Sales |
+----+----------+-------+-------+
|  1 | ProductA |   453 |    55 |
|  2 | ProductB |    43 |   156 |
|  3 | ProductC |    22 |   161 |
+----+----------+-------+-------+

したがって、製品 ID=1 の行を削除すると、ID = 4 の新しい製品を追加する場合、2 番目のデータベース 2 で削除したいです。また、価格または販売を変更した場合は、データベース 2 に追加したいです。そのレコードの Database2 の変更。

問題は、データベース レコードが両方のデータベースで同じ順序になっていないため、ループに時間がかかる可能性があることです。たとえば、ID=4000 が削除された場合、これを見つけるためにデータベース全体をループする必要があります。

たくさんのループ以外の解決策はありますか?

4

2 に答える 2

1

IDが行の識別子である場合、私はあなたがあなたが求めていることを安全に行うことができるとは思いません。

上記の表1の例を考えます。

+----+----------+-------+-------+
| ID |   Name   | Price | Sales |
+----+----------+-------+-------+
|  1 | ProductA |   453 |    55 |
|  2 | ProductB |    43 |   156 |
|  3 | ProductC |    22 |   161 |
+----+----------+-------+-------+

そして、表2の故障状態をシミュレートします。

+----+----------+-------+-------+
| ID |   Name   | Price | Sales |
+----+----------+-------+-------+
|  1 | ProductB |    43 |   156 |
|  2 | ProductA |   453 |    55 |
|  3 | ProductC |    22 |   161 |
+----+----------+-------+-------+

表2からID2を削除すると、表1から製品Bが削除されます(製品Aではありません)。私はこれがあなたが望むものではないと思います。

IDがこれらの値の主キーであることを確認しますか?

于 2012-08-13T13:56:12.950 に答える
1

MS Access 接続に対して実行される SQL で、別のデータベースを参照することができます。

 SELECT t1.*, t2.* FROM Table1 t1 
 INNER JOIN [;DATABASE=Z:\Docs\Test.accdb].Table1 t2
 ON t1.ID=t2.ID

ここから、不足しているレコードや変更されたレコードを検索するためのクエリを簡単に作成できます。

于 2012-08-13T13:25:01.720 に答える