• ベストアンサー

クエリーで、全角混じりデータの抽出[access95]

半角で入力すべきフィールドの中に全角文字が混在している時に、 この全角文字が混在しているデータを、クエリーで抽出する方法を 教えてください。 データ型はテキストで、フィールド長は50です。 また入力されているデータは、任意<50文字とないっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.2

StrConv([列名],128)でANSI文字に変換すれば半角文字が1バイトに変換されるので判定が出来るようになります。 クエリでしたら IIf(LenB([列名])=LenB(StrConv([列名],128)),True,False) で列にTrue、Falseが返ってくるようになりますので抽出条件を設定すればいいですね。

maboten
質問者

お礼

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

その他の回答 (2)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

えっと、気になるお礼が付いていたので、確認していただきたいのですが・・・。 > unicodeの場合、半角文字も2バイトとなっている為 > 抽出出来ないのでしょうか? Acc98以前の場合、テーブルのテキストフィールドはS-JISだった記憶があるのですが・・・。フィールド長50で全角50文字入りますか?確か全角25文字半角50文字だったと覚えがあるのですが・・・。 Acc2000以降がUnicode化されたはずです。

maboten
質問者

お礼

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

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

Len([フィールド名])<>Lenb([フィールド名]) とか [フィールド名]<>Strconv([フィールド名],8) でできませんか? あとAccess95なら定型入力で半角だけに文字制限できたと思いましたが... テーブルやフォームで定型入力の欄でF1キーを押して確認してください。

maboten
質問者

お礼

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

関連するQ&A

専門家に質問してみよう