• ベストアンサー

テーブルにデータを保存するフォームの考え方

Access2000で勉強中ですが、フォーム上にID 商品名 単価 のテキストボックスを作成しました。 その下に、保存されたデータを表示されるようにサブフォームを作っています。そして 新規保存・修正・削除ボタンを1つの入力フォーム上に作成して処理できるものを作ろうと考えています。 サブフォームのレコードセレクタを指定して修正ボタンを 押すとテキストボックスに内容が表示されて修正できるようにするにはどうすればよいでしょうか? 説明が下手なのですが、簡単に言うと サブフォーム上ではレコードの選択(レコードセレクタ)の指定だけで入力をさせないようにしたいのです。 VBAのレコードセレクタの取得が良く判らないので よろしくお願い致します。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.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をダブルクリックすると単票用入力シートが表示されます。 エラートラップかけてないので大丈夫だと思います。エラー出たらゴメンなさい。

mehiro2
質問者

お礼

お返事大変遅くなって申し訳ございませんでした。 もう一度自分で整理しながらやっていましたので せっかく丁寧に教えていただいたことへのお礼を 忘れていました。大変失礼しました。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>レコードセレクタをクリックしたときのイベントは >ありますか レコードセレクタ自体にはイベントは発生しません。 あくまでもテーブル内のレコードの指定だけです。 >帳票フォームに表示されたレコードを選択したものを入力 >フォームに表示させるには 帳票フォームの詳細部にボタンを配置してクリック時のイベントに記述します。 帳票フォームに配置したボタンを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です。

mehiro2
質問者

お礼

お返事ありがとうございます。 詳細に本当に助かりますが私の勉強不足がもろに 補足に出てしまいました。ごめんなさい。 帳票フォームではなくて、データシート形式または表形式で表示させたものからレコードを選択して単票用入力シートへ表示させたかったのです。 勉強不足であいまいな表現になってしまって ご迷惑お掛けしました。

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.2

帳票フォームの 端っこに コマンドボタンをつけるとかは…?     &  帳票フォームに 更新不可の テキストボックスを 貼り付ける。

mehiro2
質問者

お礼

お返事ありがとうございます。 頂いた内容でやってみます

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

通常はメインフォームの親リンクのテーブルに対しサブフォーム内は子リンク先のテーブルを表示するのですが・・。 一つのテーブルだけ処理するフォームで新規保存・修正・削除を処理するのであればサブフォームは必要ないのではと思います。 新規はそのまま入力後保存し修正は修正ボタンクリック時に帳票フォームを表示しレコードを選択しフォームに表示したりコンボボックスからレコードを選択できるようにすれば良いのではないでしょうか。削除も同様で良いと思うのですが。 回答になっていなければゴメンなさい。

mehiro2
質問者

補足

お返事ありがとうございます。 誠に申し訳ございませんが、帳票フォームに表示された レコードを選択したものを入力フォームに表示させるには どのようにすれば良いのでしょうか? レコードセレクタをクリックしたときのイベントはありますか お願い致します。

