• ベストアンサー

クエリで抽出したものに日付を入力して更新したい

素人質問です。よろしくお願いします。 クエリで発注データを抽出し、それに対して入荷日などを入力し更新したいのですが、今の状況だとbefore updateなどで設定して更新しますか?とメッセージを出していますが、 たとえば5件抽出して5件入力が終わったところで「変更データがあります。更新してもよろしいですか?」とメッセージを出して更新するかしないか…と進めたいのですが、どうしていいかわかりません。 助けてください!よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.1

ご存知かと思いますがAccessの場合は、データを変更して別の行へ移動した段階で更新されてしまいます。 従って普通にやってもご希望の動作は出来ません。 常道なのは以下の方法かと思います。 1.発注データと同一レイアウトのワークテーブルを作ります。 2.クエリで抽出する前にこのワークテーブルを削除します。 3.クエリで抽出されたデータをワークテーブルに追加します。 4.フォームで変更させるのはこのワークテーブルにします。 5.ボタンを押した後に、ワークテーブルをもとに発注テーブルを更新します。 ただしマルチユーザー環境だと、ユーザーごとにワークテーブルが必要になってくるので、コンピュータ名などをキーに加えることが必要になります。

yaeka1221
質問者

お礼

ありがとうございます。 参考にさせていただいていますが、2番のワークテーブルを削除して、その後追加すると、フォームに表示されるのがDELETE…とたくさん出て正しく表示できません。 表示する前に削除追加クエリを実行するのはどのようにしたらよいですか?

その他の回答 (2)

  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.3

#1です。 フォームをリクエリーしてください。 そうすれば、フォームに内容が最新のものに更新されるのできれいになります。

yaeka1221
質問者

お礼

できました! いろいろとありがとうございました。 本には載っていないことだらけなのですごく助かりました。

  • xmoto
  • ベストアンサー率27% (27/98)
回答No.2

僕ならこうするかなぁ~って風に受け取って下さい。 入力・変更を必要とするコントロールの他にフラグを立てるためのコントロールを用意し 更新後処理でフラグを立てる(例えばYes/Noコントロール等を値の代入で) フォームを閉じようとした時にフラグの数を数え、ゼロでなければ更新日の値を 今日に変更するかどうかのメッセージを表示し、Yesであれば更新クエリーで フラグが立っているデータの日付を今日に更新し、更新後フラグを消す更新クエリーを 実行する。 こんな感じなら一件毎ではなく、入力したデータを一括して更新できるのではないでしょうか? 参考にならなければ忘れてください(笑)

yaeka1221
質問者

お礼

何とか苦戦していますが…。とりあえずもうちょっとがんばってみます。ありがとうございました

関連するQ&A