Accessのクエリは、フィールド名のひらがな、カタカナを区別しないのでしょうか?

こんなことがありました。
VBAのプログラム(クエリ)側ではフィールド名[ひらがな]を指定している箇所で、実際のフィールド名は[ヒラガナ]であり、異なっていることに気づきました。
しかしエラーを出力せずに動作していました。テーブルを見ると、希望通りにデータは格納されていました。

問題個所のクエリと対象のフィールド名は統一する予定ですが、
この動作がMicrosoftの仕様なのか、たまたま動作しているのか、そんなことは無いのか、
ちょっと気になったので質問させて頂きました。

宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

http://support.microsoft.com/kb/404985/ja
http://65.54.166.122/kb/883013/ja?spid=1266&sid= …

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アア

として実行してもデータを表示します。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/12 15:59

(1)一般論としては両者は文字コードが違うので違うはずです。


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

SQLの処理系によって、使う場合に、まず確かめておいたほうが良い点だと思います。
SQLServerでも区別しないようです。WEBで沢山記事が出ます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/12 16:04

Accessの仕様ではないかと思われます。


試しにAccess2007のテーブル定義で「あ」「ア」の2つのフィールドを作ろうとしましたが、フィールド名が重複しているとして、はねられてしまいました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/12 16:09

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qひらがなの学習で、学習が易しい→難しい順に並べた表や練習シートが欲しい

ひらがなを子どもに覚えさせたいのですが、
学習が易しい→難しい順に並べた表や練習シートが欲しいのですが、
ネットで上手く見つけられません。

もし無料教材をご存知の方がいらっしゃいましたら、
シェアして頂けると助かります。

またひらがな学習に消極的な子どもが、
ひらがな学習に意欲的になれるようなアイデアもあれば幸いです。
(現在ごほうびポイント制を検討中)

よろしくお願い致します。

Aベストアンサー

・無料教材
http://print-kids.net/print/kokugo/hiragana-rensyuu/
・難易度順
「く つ し い こ り と そ ら ね せ み ふ え は ね へ わ け き て ま た か ほ ん す れ ひ ろ う
お も ち る の な や あ さ ゆ め に を よ む」
http://1st.dtiblog.com/

Qaccess前月差分クエリ書き換えたくない フィールド1 年月日 フィールド2 商品名 レコードは月

access前月差分クエリ書き換えたくない

フィールド1 年月日
フィールド2 商品名

レコードは月次で年度単位で持ち、毎月、先月分が今月に追加されます。

毎月、前月と前々月分の商品の個数の差を計算します。

フィールド1をformat関数で年月にし、グループ化したものを、201701-201612みたいにクエリを書いて
計算させています。

まずformatが良いのかmonthが良いかも分からないのですが、毎月の差分を取るクエリを書き換えたくなく、元テーブルから計算しやすいように加工するクエリをどう持てば良いか教えて下さい。

Aベストアンサー

以前回答させていただいた
https://oshiete.goo.ne.jp/qa/9605499.html

年月から1ヵ月の期間を求めるなら
DateSerial(Year([年月]),Month([年月]),1)
DateSerial(Year([年月]),Month([年月])+1,1)-1

上は年月の1日を求める
下は年月の翌月1日を出し、その前日(-1)を求めることで末日を求めている

先月を求めるなら
DateSerial(Year([年月]),Month([年月])-1,1)
yyyymmの形にするなら
Format(DateSerial(Year([年月]),Month([年月])-1,1),"yyyymm")

先々月を求めるなら
DateSerial(Year([年月]),Month([年月])-2,1)
yyyymmの形にするなら
Format(DateSerial(Year([年月]),Month([年月])-2,1),"yyyymm")

Qひらがな練習シート

こんばんわ。

子供が保育幼稚園へ通うようになるので、そろそろひらがなの書き順や五十音をきちんとかけるように少しずつ練習させたいのですが、ネットで調べたようなただ単に『あ』『い』『う』『え』『お』があり、その横に書くようなものがあるのですが、なかなか子供が食いつかず…

好きなイラストなどを入れていきたいのですが画像のようなものをWordで作りたいのですが、どのようにやればいいのか…

アドバイスお願いします。

Aベストアンサー

http://oshiete1.goo.ne.jp/qa4849568.html

見たような質問が有ります。

QAccess2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

