プロが教える店舗&オフィスのセキュリティ対策術

日付/品番/出庫数のフィールドで構成された「明細テーブル」があります。
「日付」フィールドからなるメインフォーム、「品番/出庫数」からなるサブフォームをつくり、メインフォームのサブフォームコントロールのレコードソースを「サブフォーム」に指定しました。

日付を入れるとその日の出庫明細がサブフォーム上に表示されるのですが、このレコード件数をメインフォーム上のコントロールで表示したいのです。

サブフォームのヘッダにテキストボックスコントロールを作り「=Count([品番])」としてやれば、「サブフォーム上での」件数表示は出来るのですが、同じ式をメインフォーム上のコントロールに記述すると、「全レコードの件数」が表示されてしまいます(当たり前ですが)
そこで、「=Count([埋め込み].Form![品番])」とやってみました。ここで「埋め込み」とはメインフォーム上のサブフォームコントロールの名前です。
結果は「#Error」となってしまいます。Count関数だけでなくSum関数などでも同様の結果となります。
はっきりいって「サブフォームのヘッダに表示させればいいじゃないか」というところなのですが、「式ビルダ」ではサブフォームのコントロール名も容易に参照できるようになっており、なにか方法があるのではないか、初歩的なところでつまずいていないか、と思案している次第です。
なにかアドバイスいただけたら幸いです。

A 回答 (2件)

サブフォームのフッタに『件数』というテキストボックスを作り


ソースに =Count(*) とします。

普通のフォームとして作り、[規定のビュー]をデータシートにすればデータシートのサブフォームになりますから、フッターを追加しても問題はなく

メインフォームにテキストボックスを作り
=NZ([サブフォーム名].[Form]![件数])
という具合にサブフォームの「件数」を参照すれば良いです。

参考になれば幸いです
    • good
    • 0
この回答へのお礼

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

k_ebaさんの式で上手くいきました。ありがとうございました。

お礼日時:2002/03/13 21:51

AccessVBAでTblの件数を取得すると↓


1.Mainフォームにテキストボックスを1つ作って下さい。名前は「txt1」
2.デザインフォームのプロパティのイベントで「開く時」の右にある
「...」3点リーダーをクリックし、コードビルダを選択します。
3.コードビルダが開いたら ツール→参照設定→Microsoft DAO 3.6
Object Libraryにチェックを付けて下さい。
下記の点線の部分を↓にカット&ペースト


Private Sub Form_Open(Cancel As Integer)
●●●←ここにカット&ペースト
End Sub

'---------------------------↓
Dim db1 As Database '変数宣言
Dim rs1 As Recordset
Dim aCnt As Integer

'総件数の取得
aCnt = 0
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("T_全件")
If rs1.EOF Then '1件も存在しない場合はエラー
Msgbox("T_全件テーブルに該当データは存在しません。")
Exit Sub
End If
rs1.MoveLast
aCnt = rs1.RecordCount
Me.txt1.Value = aCnt  'テーブルの合計値をTxt1に表示する。
rs1.Close
db1.Close
'----------------------------↑
説明が必要であれば追記してください。(暇なときに返事します)

この回答への補足

詳細な回答いただきありがとうございました。

>Set rs1 = db1.OpenRecordset("T_全件")
この"T_全件"のところにレコードソースとなるテーブル名を入れるのだと思いますが、実行したところ、テーブルのすべてのレコード数が表示されてしまいました。

サブフォームに表示されているレコード件数だけを取得したかったのですが……。

しかしこのコードを使えばレコードソース以外のテーブルからも値を取得することが出来ますね。今後の参考になりそうです。

補足日時:2002/03/13 21:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A