• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい)

メインフォームでサブフォームのレコード件数をカウントする方法

k_ebaの回答

  • ベストアンサー
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.2

サブフォームのフッタに『件数』というテキストボックスを作り ソースに =Count(*) とします。 普通のフォームとして作り、[規定のビュー]をデータシートにすればデータシートのサブフォームになりますから、フッターを追加しても問題はなく メインフォームにテキストボックスを作り =NZ([サブフォーム名].[Form]![件数]) という具合にサブフォームの「件数」を参照すれば良いです。 参考になれば幸いです

k_o_j_i
質問者

お礼

これはすでに試していたのですが…… 「コードビルダ」で作成した式では([サブフォーム名].フォーム![件数]) と 「Form」が「フォーム」(実際は半角カナ)になっていました(なぜ・・・?) k_ebaさんの式で上手くいきました。ありがとうございました。

関連するQ&A

  • サブフォームのRecordSourceの件数を取得したい

    <環境>access2007、db:sqlserver2005 メインフォームに日付のテキストボックスがあり、その日付に一致したデータをサブフォームに表示しています。 メインフォームのOPEN時処理 Set FM = Forms![FTop] Set FS = Forms![FTop]![FTop_sub].Form FS.RecordSource = "select * from aaa where day = '"& fm!day &"'" この時、RecordSourceにセットしたデータの件数を取得したいのですが、 サブフォームのフォームヘッダーにテキストボックスを配置して、 そのコントロールソースを =Count(*) としました。 しかし、"#エラー"と表示されてしまいます。 サブフォームは"帳票フォーム"です。 どこが悪いのか困っています。どなたかご教授お願いします。

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • Accessのメインフォームとサブフォームの使い方について

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?

  • サブフォームの値をメインフォームで表示

    Accessのサブフォームの値をメインフォームで表示する方法をお教え下さい。 画像にありますように、各コントロールは以下になります。 http://upload.fam.cx/cgi-bin/img-box/th6120120093700.jpg MAIN_FORM1(このフォーム) subform_1(サブフォーム) combo1(コンボボックス) textbox1(テキストボックス) subform_1はクエリオブジェクト、「Q_月報」を呼び出し、以下のSQLでできています。 -------------------------------------------------------------------------------------------------- SELECT Format([伝票日付],"yyyy-mm") AS 月, 出庫テーブル.商品番号, 商品マスタ.商品名, Sum(出庫テーブル.数量) AS 数量の合計 FROM 出庫テーブル INNER JOIN 商品マスタ ON 出庫テーブル.商品番号 = 商品マスタ.商品番号 WHERE (((Format([伝票日付],"yyyy-mm"))=[Forms]![月報]![リスト2])) GROUP BY Format([伝票日付],"yyyy-mm"), 出庫テーブル.商品番号, 商品マスタ.商品名; -------------------------------------------------------------------------------------------------- MAIN_FORM1には下記のVBAコードが書かれています。 -------------------------------------------------------------------------------------------------- Private Sub リスト2_Click() Me!月報サブフォーム.Requery End Sub -------------------------------------------------------------------------------------------------- MAIN_FORM1を開き、コンボボックスにある日付を選択すると、日付をキーにサブフォームでrequeryされるようになっています。 わからない点は、MAIN_FORM1にtextbox1に、サブフォームの「数量の合計フィールド」の合計を表示したいと思います。 textbox1のコントロールソースに、「=Sum([Forms]![月報サブフォーム]![数量の合計])」をやりましたが、うまく表示ができません。エラーと表示されます。どのように注文フォームに表示されている、「数量の合計フィールド」の合計をテキストボックスに表示できるでしょうか?

  • ACCESS2000のメインフォームサブフォーム間の移動

    Access2000でメインフォームの中に詳細を確認/入力するためのサブフォームを作成しています。 メインフォームの中のコントロールを最後まで入力(enterで移動)していくと、メインフォームの最後のコントロールの次はサブフォームの最初のコントロールに移動します。(これは普通ですよね?) サブフォームはデータの詳細によっては1レコードで終わるものもありますし、複数レコードにわたるものもあります。 サブフォームの入力が終了したときに、キー操作でメインフォームの次のレコードの頭のコントロールに移動する事はできますか? マクロをAccessの方から設定するくらいならできるのですが、自分でSQLをうんぬんする知識はありません。 よい方法があったら教えてください。

  • アクセスのサブフォームからメインフォームへキーで切り替えをする

    何度もお世話になっております。m(_ _)m アクセスのフォームで、サブフォームを作成しています。 EnterキーまたはTabキーで、フォームの中を進んでいくと、メインフォームのフィールドからサブフォームのフィールドへ進みます。 この進む順番は、タブオーダーで設定できるので問題ないのですが、 サブフォームの情報を入力し終えて、メインフォームへカーソルを飛ばしたい場合、どうすればいいのでしょうか? そのままEnterやTabを押しても、サブフォームの中の新規レコードが追加されるだけです。 自分でキーなどを設定できるのであれば、なおさら良いのですが・・・ とりあえず、基本的な操作方法として、サブフォームからメインフォームへ移るキーを教えてほしいです。 よろしくお願いします。

  • ACCESSのメインフォームとサブフォームについて

    ACCESSで、受注伝票のようなものを作成したいと思っています。受注伝票フォームに受注明細のサブフォームを埋め込んだようなフォームを作ろうとしています。その際、受注伝票と明細に受注コードのフィールドを設け関連づけたいのですが、メインフォームに受注コードを入力したらサブにも同じコードが自動的に振られるようなことはできるのでしょうか。 出来ないのであれば、どのように作ればよいのでしょうか。

  • メインフォームとサブフォームのレコードを複製

    (昨日同じ質問をあげましたがカテゴリが間違っていたのでこちらにあげなおしました) メインフォーム「MAIN」にサブフォーム「REN」を埋め込んでいます。 【メインフォームMAIN】 テーブル名:JIK ID:事件ID 【サブフォームREN】 テーブル名:REN ID:連絡先ID(・事件ID) ボタンをクリックすると、メインフォームで表示させているレコードを複製させたいです。 以下を参考に、そのとおり(のつもり)に作ってみたのですが (メインフォーム「MAIN」に「txtCopy事件ID」という名前のテキストボックスも作成しました) 「コマンドまたはアクション”追加貼り付け”は無効です。」 とエラーメッセージが出てしまいます。 どのように修正すればよいでしょうか? http://www.accessclub.jp/bbs3/0103/superbeg36719 … ちなみに追加クエリだけを実行すると 表示させているメインフォーム「MAIN」のレコードに、 サブフォーム「REN」のレコードが追加され、 サブフォーム「REN」のレコードが2倍になりました。 以下追加クエリとコードです。 【追加クエリ】 INSERT INTO REN ( 事件ID, 氏名, フリガナ, ・・・ ) SELECT [Forms]![MAIN]![事件ID] AS 式1, REN.氏名, REN.[フリガナ], REN.報告書, ・・・ FROM REN WHERE (((REN.事件ID)=[Forms]![MAIN]![txtCopy事件ID])); 【VBA】 Private Sub 明細コピー_Click() On Error GoTo Err_明細コピー_Click Me!txtCopy事件ID = Me!事件ID DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append Dim stDocName As String DoCmd.SetWarnings False ' システムメッセージ非表示 stDocName = "追加クエリ" DoCmd.OpenQuery stDocName, acNormal, acEdit DoCmd.SetWarnings True ' システムメッセージ表示 ' サブフォーム再クエリ Me!REN.Requery Exit_明細コピー_Click: Exit Sub Err_明細コピー_Click: MsgBox Err.Description Resume Exit_明細コピー_Click End Sub よろしくお願いいたします!

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

  • Access2000メインサブフォームでのレコード移動

    Access2000でデータベースを作っている中で、メイン/サブフォームを使用しています。 メインフォームで次レコードへ移動しようとすると、レコードNOは移動しているのですが、データ内容が変わりません。 私の予想なのですがサブフォームにあるレコードの数だけ、(メインフォームの)同一レコードの内容が表示されているようです。 ・次レコードへの移動はフォーム一番下の、デフォルトでついてるレコード移動のボタンを押しました。 ・(メインフォ-ムの)テーブルにはKeyを設定してあり、同じデータは存在していません。 以上ですが、不明な点がありましたらお知らせください。 もしお分かりになる方がおられたらお教えください。よろしくお願いいたします。