AとBという2つのテーブルが、全く同じフィールドを30個持っています。
AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが
[B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に
手入力する方法で現在行っています。

追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが
同様に更新クエリでもフィールド名を自動的に出す方法はありますか?
現在上記のような更新クエリを10件以上新規で作成しなければならないのですが
各件に29個も手入力で行うのが非常に面倒でなりません。
やはりSQL等で仕組んでいくようにするのでしょうか?

Aベストアンサー

作ったクエリの管理だけでも大変なものになりますね。
テーブルのフィールドが増減したら、また修正がたいへんですね。

参考までに(VBAでの処理になります:クエリは作りません)

使い方)
ボタンをクリックしたイベントなどで、以下を記述します。

  Call CopyFieldValue("A", "B", "ID")

テーブルAのフィールドを基準に、
テーブルAとテーブルBのIDが一致するものをテーブルAにコピーします。
(テーブルA/Bのフィールド名が同じだとして)

キーとなる部分に MsgBox 入れておきました。
UPDATE実行部分はコメントにしています。

ADO/ADOX での例です。
VBEのメニュー「ツール」->「参照設定」で、
 Microsoft ActiveX Data Objects 2.1 Library
 Microsoft ADO Ext. 2.8 for DDL and Security
が、参照可能となっていることを確認します。


---- 標準モジュールに以下を記述

Private Function FieldSet(TbTo As String, TbFrom As String, sFld As String) As String
  FieldSet = TbTo & "." & sFld & " = " & TbFrom & "." & sFld
End Function

Public Function CopyFieldValue(TbTo As String, TbFrom As String, TbKey As String)
  Dim catdb As New ADOX.Catalog
  Dim clm As Column
  Dim sSql As String
  Dim sTmp As String

  catdb.ActiveConnection = CurrentProject.Connection

  sTmp = ""
  For Each clm In catdb.Tables(TbTo).Columns
    If (clm.Name <> TbKey) Then
      sTmp = sTmp & ", " & FieldSet(TbTo, TbFrom, clm.Name)
    End If
  Next
  If (Len(sTmp) = 0) Then Exit Function
  sTmp = Mid(sTmp, 3)
  MsgBox "sTmp : " & sTmp

  sSql = "UPDATE " & TbTo & " INNER JOIN " & TbFrom & " ON " & _
        FieldSet(TbTo, TbFrom, TbKey) & " SET "
  sSql = sSql & sTmp & ";"
  MsgBox "sSql : " & sSql

'  CurrentProject.Connection.Execute sSql

End Function

---- ここまで

※ マクロから CopyFieldValue を呼び出したい(使いたい)場合には、
  マクロのアクション「プロシージャの実行」で指定します。

※ テーブル名/フィールド名を [ ] で囲みたい時には、
FieldSet = TbTo & "." & sFld & " = " & TbFrom & "." & sFld
 ↓
FieldSet = "[" & TbTo & "].[" & sFld & "] = [" & TbFrom & "].[" & sFld & "]"

※ テーブルBを基準とする時には、
For Each clm In catdb.Tables(TbTo).Columns
 ↓
For Each clm In catdb.Tables(TbFrom).Columns

テーブルAのフィールドを部分的に抜き出して作ったテーブルBの場合など
(テーブルBに無いテーブルAのフィールドは更新対象外に)


※ 関数名は適宜変更してください。

※ Function で作っていますが、戻り値は設定していません。

※ エラー処理は入れてません。


※※ UPDATE のSQL作成部分、以下でも動くようです。

  sSql = "UPDATE " & TbTo & " INNER JOIN " & TbFrom & " ON " & _
        FieldSet(TbTo, TbFrom, TbKey) & " SET "
  sSql = sSql & sTmp & ";"
 ↓
  sSql = "UPDATE " & TbTo & ", " & TbFrom & " SET "
  sSql = sSql & sTmp
  sSql = sSql & " WHERE (" & FieldSet(TbTo, TbFrom, TbKey) & ");"

作ったクエリの管理だけでも大変なものになりますね。
テーブルのフィールドが増減したら、また修正がたいへんですね。

参考までに(VBAでの処理になります:クエリは作りません)

使い方)
ボタンをクリックしたイベントなどで、以下を記述します。

  Call CopyFieldValue("A", "B", "ID")

