クエリーやレホートでテキスト型フィールドに対してグルーピングなどを行う際に英数の大文字・小文字とかな文字のカタカナ・ひらがなを区別して扱いたいのですが、アクセスでは区別できないのでしょうか?オプションやプロパティなどを見ても見つかりません。

設定で区別ができないようなら、区分用のフィールドをつくって区別をしたいと考えています。その際、その区分を自動的に入力したいのです。

たとえば、Aフィールド(テキスト型)のデータを自動的に検査して(大文字・小文字やカタカナ・ひらがなに区別したい)、Bフィールドに自動的にそれを入力する方法などはありますでしょうか?

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

A 回答 (3件)

フィールド内の文字列が英数大文字・小文字・ひらがな・カタカナのいずれかに統一されているのであれば、yoishoさんや-boya-が回答されているようにAsc関数を使用して、


最初の文字で判断できるのではないでしょうか。
クエリーのフィールドに
分類:IIF(Asc(フィールド名)>64 and Asc(フィールド名)<96,1,IIF(Asc・・・・)))
としてコードを分類してしまえば、Group by 分類
句で区別できるのはないでしょうか。
もし、全ての文字列をチェックして分類する必要があるのでしたら、小文字・大文字が混在している場合の条件をFunctionで作成して、上記と同様に
分類:Function名を記載すれば、分類フィールドで区分できると思います。
また、Functionを使用して、入力をフォームで行うのであれば、更新後のイベントで入力できますし、SQLで更新もできると思います。

ひょとしてはずしてますか?
    • good
    • 0

残念ながら、クエリー上では区別はできないようです。



データの抽出条件として区別するなら、WHERE句の記述で、StrComp関数や InStr関数を引数 compare に 0 を指定して使えば、バイナリでの比較ができると思いますが (たとえば WHERE StrComp(フィールド名, "抽出条件", 0) = 0 のように記述、詳しくはHELPで調べてみてください)、グループ化はちょっと厳しいですね。

