まず、私は Access とデータベース全般についてかなり初心者です。発送、受け取り、検査エリアを通過する際に、会社が商品を正確に追跡できるようにするデータベースを設計しようとしています。現在、会社のデータ抽出を介して毎日更新されるリンクされた Excel シートがあります。次に、更新クエリを実行して、新しいレコードのみをデータベースのプライマリ テーブルに追加します。追加するテーブル フィールドは、Part_Number、Lot_Number、Item_Description、PO_Number、ProjectID、Project_Name、Quantity、Reason_Code、Dock_Receipt_Date です。
私が抱えている問題は、同じ値のフィールドと、それらを区別する少なくとも 1 つのフィールドの任意の組み合わせを持つ複数のレコードが存在する可能性があることです (Excel シートに真の重複レコードは存在しません)。更新クエリを実行すると、すべて同じ値のフィールドを持つレコードは真の重複になります。つまり、データベースが空の場合、最初の更新クエリはすべての個別のレコードを追加します。2 回目以降の更新では、同じ部品番号、ロット番号、または PO 番号のレコードは、別のものであるにもかかわらず、上書きされて重複します。データベースに新しいレコードを追加しながら、更新クエリで個別のレコードを保持する方法があるかどうか疑問に思っています。または、既存のレコードを無視して、新しいレコードのみを追加する方法がある場合は?
注として、Excel シートにインデックスを追加しようとしましたが、更新クエリを実行すると、Excel レコードを毎回新しいものとして扱うため、データベースが数百のレコードで拡大します。
PS現在のSQLは次のとおりです。
UPDATE [Tbl 01 RDM DB]
RIGHT JOIN [Tbl 02a Pending Inspection Items]
ON [Tbl 01 RDM DB].Part_Number = [Tbl 02a Pending Inspection Items].Part_Number
SET [Tbl 01 RDM DB].Lot_Number = [Tbl 02a Pending Inspection Items].[Lot_Number]
, [Tbl 01 RDM DB].Part_Number = [Tbl 02a Pending Inspection Items].[Part_Number]
, [Tbl 01 RDM DB].Item_Desc = [Tbl 02a Pending Inspection Items].[Item_Desc]
, [Tbl 01 RDM DB].PO_Number = [Tbl 02a Pending Inspection Items].[PO_Number]
, [Tbl 01 RDM DB].[Project/CID] = [Tbl 02a Pending Inspection Items].[Project/CID]
, [Tbl 01 RDM DB].Dock_Receipt = [Tbl 02a Pending Inspection Items].[Dock_Receipt]
, [Tbl 01 RDM DB].Reason_Code = [Tbl 02a Pending Inspection Items].[Reason_Code]
, [Tbl 01 RDM DB].QTY = [Tbl 02a Pending Inspection Items].[QTY]
, [Tbl 01 RDM DB].Project_Name = [Tbl 02a Pending Inspection Items].[Project_Name];