テーブルAのフィールドを基準に、
テーブルAとテーブルBのIDが一致するものをテーブルAにコピーします。
(テーブルA/Bのフィールド名が同じだとして)

キーとなる部分に MsgBox 入れておきました。
...続きを読む

Qエクセルを使った文字入力練習シート

例えば、エクセルシートのA1のセルに見本となる「ひらがな」文字を表示しておき、B1セルにローマ
字入力で該当文字を入力し、スペルが正しければ○、誤りは×をC1セルに表示し、×の場合には
正しいスペルをD1に表示する文字入力練習シートを作成したいのですが、簡単な方法があれば
教えて下さい。エクセルは2007、2008です。

Aベストアンサー

A列に正解スペルを入れて、B列にその漢字を表記する。
この状態で、C列に記入させ、D列に○×を表示、×の場合だけE列に正解を表示する。
というのが簡単でしょう。

これであれば、
D列:C列とA列を『if』関数で比較して、○×を表示する。
 D2セル入力例:=IF(C2="","",IF(A2=C2,"〇","×")) 
 ※この例ではC列未記入のときのD列表示ナシです

E列:C列が×であれば、A列の内容を表示する
 E2セル入力例:=if(D2="×",A2,"")

というふうにすればいいでしょうね。

C列の入力規則を英字のみとする(『入力規則』で日本語入力をOFFに設定)。
C列以外のセルには『保護』をかけて改変できないようにする。
A列は『非表示』(列幅ゼロ)にする

とすればなおばいいですね。
それぞれ操作は『』内の語句とExcelで検索してみてください。

~~~
応用として、D1に入力規則のリストで「記入,判定」を入れ、E1に同じく「"",ギブアップ」を入れておき、普段は記入と空白を選択しておき、これらを切り替えると○×判定や正解表示が出るようにする。
 D2セル入力例:=if(D$1="判定",if(A2=C2,"〇","×"),"") 
 E2セル入力例:=if(E$1="ギブアップ",if(D2="×",A2,""),"")
とでもすればいい。
こうすれば、記入が終わってから判定し、間違えたものをやり直して全問正解にするチャンスが与えられますね。

ちなみに、〇や×の数を合計して点数を表示するなら、『SUMIF』関数を使えばいいでしょう。


~~~
なお、上記の例では1対1の対比で正解判定をしますから、回答記入に制限があります。つまりtiとchiの違い、tongaとtonngaの違い、tulaとtsaの違いなどは正答と同一でない限りは×判定されるわけです。
これを避けるなら正解の記入列を増やし、判定文を『or』で繋いでいずれかと一致すれば正解、などと手を加えていく必要があります。これは手間ですから『データベース』とする別シートを用意して、そこに書いたものを『VLookup』や『Match』関数などで検索する方法もあるでしょう。

A列に正解スペルを入れて、B列にその漢字を表記する。
この状態で、C列に記入させ、D列に○×を表示、×の場合だけE列に正解を表示する。
というのが簡単でしょう。

これであれば、
D列:C列とA列を『if』関数で比較して、○×を表示する。
 D2セル入力例:=IF(C2="","",IF(A2=C2,"〇","×")) 
 ※この例ではC列未記入のときのD列表示ナシです

E列:C列が×であれば、A列の内容を表示する
 E2セル入力例:=if(D2="×",A2,"")

というふうにすればいいでしょうね。

