Microsoft Access 掲示板

テーブル・クエリを表示しない追加クエリ / 3

5 コメント
views
4 フォロー
3

F_在庫品作成依頼というフォームを作りました。
レコードソースは00品番と00作成というテーブルを品番で繋げたものです。

txb_品名コードの更新後処理で、品名コードでフィルターし、その製品の詳細と作成依頼の履歴(サブフォームで、レコードソースはF_在庫品作成依頼と同一)を表示する

txb_現在庫数に、現在の在庫数を入力する

ここで問題となるのは、[txb_品名コード]と[txb_現在庫数]が
連結テキストボックスであるか、それとも非連結テキストボックスであるか、
ということです。

[txb_品名コード]のコントロールソースがテーブル[00作成]のフィールド[品番]、
[txb_現在庫数]のコントロールソースがテーブル[00作成]のフィールド[現在庫数]
であるならば、それらのテキストボックスに対して値を入力する操作は
そのままコントロールソースであるフィールドに対しての入力となります。

その際のフォームのカレントレコードが新規レコードなのであれば、
カレントレコードが保存された段階でそのレコードはテーブル[00作成]に
追加されます。
カレントレコードが既存のレコードなのであれば、参照中のレコードが
更新(上書き)されます。

btn_作成手配ボタンを押して、F_在庫品作成依頼のテキストボックスに
表示されている値・今日の日付を00作成という作成履歴を保存するレコードに追加する

「連結フォームのカレントレコードに対する入力操作」によって
テーブル[00作成]のレコードの追加/更新が成されているのであれば、
それとは別に(独自に)「追加クエリを用いたレコードの追加」という操作を
実行する必要はありません。

後者の操作を行う必要があるとすれば、それは[F_在庫品作成依頼]が
非連結フォーム(どのテーブルとも連結していない)である場合か、
「連結フォームのカレントレコードに対する入力操作」とは別に
何か特殊なレコードの追加処理を実行しなければならないような場合
ぐらいでしょう。

通報 ...
  • 4
    驚天動地!前任者失踪丸 2024/03/15 (金) 15:20:32 23e8e@44ebd >> 3

    ごくありふれた操作なのですね。初めてだったので安心しました。

    txb_品名コード、txb_現在庫数ともに非連結のテキストボックスです。

  • 5

    txb_品名コード、txb_現在庫数ともに非連結のテキストボックスです。

    ならば[F_在庫品作成依頼]が連結フォームである必要はないのではないでしょうか。

    ごくありふれた操作なのですね。初めてだったので安心しました。

    いわゆる CRUD 機能を Access の非連結フォームに実装する場合、
    「新規レコードの追加」を行う手法については、大別して次の 3 種類の方法が挙げられます。

    1. 保存済みの追加クエリを実行するマクロまたはプロシージャを呼び出す。

    2. 任意の SQL 文(この場合は INSERT INTO ... ステートメント)を実行するマクロまたはプロシージャを呼び出す。

    3. DAO または ADO の Recordset オブジェクトによって任意のテーブルを参照し、AddNew メソッドを呼び出して新規レコードを作成し、そのレコードの各フィールドの値を編集し、Update メソッドを呼び出してそのレコードをテーブルに保存する――という一連の操作を実行するプロシージャを呼び出す。

    挙げられた方法は上記 1 に該当します。