2012-07-27 72 views
0

我有一个包含客户订单和客户详细信息的单一表的旧数据库。我继续使用单独的表格为客户和细节创建新的数据库模型。我设法将客户详细信息迁移到新数据库,但无法迁移客户订单。我们认为这样可以,并且我们只是从现在开始构建订单记录,忽略旧数据库中的所有先前订单。这是前一段时间,我不记得我无法导入客户订单的确切原因。但是,现在我们发现我们将需要新数据库中的旧订单。有没有简单的方法来使用Microsoft Access来做到这一点?将数据从旧数据库复制到新结构的新数据

这就是为什么的原因:

Split a table in access into two linked tables

+1

这就是为什么http://stackoverflow.com/questions/11263253/split-a-table-in-access-into-two-linked-tables#comment14807539_11263253 – Fionnuala 2012-07-27 13:35:57

+0

你仍然收到验证错误?你在用什么sql?你插入的表的模式是什么?你是否对priginal数据库进行了反编译?压实和修复它? – Fionnuala 2012-07-27 14:17:30

回答

0

根据您的架构的复杂程度,一个简单的方法是通过一个INSERT INTO SELECT查询的模式映射。

例如,如果你的旧数据库有一个表:

Orders 
------ 
OrdID 
CustID 
ProductName 
Price 
oDay 
oMonth 
oYear 

您的新数据库的人不得不使用不同的名称,额外的字段等字段:

OrderDetails 
------ 
Order_ID 
Customer_ID 
Product 
Price 
DeliveryAddress 
OrderDate 

所有你需要做的是创建插入查询以将旧记录附加到新表中。在定义查询时,您可以指定源和目标字段名称,甚至可以对数据执行函数/表达式。你甚至可以直接在其他表中查询,而无需连接或将它导入到新的数据库:

INSERT INTO OrderDetails (Order_ID,Customer_ID,Product,Price,OrderDate) 
SELECT OrdID,CustID,ProductName,Price,DateSerial(oYear,oMonth,oDay) AS oDate 
FROM Orders IN 'C:\oldDatabasePath.mdb'; 

如果你要做额外的转换来的数据,例如列值运行的表情,我会建议测试在添加INSERT行之前查询SELECT部分查询。

+0

太好了,谢谢。如果以前的数据库有1个表,并且新的有2个,我想用链接的字段将原始的1个表拆分成多个表? – 2012-07-28 10:27:22

相关问题