引用:
この時、追加されたレコードの開始bニ終了b取得する方法はありませんでしょうか
この時 とは、
「この条件下」という意味でしょうか。それとも「この時機」と言う意味でしょうか。
引用:
(終了bフ条件)
開始+1000
に関しては、開始No が 取得できれば 計算で出る話なので割愛します。
(手動で、番号を変える等を行わないのであれば、開始No のフィールドだけあれば
事足りるかもしれませんね。)
方法として
1. 「1234」のデータを 5件 入れた後、更新クエリ を使い 一気に 開始No, 終了No に値を与える
2. フォーム上で、1234 の値をテキストボックスに入れたとき、
そのフォーム上の 開始No のテキストボックス に 値を与える
この二つが考えられます。
今作成できている クエリを使えば、 2. の開始No のテキストボックスに入れるべき値は取得できますよね?
マクロを使って代入するのであれば、DLookUp関数を使います。
1. の更新クエリの場合、計算元となる値を取得するテーブルが、自テーブルになります。
クエリにて計算中のテーブルは、ロックが掛かる事になりますので、更新不可となります。
(クエリ中 で INNER JOIN を使わずに、DMax等の広域関数を使えば更新可能)
ですので、計算を行った結果のデータを、ワークテーブル等の仮のテーブルに保存し
そのテーブルの値を元に、更新クエリを発行します。
計算させるクエリは
SELECT
ID,
商品コード,
Format
(
Val(
DMax("終了No", "詳細_T", "商品コード='" & 詳細_T.商品コード & "'")
)
+
DCOUNT("*", "詳細_T", "(終了No IS NULL) AND ID<=" & 詳細_T.ID )
* 1000
,
"000000"
) AS AA
FROM 詳細_T
WHERE 開始No IS NULL;
こんな感じでしょうか。(終了No は Null許可の場合)
フィールドが、テキスト型ではなく、数値型とし、
書式等の見せ方で 【001001】の様に見せる様にするなら Val も Formatも不要になるので、
もっと簡単ですね。