アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスのクエリの抽出条件で、「1文字以上」とする方法を教えてください。

抽出条件をビルドで作ってみたのですが、
勝手にダブルコーテーションがついてしまいます。

1文字以上の値はあるのに何も抽出されません。

sql文は
SELECT [テーブル1].[フィールド1]
FROM テーブル1
WHERE ((Len([テーブル1]![フィールド1])>"1"));

となっています。
ご教授よろしくお願いします。

「アクセスのクエリ 1文字以上を抽出」の質問画像

A 回答 (1件)

【要旨】


「1文字以上」の場合、以下のSQLで取得できます:

Select [テーブル1].[フィールド1]
From テーブル1
Where (Len([テーブル1].[フィールド1])>=1);


【詳細】
念のためですが、「一文字以上」の場合は「>1」ではなく
「>=1」になります(汗)

それはともかく・・・
対象フィールドの文字数を抽出条件に使用する場合、
クエリのデザインビューでは、『フィールド』欄にフィールド
ではなく文字数評価式(Len関数)を、『抽出条件』に
文字数を、それぞれ記述します。


SQL文では以下の通りです:

<文字数表示が必要な場合>
Select [テーブル1].[フィールド1], Len([テーブル1].[フィールド1]) As 文字数
From テーブル1
Where (Len([テーブル1].[フィールド1])>=1);

<文字数表示が不要の場合>
Select [テーブル1].[フィールド1]
From テーブル1
Where (Len([テーブル1].[フィールド1])>=1);

または、Access上で「0以外」は「条件を満たしている」
と判断されることを利用して、

Select [テーブル1].[フィールド1]
From テーブル1
Where (Len([テーブル1].[フィールド1]));

と、「>=1」を省略してもOkです。


なお、「1文字以上」(=空ではない)という条件で、
文字数の表示も不要な場合は、以下のようにしても
ご希望の結果が得られますので、併せて参考まで:

Select [テーブル1].[フィールド1]
From テーブル1
Where (Nz([テーブル1].[フィールド1],"") <> "");
「アクセスのクエリ 1文字以上を抽出」の回答画像1
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/12 23:18

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A