関連するQ&A

  • Accessフォームの検索画面作成について

    ご存知の方、教えてください。 ・会員情報の単票フォームを作成し、同フォームのフォームヘッダーにテキストボックスとボタンを作成しました。 ・テキストボックスにフリガナの頭文字を入力し、ボタンを押すと、該当する会員のレコードが表示されるようにしました。 (VBAのFindRecordで作成) ここからが分からないのですが・・・。 ・フリガナに同じ頭文字を持つレコードが複数ある場合、「次へ」というボタンを押すと上部レコードから順に次のレコードが表示されるようにしたいのです。また、同じ頭文字のレコードがない場合は「検索が終了しました」というメッセージを表示したいのです。 VBAでどのような記述をすればいいのか、教えてください。よろしくお願いします。

  • ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

    フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。 売上テーブル  ID   商品コード  日付    金額   1    G1     20080101  532153  2    G1     20080101  564281  3    G1     20080301  538123  4    J4     20080301  124531  5    J4     20080302  125483 ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型 これを使い、 フォームではまず レコードナンバーを入力画面        ↓ レコード番号を入れると、そのレコードのデーターが画面に表示され、 その画面で修正可能        ↓  保存 ボタンで保存 という流れです。 レコードナンバーはIDを使おうと思っています。 データの量が莫大な為、コンポボックスなどは使えません。 できるだけ、VBAなどは使わずに作りたいです。 よろしくお願い致します。

  • access2000でのフォームの詳細ボタンについて

    access2000を使用して、顧客のカナを入力すると該当する顧客が抽出される一覧を作成いたしました。 作り方は、 メインフォームに顧客一覧のサブフォームを置きました。 検索カナ入力用のテキストボックスを置き、その横に検索ボタンを置いています。 ここまでは順調でしたが、サブフォームに置いた詳細ボタン(指定した顧客の詳細の単票フォーム)が作動しなくなりました。 サブフォームだけで実行すると表示されます。 メインフォームでボタンを押しても作動しません。 行き詰っています。どなたかご教授下さい。。 お願いします。

  • ACCESS2000 フォームとテーブル

    カテゴリを間違っていたので再度ご質問致します。 ACCESSのフォームなんですけど、 フォームとサブフォームがあり、サブフォームの数量の合計をフォームの合計に表示するように出来たのですが、 表示ではなく、テーブルに保存される形にしたいのですが・・。 テーブル T_(1) (1)No. (2)企業名 (3)合計 フォームのレコードソースは、T_(1)です。 今のやり方では、フォームで見ると表示されてますが、 テーブルの合計には保存されてません。 どうすればよいでしょうか? 今は、コントロールソースに、=[サブフォーム名].![テキスト名] にしています。

  • ACCESS サブフォーム レコード移動ボタンをつ

    ACCESS初心者です。 フォーム A サブフォーム B リンク親フィールド 名前 子リンク親フィールド 名前 サブフォームで表示されるレコードセレクタと移動ボタンを、フォームA上にオリジナルでボタンとテキストで下記項目を作成したいです。 作りたい項目 ボタン1 次のレコードへ移動 ボタン2 前のレコードへ移動 テキストボックス 現在のレコード/レコード数 ボタンの作成まではできましたが、イベントプロージャにどういう内容を入れたらよろしいのでしょうか

  • サブフォームのデータを保存する方法

    VBAであるフォーム上のコマンドボタンで、別のフォーム上にデータを入力し保存をするのはどういうコードになるでしょうか。入力は出来るのですが、そのまま続いて保存する方法が分かりません。 またそのフォームにサブフォームが挿入されている場合、サブフォームのデータも保存するにはどうすればいいでしょうか。 よろしくお願いします。

  • ACCESSで、メインフォームとサブフォームがあるとき・・・

    Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?

  • フォームからテーブルへの保存

    Access2000を使っていますが、初心者です。 まず、フォームを作成し、コンボボックスでテーブル1からデータを取ってきて表示させています。そのコンボボックスに表示させているデータをテーブル2に保存したいのです。 コントロールソースで指定するとコンボボックスからテーブル1のデータを選択できません。これは何がおかしいのでしょうか。そもそもテーブル1のデータをフォームからテーブル2に保存するということはできないのでしょうか。保存させる方法がありましたら教えて頂けませんでしょうか。 困っております。できれば分かり易く教えて頂けないでしょうか。

  • Accessのサブフォーム

    教えてください。 フォームの中にサブフォームを作っているのですが(入力用の)、 サブフォーム内のテキストボックスは、1件目のデータと新規レコード が表示されています。 この新規レコードのテキストボックスを表示しない方法はありますか? 2件目以降のデータ(新規レコード)を入力する際は「追加」の コマンドボタンを使用して、その都度、新規レコードを表示させたい のです。 よろしくお願いします。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。