先頭文字だけで区別するなら、グループ化するフィールドに、-boya-さんが示していらっしゃる Asc関数を使う方法も有効かと思います (Left関数をはさむ必要はなさそうですが)。(たとえば GROUP BY (Asc(フィールド名) のように)

ということで、区分用のフィールドをつくる件ですが、
たとえばAフィールドの更新前処理のイベントで、やはり Asc関数を使って文字コードから文字の種別を判断して、Bフィールドに区分を入れるのが、一つの方法として考えられますが・・・。

蛇足として、ご存知かと思いますが、VBAモジュールでの比較なら、Option Compare ステートメントで宣言してやれば、バイナリーでの区別が可能です。
    • good
    • 0

VBAなら「Asc関数」を使えば区別できるのでは無いでしょうか?



kyukieeさんの求める機能がどう言うものかよく分かりませんでしたが、
leftで左側の一文字を持ってきてAscで返ってきた値を
参照すれば、、、
使い方はヘルプなどを参照してください。
    • good
    • 0

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

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

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

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

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

QPhotoshop「小文字の拡張子を使用(U)」について

PhotoshopCS3でファイル→別名で保存→PhotoshopEPS(*EPS)形式、でレタッチした写真を保存する場合についてです。
「別名で保存」の小画面の最下に
□ 小文字の拡張子を使用(U)
というチェックマークの項目があります。ここの操作によりファイル形式のEPSとepsが連動して切り替わります。
【質問】
1. 通常どちらにしておくべきでしょうか? 
また、状況によって使い分ける必要があるなら、大文字と小文字の使い分けの意義、効果など教えてください。
2. 他のソフトでもあった場合、1.と同様の判断でよいでしょうか?

Aベストアンサー

昔のOSなど、環境によって拡張子に小文字が使えないものがあります。

現在では特に指定されない限りは、どちらでも良いのですが
読みやすい小文字の方がイイでしょう。

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

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

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

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

宜しくお願い致します。

Aベストアンサー

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

として実行してもデータを表示します。

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.OpenRec...続きを読む

Qアルファベットの小文字の起源(大文字と形が同じもの/違うもの)

英語のアルファベットの小文字は、私なりに分類すると

1.大文字と全く同じ形のもの
 c o s v w x z

2.大文字にかなり似ているもの
 f k p u y

3.大文字を筆記体で書いたものに似ているもの
 g

4.大文字と似ていないもの
 a b d e h i j l m n q r t

です。


小文字の起源をご存じの方いらっしゃいましたら、
なぜ上記のようになっているか教えてください。

Aベストアンサー

元々ラテン文字は大文字しかなく、小文字は草書体(崩し字・筆記体)からできたものです。

このページのアンシャル体・ハーフアンシャル体のところをご覧ください。
http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%BC

これらの書体が小文字の起源と言われています。

Qアクセス レポート テキストボックスの文字配置は文字数で自動的に文字配置の変更可能ですか

現在アクセスに入力されているテーブルのデーターをもとに書道展のキャプションを作成中です
タイトルと作家の名前を表示させますがタイトルが1文字数から13文字数くらいまでと様々なため
テキストボックスの文字配置が均等割り付けだと文字数の多いタイトルは2段目が間延びしておかしいです
例えば8文字までだと均等割り付けそれ以上だと左揃えなどということが可能でしょうか?
他に良い方法があれば教えてくださいよろしくお願いします
Wordの差し込み文章のように一枚ごとの編集が出来ればいうことなしなのですが?それはあり得ませんか?

Aベストアンサー

> イベントプロシージャには文字数が多くなれば自動で2行にになり字も小さくなるための式がかかれています

こちらでしょうか?

テキストボックス内の文字を自動で縮小して全体を表示
http://hatenachips.blog34.fc2.com/blog-entry-11.html

上記の例なら

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  AutoFontSize Me.テキストボックス名, 12
  If Len(Me.テキストボックス名) <= 8 Then
    Me.テキストボックス名.TextAlign = 4 '均等割り付け
  Else
    Me.テキストボックス名.TextAlign = 1 '左揃え
  End If
End Sub

のようになります。


> ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されていますとなりました。

加えた変更を元に戻してもエラーになりますか?

とりあえず、コンパイルしてエラーが無いことを確認してください。

経験上、Access のバージョンにもよりますが、
デザインビュー以外で表示しているときに VBA の修正をしたりすると
このエラーが出ることが多いような気がしています。

> イベントプロシージャには文字数が多くなれば自動で2行にになり字も小さくなるための式がかかれています

こちらでしょうか?

テキストボックス内の文字を自動で縮小して全体を表示
http://hatenachips.blog34.fc2.com/blog-entry-11.html

上記の例なら

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  AutoFontSize Me.テキストボックス名, 12
  If Len(Me.テキストボックス名) <= 8 Then
    Me.テキストボックス名.TextAlign = 4 '均等割り付け
  Else
    Me.テ...続きを読む

Q英語の小文字が出ない

文字を打つとき、英語の小文字を打ちたいのですが打てません。下のほうのツールバー?かなにかで、設定すると、小文字になりますが、ウインドウズを終了するとまた、大文字入力になります。どうすれば、小文字に固定できますか?(はじめは小文字だったのに、いきなり大文字になってしまった・・・)

Aベストアンサー

[Shift]+[Caps Lock]で大文字、小文字の固定が出来ます。押すたびに変わります。直接入力モード時には、その設定どおりの文字を入力できます。

また、ローマ字変換のまま入力して(表示はおかしな日本語になる)、[F10]で変換しても入力可能です。押すたびに、小文字のみ、大文字のみ、先頭のみ大文字が切り替わります。(小文字、大文字の順番はCapsLock on/offの状態による)

Qエクセルとアクセスでローマ数字の大文字・小文字の区別ができない。

 よろしくお願いいたします。
 ExcelあるいはAccessにおいて,ローマ数字の大文字と小文字を区別したいと考えていますがうまくいきません。

 例えば,エクセルにおいて A1セルに「ⅰ」が入力してあって 

 =IF(A1="I","壱",IF(A1="ⅰ","一"))

という式をA2セルに入れると,「壱」という戻り値になります。アクセスでも構文が違うだけの同意の関数を使用しても同様の結果になります。つまり,大文字と小文字を区別していないということになると思います。原因と回避する方法を教えていただけたら幸いです。

Aベストアンサー

こんにちは。

Access のクエリでは以下のようになるかと思います。

IIf(StrComp([field1],"I",0)=0,"壱",IIf(StrComp([field1],"i",0)=0,"一"))

他には、文字コードで行ったり、StrConv などで比較する方法もあると思います。

Qギャル文字、小文字について。

私は17歳の女子高生です。
ギャル文字、小文字についてですが、
私自身はギャル文字、小文字は使いません。使ったこともありません。
私の周りの友人がギャル文字、小文字使いまくりでどうしても
不快に思ってしまいます。
声に出して言ったりはしません。
若い子(10代の女の子)なら
使いたい気持ちも分からないでもないですが、
ブログなどを見ていると20、30代のお子さんがいらっしゃる方も
使っているのを見て、大げさですがこれからの日本はどうなるんだろう。と思ってしまいました^^;
この前は同級生の男の子とメールしていて、私がギャル文字、小文字
を使わないのを不思議がっていました。なんでも彼いわく、
「真面目に見える」そうで・・・。
文を柔らかく、華やかにしたいのなら顔文字でも十分出来ると
思うんですよね。
そこで質問ですが、

→現在、過去にギャル文字、小文字を使っている(いた)方。
ギャル文字や小文字を何故使うのでしょうか。
顔文字でも文を華やかに出来ると思うのですが。


→ギャル文字、小文字を使ったことはない方。
ギャル文字、小文字を使うことについてどう思いますか?



あと、何でもいいのでギャル文字、小文字に関するエピソードを
教えてください。



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

私は17歳の女子高生です。
ギャル文字、小文字についてですが、
私自身はギャル文字、小文字は使いません。使ったこともありません。
私の周りの友人がギャル文字、小文字使いまくりでどうしても
不快に思ってしまいます。
声に出して言ったりはしません。
若い子(10代の女の子)なら
使いたい気持ちも分からないでもないですが、
ブログなどを見ていると20、30代のお子さんがいらっしゃる方も
使っているのを見て、大げさですがこれからの日本はどうなるんだろう。と思ってしまいました^^;
...続きを読む

Aベストアンサー

ギャル文字や小文字を使ったことはありません。
現在21歳なので、私が高校生の時にはもうギャル文字や小文字は存在していました。
就職している友人もいますが、大学生の友人も多いので、ギャル文字や小文字をよく目にします。
姉妹が質問者様と近い年齢なので、本当によく目にします。
私も質問者様と同様、不快に思います。読み辛いです。
同じく真面目に見えると言われた事もありますが、これが普通だと思っています。
あまりにも乱用していると頭が悪そうにも見えます・・・
特に、時と場合を考えない人を見てしまうと、引きますね・・・
これからの日本はどうなるんだろうと私も思いますよ・・・
質問者のような高校生がいてくれると思うと、安心できますね。
時と場合が考えられる人なのであれば、個性の1つなので、自由だと思います。
それをありだと思うのも、なしだと思うのも自由でしょうね。

Qアクセス 重複の削除と残すパターン フィールド1 顧客ナンバー〔ユニーク) フィールド2 受付区分

