- ベストアンサー
テーブルにデータを保存するフォームの考え方
Access2000で勉強中ですが、フォーム上にID 商品名 単価 のテキストボックスを作成しました。 その下に、保存されたデータを表示されるようにサブフォームを作っています。そして 新規保存・修正・削除ボタンを1つの入力フォーム上に作成して処理できるものを作ろうと考えています。 サブフォームのレコードセレクタを指定して修正ボタンを 押すとテキストボックスに内容が表示されて修正できるようにするにはどうすればよいでしょうか? 説明が下手なのですが、簡単に言うと サブフォーム上ではレコードの選択(レコードセレクタ)の指定だけで入力をさせないようにしたいのです。 VBAのレコードセレクタの取得が良く判らないので よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>帳票フォームではなくて、データシート形式または表形式 >で表示させたものからレコードを選択して単票用入力シー >トへ表示させたかったのです。 単票用入力シート?どのような感じか判断しきれませんが・・。 データシート形式の例えば「ID」のフィールドにNo3に書いた記述を応用しても行ラベルの取得でエラーが出るかもしれませんが多分大丈夫だと思うので。 単票用入力シートと仮定してシート形式のフォームとしてIDフィールドのプロパティのダブルクリック時に Private Sub ID_DblClick(Cancel As Integer) Dim stDocName As String Dim stLinkCriteria As String stDocName = "単票用入力シート" stLinkCriteria = "[ID]=" & "'" & Me![ID] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria End Sub でデータシート形式でもIDをダブルクリックすると単票用入力シートが表示されます。 エラートラップかけてないので大丈夫だと思います。エラー出たらゴメンなさい。
その他の回答 (3)
- O_cyan
- ベストアンサー率59% (745/1260)
>レコードセレクタをクリックしたときのイベントは >ありますか レコードセレクタ自体にはイベントは発生しません。 あくまでもテーブル内のレコードの指定だけです。 >帳票フォームに表示されたレコードを選択したものを入力 >フォームに表示させるには 帳票フォームの詳細部にボタンを配置してクリック時のイベントに記述します。 帳票フォームに配置したボタンをCmd1として表示させるフォームをForm1とすると Private Sub Cmd1_Click() On Error GoTo Err_Cmd1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Form1" stLinkCriteria = "[ID]=" & "'" & Me![ID] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Cmd1_Click: Exit Sub Err_Cmd1_Click: MsgBox Err.Description Resume Exit_Cmd1_Click End Sub この記述で指定したレコードをForm1に表示できます。 ボタン作成のウィザードでも簡単にできますよ。 特定のレコードを表示するように進めればOKです。
お礼
お返事ありがとうございます。 詳細に本当に助かりますが私の勉強不足がもろに 補足に出てしまいました。ごめんなさい。 帳票フォームではなくて、データシート形式または表形式で表示させたものからレコードを選択して単票用入力シートへ表示させたかったのです。 勉強不足であいまいな表現になってしまって ご迷惑お掛けしました。
- kakusuke
- ベストアンサー率36% (95/259)
帳票フォームの 端っこに コマンドボタンをつけるとかは…? & 帳票フォームに 更新不可の テキストボックスを 貼り付ける。
お礼
お返事ありがとうございます。 頂いた内容でやってみます
- O_cyan
- ベストアンサー率59% (745/1260)
通常はメインフォームの親リンクのテーブルに対しサブフォーム内は子リンク先のテーブルを表示するのですが・・。 一つのテーブルだけ処理するフォームで新規保存・修正・削除を処理するのであればサブフォームは必要ないのではと思います。 新規はそのまま入力後保存し修正は修正ボタンクリック時に帳票フォームを表示しレコードを選択しフォームに表示したりコンボボックスからレコードを選択できるようにすれば良いのではないでしょうか。削除も同様で良いと思うのですが。 回答になっていなければゴメンなさい。
補足
お返事ありがとうございます。 誠に申し訳ございませんが、帳票フォームに表示された レコードを選択したものを入力フォームに表示させるには どのようにすれば良いのでしょうか? レコードセレクタをクリックしたときのイベントはありますか お願い致します。
お礼
お返事大変遅くなって申し訳ございませんでした。 もう一度自分で整理しながらやっていましたので せっかく丁寧に教えていただいたことへのお礼を 忘れていました。大変失礼しました。