C列の入力規則を英字のみとする(『入力規則』...続きを読む

QAccess2003のテーブルが、Access2007でフィールド名の順番が変わってしまいます

Access2003のテーブルが、Access2007でフィールド名の順番が変わってしまいます。

PCが変わり、Access2003のデータをそのまま、新しいPCにコピーしました。
新しいPCではAccess2007が入っていました。
Accessで、テーブルをデータシートビューで開いたところ
Access2003の時のフィールドの表示順が崩れてしまいました。

例えて言うと

Access2003では   ListNo 文献ID 登録状況 備考
Access2007では   ListNo 登録状況 文献ID 備考

の順で表示されています。
これはデータシートビューで表示の順番が変わってしまうのですが
デザインビューでは、順番は変わっていないのです。


Access2007でも、Access2003のテーブルでのフィールド名の順番のまま
表示させるにはどうしたらいいでしょうか?


Access2007はほとんど使ったことがないため、無知です。
いろいろ調べてはみてるのですが、調べ方も下手なのだと思いますが、これという情報にたどり着けません。
時間がないため、こちらに質問しました。

助けていただければと思います。よろしくお願いいたします。

Access2003のテーブルが、Access2007でフィールド名の順番が変わってしまいます。

PCが変わり、Access2003のデータをそのまま、新しいPCにコピーしました。
新しいPCではAccess2007が入っていました。
Accessで、テーブルをデータシートビューで開いたところ
Access2003の時のフィールドの表示順が崩れてしまいました。

例えて言うと

Access2003では   ListNo 文献ID 登録状況 備考
Access2007では   ListNo 登録状況 文献ID 備考

の順で表示されています。
これはデータシート...続きを読む

Aベストアンサー

データシートビューは最初に開いたときには
デザインビューでの順で表示されますが
変えてやるとそれを記憶し次回から変えた順で表示します

>Access2003の時のフィールドの表示順が崩れてしまいました
この後で指定した表示順が消えただけのことじゃないの

QGoogleスプレッドシートにて「VLOOKUP」がひらがなとカタカナで認識ができない ご教授

Googleスプレッドシートにて「VLOOKUP」がひらがなとカタカナで認識ができない



ご教授ください。
Googleスプレッドシートにて、VLOOKUPを使っています。

あるシートに

あ 長野県
い 山梨県
ア 東京都
イ 神奈川県

というデータを作ったとします。
別のシートにて左列の「あ」や「い」などを
入力すると、県名が出るような簡単なものです。
ところが、「ア」と入力すると「長野県」
と値が返ってきてしまいます。カタカナとひらがなが認識されておらず、並びが上にあったものを返しているようです。
VLOOKUPの式にはちゃんと「FALSE」をつけています。
試しに、エクセルで同じ式を入れたところ
きちんと正しい値が返ってきました。
スプレッドシートでは、カタカナとひらがなは認識できないのでしょうか。(1文字なのが悪い??)

どうかアドバイスお願いいたします!

Aベストアンサー

残念ですが認識不可能です。
ひらがな、カタカナ、半角全角の区別がされないので、認識可能な文字を使う以外ありません。

Qアクセス2000:クエリの関数で「カタカナ」を「ひらがな」にしたい

お世話になります。
アクセス2000のクエリ関数で
「カタカナ」を「ひらがな」に変換したい
のですが、ご教授ください。
簡単なことかもしれませんが、よろしくお願いいたします。

Aベストアンサー

クエリの関数というものはありません

ただしAccessではVBA関数をクエリでも使えます
その際の注意点はマニュアルに書かれているVBAの定数は使えないということです
数字で指定してやります

= StrConv(カナ, 32)

半角カタカナもある場合は

= StrConv(カナ, 36)

Qひらがなの入力練習のおすすめソフトはありませんか。

ひらがなの入力練習のおすすめソフトはありませんか。

父が80歳を過ぎてパソコンを買いました。
もちろん自分では何もできません。
マウスは以前触ったことがあるのですが、キー入力をできるようにしたい、といっています。

ただほとんどまず間違いなくひらがな入力、といっても
「ka ki ku ke ko」と入力して「か き く け こ」と入力したことにさせています。
これだとまずローマ字を「覚えないと」できないのです。
「か」は「か」であって「ka」ではないのです。

ローマ字を知らないお年寄りにローマ字入力をさせるのは無理があるのですが
ひらがな(かな)入力の練習用のソフトが見つかりません。
ローマ字入力ではなくひらがな入力が欲しいのです。

最初はフリーソフトを適当にダウンロードして、
と簡単に考えたのですが、上に書いたようにローマ字しかないのです。

また大きな問題が「Windows7」なのです。
たいていのソフトが対応しているかどうかの確認ができず
とりあえず確認できているものをこちらでダウンロードして試して
これならすすめられそう、というのを選んでみようと思ったのですが
手頃なものが見つかりません。
無料はあきらめて本人は別にお金は出すからいい、と言っているのですが
なおさら買ったら使い物にならないともったいないので
おすすめのものをできればサンプル使用してから購入したいのです。

まとめると
ローマ字入力ではなくひらがな入力の一からの練習ができるもので
有料でもよいが購入前に試して内容の確認ができるもの
を探しています。

またゲーム機能は必要ないのですが
できたら何パーセントできたとか、間違いやすいのはどれか
のような表示は欲しいです。
ただ入力するだけならメモ帳にひたすら打てばよいのですが
少し張り合いがあるといいな、と思っています。


ちなみに私がブラインドタッチができるように
ずいぶん以前に購入したソフトは
「かんたんレッスンキー入力」というもので
(技術評論社というところから出ていました)
先生が選べていろいろメッセージが表示され
ひらがな・ローマ字・アルファベットの練習ができ
ホームポジションから順にキーを増やし
各段階でチェックをして先に進むかどうか決める
というとても充実したものでしたが
Windows7の対応の問題です。
このソフトが対応できれば文句なしなのですが・・・。

ひらがなの入力練習のおすすめソフトはありませんか。

父が80歳を過ぎてパソコンを買いました。
もちろん自分では何もできません。
マウスは以前触ったことがあるのですが、キー入力をできるようにしたい、といっています。

ただほとんどまず間違いなくひらがな入力、といっても
「ka ki ku ke ko」と入力して「か き く け こ」と入力したことにさせています。
これだとまずローマ字を「覚えないと」できないのです。
「か」は「か」であって「ka」ではないのです。

ローマ字を知らないお年寄りにローマ字入力...続きを読む

Aベストアンサー

ネットに常時接続をしていない環境なのですね。
質問者さんがいったん試してから、お父様に薦めたいのですね。

ソフトをPCにインストールするタイプだと、かな入力に対応した
タイピングソフトは少ないので、限られたものになりますよね。

Windows7対応ではなくても、インストールできる方法もあるよう
ですので、その方法で試すことも検討されてはいかが。
http://windows7faq.net/2010/10/windows7.html
XPまで推奨するタイプですが、有名なものではこちら↓。

美佳のタイプトレーナ(美佳のタイプトレーナ カナ編 Ver2.03)
http://www.asahi-net.or.jp/~BG8J-IMMR/
初期の練習程度なら十分かと思います。

タイピングソフトで[かな入力]できるものならこちら↓。

特打 倍速かな伝説
http://www.sourcenext.com/products/toku_kana/
http://www.sourcenext.com/products/toku_kana/toku_kana2.html
ソースネクストの[特打シリーズ]は好みの問題もありますが、
ある程度は使えるソフトだと思います。
私も一時活用していましたが、早打ちをするためのソフトで
あるために、ちょっと使いにくいかもしれませんね。
いちおう、上記のシリーズも入ったパック版でWiddows7対応
の特打シリーズがこちら↓です。

特打 PLUS Windows 7対応版
http://www.sourcenext.com/titles/pack/109430/

80歳を過ぎた方が使用するには不向きかなとは思いますが、
知っている範囲で紹介できるものだけ回答しました。

これ以外の回答はできないと思いますので、他の回答者の
アドバイスがあることを願います。では(^^)/~~~

ネットに常時接続をしていない環境なのですね。
質問者さんがいったん試してから、お父様に薦めたいのですね。

ソフトをPCにインストールするタイプだと、かな入力に対応した
タイピングソフトは少ないので、限られたものになりますよね。

Windows7対応ではなくても、インストールできる方法もあるよう
ですので、その方法で試すことも検討されてはいかが。
http://windows7faq.net/2010/10/windows7.html
XPまで推奨するタイプですが、有名なものではこちら↓。

美佳のタイプトレーナ(美佳のタイプトレーナ カ...続きを読む

QAccessでテーブル名やクエリ名一覧の抜き出し

Accessでテーブルやクエリを沢山(100個以上?)使っております。

そこで、テーブル名やクエリ名の管理をしたいので、テーブル名(クエリ名)の一覧を抜き出したいのですが、どうすればいいのでしょうか?
または、そういうことは無理なのでしょうか??(;O;)

1個づつコピーペーストでテールブル名をエクセルに貼り付けて行こうかな?と思ったのですが、さすがに数が多すぎるので困っております。

できるだけ簡単な方法がいいのですが、もしなければVBAでもいいです。

おわかりの方がいらっしゃいましたら、よろしくお願いします。

Aベストアンサー

・クエリを新規作成
・以下SQLを貼り付け
SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.Flags
FROM MSysObjects
ORDER BY MSysObjects.Type, MSysObjects.Name;
・デザインビューで表示
あとは、TypeとFlagsの条件を変えてあげれば一覧できます。


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

人気Q&Aランキング