アクセス 重複の削除と残すパターン

フィールド1 顧客ナンバー〔ユニーク)
フィールド2 受付区分
受付は0、キャンセルは1とレコードあり

顧客ナンバー、受付区分にてグループ化すると、

0パターン 受付
01パターン 受付とキャンセル
010パターン 受付とキャンセル、再び受付
0101パターン 受付とキャンセル、再び受付とキャンセル
この4パターンになり、行数は上から1、2、3、4行
となります。

ここから教えて下さい。
01パターンと0101パターンを無かった事にし0パターンと010パターンは1だけを残したいのですが、集計オプションを使い、条件をどのように書けばよろしいでしょうか?

受付区分にて合計を出したりカウントしたりしたのですが、うまくいきません。0を10、1を11や文字に置き換える事は出来ます。

Aベストアンサー

受付、キャンセルするたびにレコードを発生させていて、再受けを区別しなくていいなら、、、
受付を1、キャンセルを-1にして合計取ればいいんじゃね? まあ、今のままの値でも

-2*([受付区分]-0.5)

で、変換できるような気もするけど。

Qエクセルで小文字入力不可にする方法について

1つのセルに半角カナ文字20文字まで小文字不可に制限をしたいのですが、どのように設定をすればいいでしょうか?

例えば、A1のセルに入力した20までの文字を1文字ずつ違うセルに表示させるのですが、小文字は入力不可にしたいので小文字を大文字に変換又は入力時に小文字入力があったら注意文言を表示するなどしたいと思っています。

文字制限は入力規制で可能だと思いますし、一文字ずつ別のセルに表示させるのは関数でできるところまではやれています。
あとは、小文字の入力制限をしたいのでわかる人教えてください。

Aベストアンサー

ャュョを忘れた(^^;
それに20文字制限も
=AND(CODE(MID(A1,ROW($A$1:INDEX($A:$A,MIN(20,LEN(A1)))),1))
<>{167,168,169,170,171,172,173,174,175})

Q大文字で書かれている英文を小文字に変換したい。

ネットから入手した歌詞カードが全文,大文字で書かれています。これをワードに添付して編集したいのですが,その手始めに,全文を小文字にしたいと思うのですが,どうしたらいいのでしょうか?
小文字を全部,大文字にするのは「フォント」「すべてを大文字」でできたのですが,逆はできないのでしょうか?

Aベストアンサー

wordでいいのですよね
「書式」「文字種変換」「すべて小文字にする」で出来ます。


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

人気Q&Aランキング