• ベストアンサー

Accessフィールド名でひらがな、カタカナの区別

Accessのクエリは、フィールド名のひらがな、カタカナを区別しないのでしょうか? こんなことがありました。 VBAのプログラム(クエリ)側ではフィールド名[ひらがな]を指定している箇所で、実際のフィールド名は[ヒラガナ]であり、異なっていることに気づきました。 しかしエラーを出力せずに動作していました。テーブルを見ると、希望通りにデータは格納されていました。 問題個所のクエリと対象のフィールド名は統一する予定ですが、 この動作がMicrosoftの仕様なのか、たまたま動作しているのか、そんなことは無いのか、 ちょっと気になったので質問させて頂きました。 宜しくお願い致します。

  • jobvba
  • お礼率60% (166/274)

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

http://support.microsoft.com/kb/404985/ja http://65.54.166.122/kb/883013/ja?spid=1266&sid=1270 Accessの仕様なのでしょう。 テーブルのフィールド名をヒラガナとし、 コードから rs!ひラがナ でもテーブルのフィールドを呼び出しますし、 ついでに、プロシージャ名を funcああ で登録して、 funcアア でも呼び出せてしまいます。 たとえば、 テーブル1のフィールド名を、名前、ヒラガナ として、 Sub funcああ() Dim db As Database Dim rs As Recordset Set db = CurrentDb Set rs = db.OpenRecordset("テーブル1") Do Until rs.EOF Debug.Print rs!名前 Debug.Print rs!ひラがナ rs.MoveNext Loop End Sub として、イミディエイトウィンドウで、 funcアア として実行してもデータを表示します。

jobvba
質問者

お礼

テーブル名、まさか関数もひらがなとカタカナを区別しないのは知りませんでした・・・ 回答ありがとうございました!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(1)一般論としては両者は文字コードが違うので違うはずです。 (2)プログラム言語一般論として、両者を同一として扱う仕組みにすることもありえます。 プログラム関係ではないが、エクセルでもソートなどの場面で出てきたりします。 多分入力の直後の速いうちに、ソースの文字をどちらかに鞘寄せしてしまうのだと思います (3)アクセスについて、WEB照会すると直ぐ記事が見つかりました Googleででも「access ひらがな カタカナ 区別」で照会してみたものです。 http://www.relief.jp/itnote/archives/000896.php こういうことを、まずすませて、ここに質問されることをお奨めします。 ー SQLの処理系によって、使う場合に、まず確かめておいたほうが良い点だと思います。 SQLServerでも区別しないようです。WEBで沢山記事が出ます。

jobvba
質問者

お礼

回答、ありがとうございます。 データの比較につきましては、参考にさせて頂きます。

noname#192430
noname#192430
回答No.1

Accessの仕様ではないかと思われます。 試しにAccess2007のテーブル定義で「あ」「ア」の2つのフィールドを作ろうとしましたが、フィールド名が重複しているとして、はねられてしまいました。

jobvba
質問者

お礼

フィールドの作成段階で同一であると判断されてしまうのですね・・・これは試していませんでした。 参考になります! 回答ありがとうございました!

