我有Database1和Database2,我将它们中的每一个添加到数据表对象。 现在Database1通过Access更改,可能会添加删除记录或行数据可能会更改。 所以数据库看起来像
+----+----------+-------+-------+
| ID | Name | Price | Sales |
+----+----------+-------+-------+
| 1 | ProductA | 453 | 55 |
| 2 | ProductB | 43 | 156 |
| 3 | ProductC | 22 | 161 |
+----+----------+-------+-------+
所以,如果我删除产品ID = 1的行,我希望在第二个Database2中删除它 如果我添加ID为4的新产品,我希望将其添加到Database2,如果我更改价格或销售,我希望它在Database2中更改该记录。
现在问题是数据库记录在两个数据库中的顺序不同,所以循环可能需要很多时间...例如,如果ID = 4000被删除,那么我将循环遍历整个数据库以找到这个
除了很多循环之外,还有其他解决方案吗?答案 0 :(得分:1)
可以在SQL中针对MS Access连接引用另一个数据库:
SELECT t1.*, t2.* FROM Table1 t1
INNER JOIN [;DATABASE=Z:\Docs\Test.accdb].Table1 t2
ON t1.ID=t2.ID
从这里开始,创建查询以查找丢失或更改的记录非常容易。
答案 1 :(得分: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中删除ID 2,您将最终从表1中删除产品B(而不是产品A)。我不认为这是你想要的。
您确定ID是这些值的主键吗?