※ ChatGPTを利用し、要約された質問です(原文:フォームの内容をテーブルに保存)
Access2000を使ったフォームの内容保存と履歴機能の実装方法
2011/12/24 14:26
このQ&Aのポイント
Access2000を使用してフォームの内容を保存する方法と、履歴機能を実装する方法について説明します。
注文受付時に商品番号を入力し、検索をするとその商品の詳細情報が表示されます。表示された情報を保存ボタンで履歴として残すことができます。
保存ボタンを押すと、注文履歴保存用テーブルに新しいレコードを追加します。追加する情報は注文番号、商品ID、価格です。
Access2000を使っており以下のような処理を行いたいと思っております。
お力添え何卒宜しくお願いいたします。
■処理内容
電話で注文を受ける際に、お客様から言われた商品番号を画面に入力→検索をすると、その商品内容が画面に表示される。
上記の処理は出来ております。
そして画面に表示された内容を、【保存】ボタンを押すことで履歴として残す。
という処理を行いたいと思っております。
※テーブル・フォームの構成
-------------------------------------------------------------------
T_product ←商品基本情報テーブル
├id ←商品ID
├price ←商品価格
├memo ←商品詳細
└photo ←商品画像格納用
T_phistory ←注文履歴保存用テーブル
├phid ←オートナンバー
├oder_no ←オーダーNo
├product_id ←商品ID
├price ←商品価格
└data ←注文日時
F_SOGO ←フォーム ←検索を行うフォーム
F_SUB ←サブフォーム ←詳細を表示するフォーム
-------------------------------------------------------------------
F_SOGO にある非連結テキストボックス serch_id に商品番号を入れて検索ボタンを押すと
サブフォーム F_SUB に商品情報が表示される。
表示される内容は、
T_product から商品IDをキーにして、商品価格、商品詳細、画像を表示します。
また、F_SOGO には非連結テキストボックス oder_id を作り
規定値に =Now()
書式に yymmddhhnnss
として 2011年12月24日 14時04分05秒だと 111224140405 と入るようになっており
そこまではいいのですが、その結果を 仮に F_SOGOに【保存】というボタンを作り
押すと T_phistory に新規で
oder_no に 非連結テキストボックス oder_id の 111224140405 を
product_id に F_SUB の id
price に F_SUB の price
を追加したいのですが、できません。
自分で調べた結果、
Private Sub 保存_Click()
Dim Rst As DAO.Recordset
Set Rst = CurrentDb.OpenRecordset("T_phistory", dbOpenTable)
With Rst
.AddNew
.oder_no = Me.oder_id
.product_id = F_SUB.id
.price = F_SUB.price
.Update
End With
End Sub
としてみましたが全くです。
何卒宜しくお願いいたします。
質問の原文を閉じる
質問の原文を表示する
お礼
回答ありがとうございます。 > モジュール[保存_Click()]のSETの行でF9を押してブレークポイントを設定。 > 以降、F8キー押下ごとに1行ずつ実行できます。 SETの行にブレークポイントは設定できたのですが、以降F8を押しても なにも反応いたしません。 そのためまだこちらは検証できておりません。すいません。 F_SOGOで 保存ボタン を押すと .oder_noの部分で コンパイルエラー メソッドまたはデータ メンバが見つかりません。 とのエラーが表示されます。 ということは .oder_no = Me.oder_id .product_id = F_SUB.id .price = F_SUB.price の書き方がおかしいでしょうか? むむむ。
補足
色々と試した結果 Private Sub 保存_Click() Dim Rst As DAO.Recordset Set Rst = CurrentDb.OpenRecordset("T_phistory", dbOpenTable) With Rst .AddNew !oder_no = Me.oder_id !product_id = F_SUB!id !price = F_SUB!price .Update End With End Sub で動作いたしました。 !じゃないといかなかったんですね。 ただ、oder_idは 期待通りのデータではなく 日付のようなデータになっておりました。 ここも一工夫いるようですね。 調べてみますが分からないときにはスイマセンがまたお願いいたします。