• ベストアンサー

vba DCount

アクセスです。 int数 = DCount("[番号]", "Q内容", "[画像のパス]" <> Empty) このコードはおかしいですか? クエリQ内容の中の、画像のパスフィールドがないレコードの数をカウントしたいのですが、 実際は、画像のパスフィールドがEmptyではない数は、30件あるのに、 上記のコードを通すと、Q内容の全てのレコードの件数が返ります。 何故でしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

質問者は、データの入力されていないフィールドのレコードを考えていて、EmptyではなくNullで判別するのでは、ないですか。  cntMax = DCount("*", "Table1", "IsNull([Name])") の第3引数のような。 <-http://bytes.com/topic/access/answers/924170-trouble-counting-blank-records-dcount-function =DCount("*","New Part Tracking","[Sample In] Is Not Null And [Sample out] Is Null") <-http://www.utteraccess.com/forum/Dcount-Null-Null-Values-t1974003.html など参考になりませんか。 >画像のパスフィールドがない、の意味が十分理解できないのですが、参考に。 >"[画像のパス]" <> Empty の「Criteria」に当たる引数で、Emptyが” ”の外に出ているのは、関数の引数で、文字列での指定が要求されている場合(これが結構多い)形式的に不自然な指定と思う。うまく行かない時は、疑ってWEBででも調べるべき。

kphekgqpcoyf
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

Variant型の変数のチェックとかでは使用しますが、 未入力を抽出するのにEmptyは使わないでしょう。 また int数 = DCount("[番号]", "Q内容", "[画像のパス]" <> Empty) Criteriaの外側に <> Empty を出してしまっているので式としても?です。 見た目に空白の場合(未入力など)はNullか否かでチェックします。 ただしフィールドのデザインで「空文字列の許可」が「はい」になっていると ""(長さ0の文字列)が格納されている場合もあります。 https://support.microsoft.com/ja-jp/kb/883247 なので int数 = DCount("[番号]", "Q内容", "IsNull([画像のパス]) or [画像のパス]=""""") int数 = DCount("[番号]", "Q内容", "[画像のパス] is null or [画像のパス]=""""") とか・・・。

kphekgqpcoyf
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A