お世話になっております。
このように書けばコード1のみが抽出されますが、1以上にしたい場合はどのように書けば良いのでしょうか。
(0以外を指定したいと思います)

DoCmd.ApplyFilter , "(コード Like '1')"

ご教授いただければ幸いです。よろしくお願いいたします。

A 回答 (1件)

> 1以上にしたい場合はどのように書けば良いのでしょうか。


> (0以外を指定したいと思います)

「コード」フィールドのデータ型が、「数値型」か「テキスト型」かによって、
式が若干変わります。
(なお、上記の質問文から、負の数および小数のコードはないと判断)

【数値型の場合】
 DoCmd.ApplyFilter , "コード > 0"
または
 DoCmd.ApplyFilter , "コード >= 1"

【テキスト型の場合】
 DoCmd.ApplyFilter , "CLng(コード) > 0"
または
 DoCmd.ApplyFilter , "CLng(コード) >= 1"

なお、万が一Null(空白)のデータがある場合は、それを表示しないなら
 DoCmd.ApplyFilter , "CLng(Nz(コード, 0)) > 0"
表示するなら
 DoCmd.ApplyFilter , "CLng(Nz(コード, 1)) > 0"
とします。
(CLng関数は指定したデータの型を長整数型に、
 Nz関数は1番目に指定したデータ(上では「コード」)を、2番目に指定
 したデータ(上では「0」や「1」)に、それぞれ変換する関数です)


※データ型がテキスト型で、数値(長整数型)に変換できないデータが
  1件でもあった場合はエラーとなり、上記の式では検索できません。
    • good
    • 0
この回答へのお礼

ご解答をありがとうございました。
おかげさまでできました!テキスト型も勉強になりました。
ありがとうございました。

お礼日時:2009/05/20 11:17

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


人気Q&Aランキング