MicroSoft Accessのクエリ検索方法について

このQ&Aのポイント
  • MicroSoftAccessのクエリ検索方法について質問があります。
  • クエリを新規で作成し、特定のデータの抽出を行いたいと考えています。
  • TRIM関数などを使用してデータの整形を試みましたが、希望するデータの抽出には至っていません。VBAやクエリの指定方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

MicroSoft Accessのクエリ 検索方法について

お世話になります。 MicroSoftAccessのクエリ検索方法について質問があります。 クエリを新規で作成し、下記のようなテーブルのデータの内 必要なデータの抽出を行いたいと考えています。 例)※三角は、Nullです。 <テーブル> (1) AAA△△△BBB (2) CCC△DDD (3) AAABBBCCC△△△△ABCDE△F (4) A△BC 上記のようなデータがあったとして、抽出希望のデータは (1)' AAA (2)' CCC (3)' AAABBBCCC (4)' A (1)'(2)'(3)'(4)'のようなデータを抽出したいとおもっています。 TRIM関数等使えば、頭の△・最後の△は消せるのですが 今回の希望するデータを取ることができません。 ご面倒かけ申し訳ありませんが、アドバイス頂けたらうれしいです。 あまりVBA等詳しくない為、クエリでの指定・関数等教えて下さい。 よろしくお願い致します。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.1

char(0)をデータ間に組み込むのは通常は至難。 スペースのことでしょうね。 1) AAA△△△BBB (2) CCC△DDD (3) AAABBBCCC△△△△ABCDE△F (4) A△BC [イミディエイト] ? CutStr("AAA BBB CCC", " ", 1) AAA ? CutStr("AAA BBB CCC", " ", 2) BBB ? CutStr("AAA BBB CCC", " ", 3) CCC ならば、以下のようなCutStr関数で切り取れます。 Public Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function 標準モジュールに登録し、[共通ライブラリ関数]などの名前と付けて保存してお使いください。 ? CutStr("This is a pen.", "is", 1) This ? CutStr("This is a pen.", "is", 2) a pen.

haldash
質問者

お礼

>スペースのことでしょうね。 はい その通りです。間違えてましてた。。 なんとなく程度しか教えて頂いた内容が理解できていませんが こういうのもきっかけだと思いますので、一度勉強したいと 思います。 只今回は、急ぎでデータが欲しいといわれていることもありつつ データ的にも、数千行程度でしたので、Mid関数 Mid([テーブル名],1,12)のような条件で検索して、残ってしまったものは強引に手動で削除しちゃいました。 教えて頂いた内容を含めて、再度確認をしたいと思います。 忙しい所 アドバイスありがとうございました。

