0

顧客の注文と顧客の詳細を含む単一のテーブルを持つ古いデータベースがありました。次に、顧客と詳細用に別々のテーブルを使用して、新しいデータベース モデルを作成しました。顧客の詳細を新しいデータベースに移行することはできましたが、顧客の注文を移行することはできませんでした。これで問題ないと考え、古いデータベースの以前の注文をすべて無視して、これからは注文レコードを作成するだけでよいと考えました。これは少し前のことで、顧客の注文をインポートできなかった正確な理由は思い出せません。ただし、新しいデータベースで古い注文が必要になることがわかりました。Microsoft Access を使用してこれを行う簡単な方法はありますか?

これが次の理由です。

アクセス中のテーブルを 2 つのリンクされたテーブルに分割する

4

1 に答える 1

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';

列の値に対して式を実行するなど、データに追加の変換を行う必要がある場合は、行SELECTを追加する前にクエリの一部をテストすることをお勧めしますINSERT

于 2012-07-27T16:05:26.863 に答える