関連するQ&A

  • MSアクセス2000で英数の大文字・小文字とかな文字のカタカナ・ひらがなを区別して扱いたい

    クエリーやレホートでテキスト型フィールドに対してグルーピングなどを行う際に英数の大文字・小文字とかな文字のカタカナ・ひらがなを区別して扱いたいのですが、アクセスでは区別できないのでしょうか?オプションやプロパティなどを見ても見つかりません。 設定で区別ができないようなら、区分用のフィールドをつくって区別をしたいと考えています。その際、その区分を自動的に入力したいのです。 たとえば、Aフィールド(テキスト型)のデータを自動的に検査して(大文字・小文字やカタカナ・ひらがなに区別したい)、Bフィールドに自動的にそれを入力する方法などはありますでしょうか?

  • ひらがな、カタカナは同じ?

    アクセス2003でクエリ上にiif関数を使っています。 iif関数を使って、もしAフィールドが「あいうえお」なら○、違うなら×と入れたところ、「アイウエオ」も○となってしまいます。 ひらがなもカタカナも同じとみなされるのでしょうか? どうすれば、ひらがなのみの「あいうえお」が○となるのでしょうか? よろしくお願いします。

  • Accessです。テーブルのフィールド名変更

    初心者です。お願いいたします。 仕事で、Accessを使っています。 素人なりにそれらしいものを作って使っていたのですが、困ったことに元ととなるテーブルのフィールド名を変更しなくてはならなくなりました。 そのテーブルに関係するクエリーをたくさん作っている場合、フィールド名を変更することによって関係するクエリーも一つ一つ変更していかなくてはならないのでしょうか? テーブルのフィールド名を変更すると、関係するクエリーのフィールド名も自動的に更新できるという方法はあるのでしょうか? 初心者でスイマセン。よろしくお願いします。

  • アクセス クエリのフィールド名が勝手に変わる

    access 2010を使用しています クエリのフィールド名が[元となるクエリ名].[フィールド名]に勝手に変わってました。 このクエリはリンクテーブル(リンクする側)ひとつから作ったクエリをさらに条件で絞り込んだものです。 今はまだデータベースの開発段階で、大元となるリンク先のテーブルのデータを書き換えることも多々あります。 このフィールド名で不都合が生じるのは、このクエリをもとに作ったフォームのラベル名です。 今は手動でこの[元となるクエリ名].を消しているのですが、この原因はなんなのでしょうか? それからリンクテーブルというのはこういう問題がよくおこるのでしょうか? プロパティなどを見ても全く何がおかしいのかわからないので、どなたかご教示お願いいたします。

  • フィールド名の変更について(ACCESS)

    テーブルのフィールド名をクエリー等で変更したいのですが、(最終的にはフォームでコマンドボタン化したいのですが)ご存知の方がいらっしゃいましたら教えてください。

  • ACCESSでフィールド名の変更(VBA)

    VBAを使ってテーブルのフィールド名等を変更させたいと思います。 そういう事ってできるのでしょうか? フィールド名を作成者ではなく、利用者が設定するようにしたいと思っているのですが、どういった方法があるでしょうか? よろしくお願いします。

  • クエリ上でフィールド名が2つあるときの見分け方

    初心者です。 テーブルを複数使って、クエリを作っているのですが、 『&』でフィールドをつなごうとしたとき、 「指定されたフィールド'[会員種別ID]'がSQLステートメントのFROM句にある複数のテーブルを参照しました」 と言うエラーが出てきます。 多分これは、T_顧客リストとT_会員種別の両方に[会員種別ID]があるので区別がつかないと言う事だと思います。 (間違っていたら正しい意味を教えていただけますか?) だから、どうしたら区別できるのでしょうか?

  • ハイパーリンク型フィールドからファイルを開く

    ACCESS2007を使用しています。 まず、ハイパーリンク型のフィールドをひとつ持つテーブルAがあります。 そのフィールドには、例えば C:\My Documents\workbook1.xis というリンクが格納されています。 フォームからの条件入力により、テーブルAよりレコードが抽出されるクエリBを作りました。 そのクエリBに含まれる、レコードのハイパーリンク先のファイルを一括で開くVBAを作ろうとしたのですが、まったく方法が思いつきません。 どなたか、ご教授願えないでしょうか?

  • Access2003 クエリ フィールドの比較

    使用しているソフトはAccess2003になります。 テーブル1とテーブル2からデータ(フィールド)を表示してクエリを作成しました。 クエリのフィールド名は以下のようになります。 1、型式(テーブル1) 2、機番(テーブル1) 3、有効期限(テーブル1) 4、測定基準値(テーブル1) 5、機番(テーブル2) 6、紐づけ(テーブル2) ※ 使用者名が記載 テーブル1_機番とテーブル2_機番を比較して同じならば並び変える。 フィールドもしくは抽出条件にどのような式を記入すればよいでしょうか。 データベースソフトの扱いは初心者になります、宜しくお願いします。    

  • オブジェクト名に【】をつけること

    アクセス2003において テーブル名やクエリ名、フィールド名に 【】をつけた場合、(T【支払】テーブルなど) どういう不都合が起こりますか? (vbaでエラーになるなど) これから名前づけをするにおいて参考にさせてください。

専門家に質問してみよう