- ベストアンサー
クエリーで、全角混じりデータの抽出[access95]
半角で入力すべきフィールドの中に全角文字が混在している時に、 この全角文字が混在しているデータを、クエリーで抽出する方法を 教えてください。 データ型はテキストで、フィールド長は50です。 また入力されているデータは、任意<50文字とないっています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
StrConv([列名],128)でANSI文字に変換すれば半角文字が1バイトに変換されるので判定が出来るようになります。 クエリでしたら IIf(LenB([列名])=LenB(StrConv([列名],128)),True,False) で列にTrue、Falseが返ってくるようになりますので抽出条件を設定すればいいですね。
その他の回答 (2)
- Dxak
- ベストアンサー率34% (510/1465)
えっと、気になるお礼が付いていたので、確認していただきたいのですが・・・。 > unicodeの場合、半角文字も2バイトとなっている為 > 抽出出来ないのでしょうか? Acc98以前の場合、テーブルのテキストフィールドはS-JISだった記憶があるのですが・・・。フィールド長50で全角50文字入りますか?確か全角25文字半角50文字だったと覚えがあるのですが・・・。 Acc2000以降がUnicode化されたはずです。
お礼
はじめまして。 確認したところ御指摘の通り、アクセス95でフィールド長50の時の全角文字の入力は25文字まででした。 私も普段はアクセス2000を使っていますので、全角の抽出に失敗した時に、unicodeだから?と疑ってしまいました。 憶測で話をしてしまい申し訳ありませんでした。
- mshr1962
- ベストアンサー率39% (7417/18945)
Len([フィールド名])<>Lenb([フィールド名]) とか [フィールド名]<>Strconv([フィールド名],8) でできませんか? あとAccess95なら定型入力で半角だけに文字制限できたと思いましたが... テーブルやフォームで定型入力の欄でF1キーを押して確認してください。
お礼
早速の書き込みありがとうございます。 どちらも試してみたのですが抽出できませんでした。 unicodeの場合、半角文字も2バイトとなっている為 抽出出来ないのでしょうか?
お礼
ありがとうございます。 無事解決する事ができました。 (左側の条件は、Len([項目1]ですよね?)