2012-07-27 32 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

相關問題