[リストへもどる]
一括表示

投稿時間:2004/08/03(Tue) 16:31
投稿者名:のんちゃん
Eメール:
URL :
タイトル:
文字コードについて
文字コードについて質問があります。

VBで
  if "イド" < "イトウ" then
    msgbox "stop 1"
  else
    msgbox "stop 2"
  endif
とすると"stop 2"が返ってくるのですが
Accessのクエリーで
SELECT テーブル1,フィールド1 FROM テーブル1 WHERE (((テーブル1,フィールド1)<"イトウ"));
とするとデータがヒットしてきてしまうんです。
ということは半角カナの濁点が"ウ"より前ってこと

文字コード表とかで見ると半角カナの濁点は"ウ"よりあとになっているはずなのに
でもACCESSだと逆になっているような、どなたかACCESSでの半角カナの濁点の扱いを
ご存知の方いませんか?

投稿時間:2004/08/03(Tue) 16:37
投稿者名:のんちゃん
Eメール:
URL :
タイトル:
Re: 文字コードについて
すみません、文中の"イトウ","イド"は半角カタカナです。
ACCESSのテーブル1のフィールド1はテキスト型で"イド"という文字列が
1件だけ入力されています。

投稿時間:2004/08/03(Tue) 16:48
投稿者名:とろ
Eメール:
URL :
タイトル:
Re^2: 文字コードについて
Visual Basic の場合、頭に

Option Compare Text
Option Compare Binary

それぞれを付けた場合の結果を見れば、多少理解できるかも

投稿時間:2004/08/03(Tue) 22:31
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: 文字コードについて
> 文字コードについて質問があります。
今回の件は、文字コードの並びとは関係が無かったりします。

> Accessのクエリーで
> SELECT テーブル1,フィールド1 FROM テーブル1 WHERE (((テーブル1,フィールド1)<"イトウ"));
> とするとデータがヒットしてきてしまうんです。
それは、Jetの仕様です。

文字列の比較については、Collation Order (照合順序) という物によって決定されています。
これは、mdbファイルの作成時に指定できます。
(Access の場合は、[ツール]-[オプション]の全般タブにある「並び順序」の欄です)

> 文字コード表とかで見ると半角カナの濁点は"ウ"よりあとになっているはずなのに
文字コード順ではなく、辞書順で並び替えられる事になります。
(照合順序が日本語になっている場合、大文字と小文字、カタカナとひらがなは同一視されます)

詳細は、以下のトピックを参照してみてください。

Access 97の場合: ヘルプの[キーワード]タブで、『日本語並べ替え規則』を検索
Access 2000/2002: ヘルプの[質問]タブで、『日本語の並べ替え順序について』を検索

> でもACCESSだと逆になっているような、どなたかACCESSでの半角カナの濁点の扱いを
> ご存知の方いませんか?
これらを参考にして見てください。

『MS Access Japanese Collation Order』 - [MS ACCESS 95/97 の美しいソート順]
http://www.asahi-net.or.jp/~ez3k-msym/comp/acccoll.htm

『[ACC2000] 五十音順の並べ替え規則について』
http://support.microsoft.com/default.aspx?scid=kb;ja;417139


なお、厳密に区別したい場合は、このような方法もあります。
http://www.naboki.net/access/heaven/heaven_10.html

投稿時間:2004/08/04(Wed) 17:28
投稿者名:のんちゃん
Eメール:
URL :
タイトル:
ありがとうございました
とろさん、魔界の仮面弁士さん
ご回答ありがとうございました
引き続き調べてみます。