• ベストアンサー

DCount 0が返ります。

アクセスvbaで テーブルで該当の文字を抽出後のレコードの数を取得するしたいのですが 数 = DCount("[番号]", "T全て", "[分類] = '" & str分類 & "'") 数 = DCount("*", "T全て", "[分類] = '" & str分類 & "'") どちらも0が返ります。 str分類には、分類フィールドに必ず存在する文字列が入っています。 手作業でテーブルにフィルタをすると ちゃんとレコード数が見えるのですが DCountの何が間違ってるのでしょうか?

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

  • ベストアンサー
回答No.1

あるハズなのに0が返って来る時の str分類 の値、 ヒットするハズのフィールドの値 の具体例をどうぞ。 = 演算子(完全一致)ではなく Like 演算子を使えば良さげかも?

weltpzltp
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

回答No.2

Q、DCountの何が間違ってるのでしょうか? A、変数<str分類>の値が適切に設定されていない。 × 数 = DCount("*", "T全て", "[分類] = '" & str分類 & "'") ○ MsgBox DCount("*", "T全て", "分類='xxxxx'") & ":" & str分類 でテストあるのみ。

weltpzltp
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • DCount 型が一致しません。(Error13)

    アクセスVBAです。 テーブルで 2016年から始まるレコードの数を数えようと Debug.Print DCount([フォルダ名], "フォルダ名", "[フォルダ名] = '2016年*'") としたのですが、 型が一致しません。(Error13) になります。 レコードに該当文字が含むレコード数を取得するの方法を教えてください。

  • DCountはそんなに負荷がかかるのでしょうか?

    アクセス2010です。 テーブルは10000レコードあり そのレコードをVBAでループしているのですが そのループの中にDCountで数を取得するコードを入れると 凄く動きが遅くなります。 フリーズして応答なしになります。 DCountはそんなに負荷がかかるのでしょうか?

  • フィルタ後のテーブルのレコード数を取得したい

    アクセスvbaです。 フィルタ後のテーブルのレコード数を取得したいのですが Debug.Print DCount("[フィールド1]", "テーブル1") だと、フィルタ前の数が取得されてしまいます。 フォーム1にテーブル1を紐付けて、 更にフィルタをしているのですが、 元のテーブル1のレコード数が10として、 フィルタ後が3なら、3を取得するVBAコードを教えてください。

  • DCountでテーブルのレコード件数を取得するには

    アクセスのテーブル1に何件レコードがあるかをvbaのDCountで取得したいのですが Sub a() MsgBox DCount("テーブル1") End Sub すると、引数は省略できません。(Error 449)になります。 フィールドは件数あり、レコードが入ってたり入ってなかったりするし、主キーはありません。 アクションクエリの削除クエリですべてのレコードを削除したりするので レコード件数が0件なのか、レコードがはいってるかをDCountで取得できればなー と思うのですが、どうすればいいでしょうか?

  • Access2000 Dcountの使い方

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

  • フィルタ後のフォームの件数の取得の仕方

    あくせすです。 テーブルを元にフォームにデータを表示させているのですが 元データのテーブルのレコード数が100件だとして 今フォーム上で手作業でフィルタをかけて表示しているレコード数が20件だとしたら、 この20件と言う数をVBAで取得する方法を教えてください。 DCountだと、元テーブルの全てのレコード数(フィルタ前)が取得されてしまいます。

  • アクセス2007 VBAで抽出の一部解除

    超初心者ですが、よろしくお願いします。 アクセスのVBA で2つのフィールド(文字列)にフィルタをかけて抽出するようにしています。その際、1つのフィールドのフィルタのみを外したいのですがうまくいきません。ワイルドカード%を代入するとフィルタすべてが効かなくなってしまいます。また、" "を代入すると何も表示されません。どのようにしたらうまくいくのでしょうか。ご教示よろしくお願いします。

  • adoのWHERE句 クエリだとフィルタされない

    エクセルvbaなのですが、 adoのWHERE句は、テーブルじゃないとダメなのでしょうか? と言うのも、 rs.Open "Q_カテゴリ WHERE 分類 like '%A%'" だと、エラーにならないのですが、抽出もされずに全レコードが対象になってしまいます。 しかし、 rs.Open "T_カテゴリ WHERE 分類 like '%A%'" にすれば、抽出された後のレコード数が取得されます。 エラーにならない事から、オブジェクトは存在してる事は確かなはずですが なぜかフィルタできません。 なぜでしょうか?

  • レコードの文字列をフィールド抽出のクエリとして指定

    レコードの文字列として リンゴ ミカン イチゴ となっていたときに、この3つを別のテーブルにあるフィールド名のリンゴ、ミカン、イチゴのみを抽出するクエリをVBAで指定できますか?

  • Dcountの条件文について(ACCESSのレポート機能)

    日報レポートを作成中ですが、テーブル内の複数のフィードを指定して、絞込抽出して、該当のレコード数を返したいのですが、エラーが表示されてうまくいきません。エラーが表示されるのは、レポート上の該当のレコード数を表示させるテキストボックスです。 テキストボックスのコントロールソースには以下のような記述をしています。 =DCount("[ステータス]+[シート有無]","[抽出クエリ]","[ステータス]='受注' Or [ステータス]='失注' Or [ステータス]='検討中'" And "[シート有無]=Yes") コントロールソース上での記載ではエラーは出ませんが、レポートを実行させると、テキストボックス上にエラーが出てしまいます。 Webでいろいろ調べて見ましたが、原因がどうしても分かりません。 どなたかサポートしていただければ幸いです。

専門家に質問してみよう