Page 26 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼クエリで大文字小文字を区別 auxo 02/9/5(木) 13:12 ┣Re:クエリで大文字小文字を区別 yu-ji 02/9/5(木) 13:49 ┗Re:クエリで大文字小文字を区別 イケガミ 02/9/5(木) 15:00 ┣Re:クエリで大文字小文字を区別 auxo 02/9/6(金) 15:51 ┗試してみたのですが auxo 02/9/12(木) 13:45 ┗Re:試してみたのですが イケガミ 02/9/12(木) 13:55 ┗Re:試してみたのですが auxo 02/9/12(木) 14:03 ┗Re:試してみたのですが イケガミ 02/9/12(木) 14:11 ┗Re:試してみたのですが auxo 02/9/12(木) 14:20 ┗Re:試してみたのですが イケガミ 02/9/12(木) 14:34 ┗Re:試してみたのですが auxo 02/9/12(木) 14:54 ┗Re:Aテーブルに。。 イケガミ 02/9/12(木) 15:05 ┗Re:Aテーブルに。。 auxo 02/9/12(木) 15:12 ─────────────────────────────────────── ■題名 : クエリで大文字小文字を区別 ■名前 : auxo ■日付 : 02/9/5(木) 13:12 -------------------------------------------------------------------------
クエリで大文字小文字を区別して抽出する方法はありますでしょうか? 2つのテーブルでリレーションを組み、一致するレコードを抽出したいのですが うまく行きません。クエリでは無理なのでしょうか? VBAで可能な場合はどのように組めばいいのでしょうか? 初心者の為、初歩的な質問とは思うのですが、ご教示いただけますよう お願いいたします。 ↓こんな感じにしたいのですが・・・ ------------- テーブルA AAAA Aaaa bbbBB BB Baaa ------------- テーブルB aaAAA AAAA BB ============= 抽出結果 AAAA BB |
▼auxo さん: >クエリで大文字小文字を区別して抽出する方法はありますでしょうか? > >2つのテーブルでリレーションを組み、一致するレコードを抽出したいのですが >うまく行きません。クエリでは無理なのでしょうか? >VBAで可能な場合はどのように組めばいいのでしょうか? V3に同様の質問がありました。 http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=1780;id=Access YU-TANG さんが書かれてる方法だと可能なのかな? |
> クエリで大文字小文字を区別して抽出する方法はありますでしょうか? ○自作関数を作成します。 Function blnStrComp(strText1 As String, strText2 As String) As Boolean '---------------------------------------------------------------------- ' 文字列を比較し、同じであれば"True"を返す '---------------------------------------------------------------------- If StrComp(strText1, strText2, vbBinaryCompare) = 0 Then blnStrComp = True Else blnStrComp = False End If End Function ○使用例 SELECT T_比較用A.Fld FROM T_比較用A INNER JOIN T_比較用B ON T_比較用A.Fld = T_比較用B.Fld WHERE (blnStrComp([T_比較用A].[Fld],[T_比較用B].[Fld])=True); こんなのでいいのか分かりませんが、テストしたら > 抽出結果 > AAAA > BB ↑のようになりました。。 |
▼イケガミ さん: >こんなのでいいのか分かりませんが、テストしたら >> 抽出結果 >> AAAA >> BB >↑のようになりました。。 ありがとうございます! 早速試してみます。 |
「このサブクエリでは1つのレコードしか返せません。」と表示されてしまいます。 何がいけないのでしょうか。。。 本当に初心者で申し訳ないですがよろしくお願いいたします。 |
> 何がいけないのでしょうか。。。 私が試したのは、↓だけですので、それ以外のことをしているのでしたら、 何をしたのかを教えてください。 > ○使用例 > > SELECT T_比較用A.Fld > FROM T_比較用A INNER JOIN T_比較用B ON T_比較用A.Fld = T_比較用B.Fld > WHERE (blnStrComp([T_比較用A].[Fld],[T_比較用B].[Fld])=True); > 「このサブクエリでは1つのレコードしか返せません。」と表示されてしまいます。 このエラーの場合でしたら、クエリの内容が分からないと、 答えることができないと思います。 |
質問内容がつたなくてすみません。 テスト用にT_比較A、T_比較Bというテーブルをつくりました。 それぞれのテーブルにはFldという項目が1つだけある状態です。 クエリの抽出条件に下記SELECT〜文を入れて[実行]したところ 「このサブクエリでは・・・」のメッセージが表示されました。 (SELECT T_比較用A.Fld FROM T_比較用A INNER JOIN T_比較用B ON T_比較用A.Fld = T_比較用B.Fld WHERE (blnStrComp([T_比較用A].[Fld],[T_比較用B].[Fld])=True)) |
>(SELECT T_比較用A.Fld >FROM T_比較用A INNER JOIN T_比較用B ON T_比較用A.Fld = T_比較用B.Fld >WHERE (blnStrComp([T_比較用A].[Fld],[T_比較用B].[Fld])=True)) 抽出条件に使うのではなく、新規フィールドに フィールド |比較:blnstrcomp([T_比較用A].[Fld],[T_比較用B].[Fld]) 抽出条件 |True のようにしても同じでしょうか? |
たびたびすみません。 新規フィールドに以下を入力してみました。 >フィールド |比較:blnstrcomp([T_比較用A].[Fld],[T_比較用B].[Fld]) >抽出条件 |True 「比較」というフィールドに「-1」というデータが10件入った状態で表示されました。 ちなみにテストデータのT_比較Aには12件のデータが、 T_比較Bには5件のデータが入っており、 意図した抽出(Bのデータに完全一致するAのデータの抽出)が行われると 5件(Bと同様のデータ)のデータが抽出されるようにしたいのです。 |
>ちなみにテストデータのT_比較Aには12件のデータが、 >T_比較Bには5件のデータが入っており、 >意図した抽出(Bのデータに完全一致するAのデータの抽出)が行われると >5件(Bと同様のデータ)のデータが抽出されるようにしたいのです。 最初の質問のときのように、具体例をあげていただくと、 こちらで検証ができますので、助かるのですが。。 |
こちらで試しているデータは下記となります。 クエリのSQLビューにイケガミさんから教えていただいた構文を入力してみましたら 少し前進したように思います。 ※ Accessの基本的なところだと思うのですが、わかっていなくて申し訳ありません。 比較BにNoフィールド(オートナンバーではありません)を追加しました。 その方が結果がわかりやすいかと思ったので。。。 ■テストテーブル T_比較Aテーブル -------------- Fld -------------- asdfg ASDFG Asdfg AsdfG efufw efqwhfeoi xdocujhd asdfg ASDFG AsdfG efufw xdocujhd T_比較Bテーブル -------------- Fld No ---------+---- asdfg 1 ASDFG 2 AsdfG 3 efufw 4 xdocujhd 5 ■クエリ SQLビューに下記を入力した状態で実行してみました。 SELECT T_比較用A.Fld, T_比較用B.[No] FROM T_比較用A, T_比較用B WHERE (((blnStrComp([T_比較用A].[Fld],[T_比較用B].[Fld]))=True); ■実行結果 結果は↓となりました。 -------------- Fld No ---------+---- asdfg 1 ASDFG 2 AsdfG 3 efufw 4 xdocujhd 5 asdfg 1 ASDFG 2 AsdfG 3 efufw 4 xdocujhd 5 出来ているような気もするのですが、 同じデータが2回ずつ抽出されています。 よろしくお願いいたします。 |
>出来ているような気もするのですが、 >同じデータが2回ずつ抽出されています。 Aテーブルの方に同じ値が2レコードずつあるからですね。 IDをAテーブルにつけて、確認すると分かり易いです。 >T_比較Aテーブル >-------------- >Fld >-------------- >asdfg >ASDFG >Asdfg >AsdfG >efufw >efqwhfeoi >xdocujhd >asdfg >ASDFG >AsdfG >efufw >xdocujhd |
あ、ホントだ。。。 すみません。気づきませんでした。 別途データを作って実行してみましたら結果は以下のようになりました。 A_No B_No Fld -----+-------+---------- 1 1 asdfg 2 2 ASDFG 4 3 AsdfG 5 4 efufw 7 5 xdocujhd 何度もお手数をおかけしてすみませんでした。 本当にありがとうございます。 |