新生活を充実させるための「こだわり」を取材!!

半角で入力すべきフィールドの中に全角文字が混在している時に、
この全角文字が混在しているデータを、クエリーで抽出する方法を
教えてください。

データ型はテキストで、フィールド長は50です。
また入力されているデータは、任意<50文字とないっています。

教えて!goo グレード

A 回答 (3件)

StrConv([列名],128)でANSI文字に変換すれば半角文字が1バイトに変換されるので判定が出来るようになります。



クエリでしたら
IIf(LenB([列名])=LenB(StrConv([列名],128)),True,False)
で列にTrue、Falseが返ってくるようになりますので抽出条件を設定すればいいですね。
    • good
    • 3
この回答へのお礼

ありがとうございます。
無事解決する事ができました。
(左側の条件は、Len([項目1]ですよね?)

お礼日時:2005/12/07 12:23

えっと、気になるお礼が付いていたので、確認していただきたいのですが・・・。



> unicodeの場合、半角文字も2バイトとなっている為
> 抽出出来ないのでしょうか?

Acc98以前の場合、テーブルのテキストフィールドはS-JISだった記憶があるのですが・・・。フィールド長50で全角50文字入りますか?確か全角25文字半角50文字だったと覚えがあるのですが・・・。

Acc2000以降がUnicode化されたはずです。
    • good
    • 0
この回答へのお礼

はじめまして。
確認したところ御指摘の通り、アクセス95でフィールド長50の時の全角文字の入力は25文字まででした。
私も普段はアクセス2000を使っていますので、全角の抽出に失敗した時に、unicodeだから?と疑ってしまいました。
憶測で話をしてしまい申し訳ありませんでした。

お礼日時:2005/12/07 16:03

Len([フィールド名])<>Lenb([フィールド名])


とか
[フィールド名]<>Strconv([フィールド名],8)
でできませんか?

あとAccess95なら定型入力で半角だけに文字制限できたと思いましたが...
テーブルやフォームで定型入力の欄でF1キーを押して確認してください。
    • good
    • 1
この回答へのお礼

早速の書き込みありがとうございます。

どちらも試してみたのですが抽出できませんでした。
unicodeの場合、半角文字も2バイトとなっている為
抽出出来ないのでしょうか?

お礼日時:2005/12/07 11:24

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

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

教えて!goo グレード

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

人気Q&Aランキング