MS Accessの追加クエリを使用して、ERPデータベース(MYSQL)に在庫トランザクションを追加しています。
クエリを変更して、次のシーケンシャルトランザクションID(主キー)をInventory_transactionテーブルに自動的に挿入し、一度に複数のレコードを追加する方法を教えてください。
私の既存のクエリは正常に機能しますが、レコードを1つだけ追加した場合に限ります。
通常、複数のレコードを同時に追加する必要があります。各レコードには、一意のシーケンシャルトランザクションID(主キー)が必要です。このアプリを同時に使用するユーザーは複数いるため、ロールバックを防ぐために、キー違反が重複する可能性を最小限に抑える必要があります。データベースがトランザクションIDを自動的に割り当てるかどうかを確認するために、主キーを使用せずに追加しようとしましたが、残念ながら、このERPフィールドは自動番号ではなく、テーブル構造を変更できません...
以下は2つのクエリです。
これは現在、1つのレコードのトランザクションIDを生成するために機能します。
SELECT Max([SYSADM_INVENTORY_TRANS].[TRANSACTION_ID])+1 AS new_inventory_transaction_ID
FROM SYSADM_INVENTORY_TRANS;
2番目のクエリは最初のクエリを含む追加クエリです。ユーザーが一意のトランザクションIDを使用して複数のレコードを一度に追加できるように、誰かがクエリを変更できるようにしていただければ幸いです。
INSERT INTO SYSADM_INVENTORY_TRANS ( TRANSACTION_ID, WORKORDER_TYPE,
WORKORDER_BASE_ID, WORKORDER_LOT_ID, WORKORDER_SPLIT_ID, WORKORDER_SUB_ID,
OPERATION_SEQ_NO, REQ_PIECE_NO, PART_ID, TYPE, CLASS, QTY, COSTED_QTY,
TRANSACTION_DATE, WAREHOUSE_ID, LOCATION_ID, USER_ID, POSTING_CANDIDATE,
ACT_MATERIAL_COST, ACT_LABOR_COST, ACT_BURDEN_COST, ACT_SERVICE_COST,
CREATE_DATE, ADD_BURDEN, COUNT_SEQUENCE, DESCRIPTION )
SELECT T.new_inventory_transaction_ID, S.WORKORDER_TYPE, D.WORKORDER_BASE_ID,
D.WORKORDER_LOT_ID, D.WORKORDER_SPLIT_ID, D.WORKORDER_SUB_ID, D.OPERATION_SEQ_NO,
D.PIECE_NO, D.auto_issue_part_ID, S.TYPE, S.CLASS, D.[total_auto_issue Qty],
0 AS Expr6, Date() AS Expr1, D.BACKFLUSH_WHS_ID, D.BACKFLUSH_LOC_ID,
"SYSADM" AS Expr3, S.POSTING_CANDIDATE, S.ACT_MATERIAL_COST, S.ACT_LABOR_COST,
S.ACT_BURDEN_COST, S.ACT_SERVICE_COST, Date() AS Expr2, S.ADD_BURDEN,
S.COUNT_SEQUENCE, "ENTERED WITH ACCESS APP" AS Expr5
FROM tbl_static_autoissue_data AS S,
tbl_dynamic_autoissue_data AS D,
qry_transaction_ID_generator AS T;