• ベストアンサー

Access2000 Dcountの使い方

レコードソースはフォームのOpenイベント時に設定してる非連結レポートです。 レポートフッターでの集計を行いたいのですが、まず、1)Dcountでいいのかどうか、2)Dcountの使い方、をおしえてください。 【実現したいこと】レコードソースのフィールドには1~5の数値がランダムに入っている。レポートのフッターにテキストボックスを5個追加して、それぞれにそのフィールドのレコードセット全体での5の数、4の数・・・、を表示したい。 AccessのヘルプでDcountを調べたのですが、引数の意味がまったく???なのです。よろしくお願いします。

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

  • ベストアンサー
  • harumimi
  • ベストアンサー率46% (51/109)
回答No.2

>レコードソースはOPENイベントのSQLで書いているの ですね? DCountではクエリ又はテーブルを指定するしかないので、このパターンでは使用できない かもしれないですね。 もし、クエリーを使用して良いのであればレポートのopenイベントで作成している SQL文をクエリーにセットして見てはいかがでしょうか? まず、"Q_クエリ"と言う名前でクエリーを作成しておき、レポートのレコードソースで"Q_クエリ"を選択します。 (このときQ_クエリの中身はなんでも良いです。) Private Sub Report_Open(Cancel As Integer) Dim qd_Query As QueryDef Dim strSQL As String Set qd_Query = CurrentDb.QueryDefs("Q_クエリ") strSQL = "SELECT テーブル.* FROM テーブル;" qd_Query.SQL = strSQL End Sub 先程の [テキスト1]のコントロールソースに = DCount("フィールド名", "Q_クエリ", "フィールド名 = 1") とすれば出るのではないでしょうか? こんな感じしか思いつきませんでした。

raly-raly
質問者

お礼

とっても参考になりました。 クエリーとして作成されていることが必要なんですね。 今日、会社でためしたら、うまくいきました!

その他の回答 (1)

  • harumimi
  • ベストアンサー率46% (51/109)
回答No.1

DCount で大丈夫だと思います。 方法としては、 レポートのレポートフッターにテキストボックスを5つ作成します。 ここでは名前を、[テキスト1][テキスト2]・・・とします。 [テキスト1]のコントロールソースに、 = DCount("フィールド名", "レコードソース名", "フィールド名 = 1") と書きます。 [テキスト2]以降は3番目の引数の = 1 を、それぞれの数に変更します。 DCountの引数の意味は、例の通りです。 質問の意味をはき違えていたらごめんなさい。

raly-raly
質問者

補足

回答ありがとうございます。 引数の意味はわかりましたが、"レコードソース名"の部分でハマッています。前述したように、レコードソースはOPENイベントのSQLで書いているので、それを参照できる名前がないのです。 その部分を"[Reports]![レポート名]"としてみましたが、どうもうまくいきません。。。

関連するQ&A