- ベストアンサー
Access2007 DoCmd.ApplyFilterについて
お世話になっております。 このように書けばコード1のみが抽出されますが、1以上にしたい場合はどのように書けば良いのでしょうか。 (0以外を指定したいと思います) DoCmd.ApplyFilter , "(コード Like '1')" ご教授いただければ幸いです。よろしくお願いいたします。
- みんなの回答 (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件でもあった場合はエラーとなり、上記の式では検索できません。
お礼
ご解答をありがとうございました。 おかげさまでできました!テキスト型も勉強になりました。 ありがとうございました。