関連するQ&A

  • Access2007抽出のことで

    Access2007のクエリ、デザインビューのことです。 データが例えば aaa bbb ccc ddd とあるとして、このうちaaaとcccの2つを抽出しようと 思って「"aaa"and"ccc"」とか書いても データシートビューでは空欄になってしまいます。 条件の書き方がおかしいのでしょうか?

  • ACCESSの抽出方法について

    クエリについて質問ですが、 今テーブルAとテーブルBがありまして、 <テーブルA> AAA あか BBB あお CCC きいろ <テーブルB> 1 あお 2 きいろ 上記のようなデータで、色の部分をキーにして テーブルAだけにあるデータ「AAA あか」を抽出する方法は どのようにしたらできるのでしょうか。

  • アクセスのクエリでSplit関数は使えないのですか

    レコードにaaa/bbb/cccと入っていて、 クエリで SELECT Split([テーブル1]![フィールド1],"/") AS test FROM テーブル1; とすると、 式に未定義関数 <関数名> があります。(Error 3085) になります。 VBAでやるとしたら Sub test() Dim str As String str = "aaa/bbb/ccc" Debug.Print Split(str, "/")(1) End Sub のような事がしたいのですが クエリでは無理なのでしょうか?

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き

  • 分岐SQLを一発のSQLで実現したい

    【データベース:SQLServer2005】 SQLのアドバイスを頂きたいです。 【テーブル】 テーブル名:Table1 フィールド名:種類、キー1、キー2 テーブル名:Table2 フィールド名:種類、キー1、キー2 テーブル名:Table3 フィールド名:種類、キー1、キー2 【データ】 Table1 種類、キー1、キー2 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD Table2 種類、キー1、キー2 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD Table3 種類、キー1、キー2 NULL  AAA  BBB NULL  AAA  CCC NULL  AAA  DDD これをUNIONで取得します。 種類、キー1、キー2 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD NULL  AAA  BBB NULL  AAA  CCC 実現したいのは、 1)同種類、キー1、キー2のデータで、 種類にNULLが含まれていたら、NULLのデータは取得しない 2)同種類、キー1、キー2のデータで、 種類にNULLしかないデータは、取得する 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD →いる NULL  AAA  BBB →いらない NULL  AAA  CCC →いらない ↓結果 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD 上記を実現する為、UNION後のSQLでも構わないので、 一発のSQLで取得する事は可能でしょうか? 有識者の方にご享受頂ければ幸いです。 どうぞ宜しくお願い申し上げます。

  • SQL文について

    お世話になります。 Oracle初心者です。 二つのテーブルから下記の様にデータを抽出 したいのですが、その方法をご教授くださいます様、 宜しくお願い致します。         記 テーブル1 品番  全長 aaa 1111 bbb 2222 ccc 3333 テーブル2 品番  入数 bbb 5 ddd 6 ggg 7 SQL結果 品番 全長  入数 aaa 1111 bbb 2222 5 ccc 3333 ddd 6 ggg 7

  • SQLについて

    aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 111 111 111 111 111 111 111 112 112 112 112 112 112 111 112 113 113 113 113 113 111 114 114 114 114 114 114 111 114 114 114 114 114 114 112 114 115 115 114 114 115 111 114 115 115 114 114 115 112 116 116 116 116 116 116 111 116 116 116 116 116 116 112 116 116 116 116 116 117 111 116 116 116 116 116 117 112 118 118 118 118 118 118 118 上記のようなデータより、SQLのSELECTを使用して、以下のように抽出したいです。 抽出条件は以下が全て満たしているものとなります。 ・aaa,ccc,ddd,eee,gggが重複、hhhが小さいもの ・bbbが異なるもの aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 112 112 112 112 112 112 111 ・・・(1) 112 113 113 113 113 113 111 ・・・(1) 114 114 114 114 114 114 111 ・・・(2) 114 115 114 114 114 115 111 ・・・(2) (1)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 (2)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象  また、hhhが小さいもの 以上、よろしくお願いします。

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • アクセスのクエリーについて

    今アクセス97を使用しています。 アクセスのクエリーを使って下記のようなことをやりたいのですが 抽出の条件をどうすればいいかわかりません。 わかる方いらっしゃいましたらお願いします。 説明不足ありましたら補足させていただきます。 A:支店名 B:更新日 C:電話番号 1 青森支店 | 2001/5/20 | aaa-aaaa←――支店名ダブっているときはB:更新日が新しいもの抽出 2 青森支店 | 2001/3/20 | bbb-bbbb 3 岩手支店 | 2001/2/30 | ccc-cccc←――支店名ダブっているときはB:更新日が新しいもの抽出 4 岩手支店 | 2001/2/30 | ddd-dddd 5 宮城支店 | 2001/5/20 | eee-eeee←――支店名ダブっないときそのまま ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ A:支店名 B:更新日 C:電話番号 1 青森支店 | 2001/5/20 | aaa-aaaa 3 岩手支店 | 2001/2/30 | ccc-cccc 5 宮城支店 | 2001/5/20 | eee-eeee

  • Accessの文字列部分一致を合計する関数

    お世話になっております。 Access2003の関数で教えてください。 Acces2003のクエリで、 「同じフィールド内で文字列が部分一致した場合、新しいフィールドに 別のフィールドにある数値を合計する、部分一致しない場合は合計せず、 そのままの数値を表示する」 という関数を設定したいと思っております。 具体的に記載しますと、 在庫テーブルがあり、 商品コード 在庫  aaa      10 bbb      20 ccc      15 ddd      30 aaa-1    40 bbb-1    25 ddd-1    20 というデータが入力されております。 この在庫テーブルから新しいクエリで、新しく「在庫合計」フィールド を作成し、このフィールドに関数を用いて、 『「商品コード」フィールドの左3文字が一致した場合、「在庫」フィールドの 数値を合計する数値を表示させ、一致しない場合は合計せずそのままの 数値を表示する』 という形です。 クエリの実行結果としては 商品コード 在庫 在庫合計 aaa      10   50 bbb      20   50 ccc      15   15 ddd      30   50 bbb      5   50 aaa-1    40   50 bbb-1    25   50 ddd-1    20   50 という結果になり、商品コード「aaa」と「aaa-1」や「bbb」と「bbb-1」の「在庫合計」の値 は同じ値(「在庫」フィールドを合計した数値)が表示され、左3文字が一致したデータ がない「ccc」は15のまま、という結果です。 ※ただ、商品コードに重複がございます。(上記例でいうと商品コードが「bbb」です。) 当方VBAは使えないので、クエリで行いたいと思っております。 Accessで難しければExcelの関数でも構いません。 当方初心者ですので、不足な情報がございましたら加筆いたします。 どうぞよろしくお願いいたします。