• 締切済み

Accessでのあいまい検索について

Access2010の使用者で&初心者です。 クエリの抽出条件に別テーブルのフィールドを文字列検索させ、その文字列が含まれていた場合は、その文字列を別フィールドに抜き出すというクエリを作成したいのですが・・ ・検索したいテーブル(T商品情報) ・年月日 ・品目情報 ・検索する文字列が入ったテーブル(T品目) ・検索文字 検索したいテーブル(T商品情報)の「品目情報」から、検索する文字列が入ったテーブル(T品目)の「検索文字」を検索し、その検索文字列が含まれていた場合は別フィールにその検索文字列を抽出。という作業を行いたく思っております。 例 ---------------------------T商品情報 年月日|品目情報 20010/8/10|武田様より、口頭にてもも大を53個受け付けました 20010/8/10|上坂様より、電話にてりんごを3個受け付けました 20010/8/10|木村様より、電話にてももを3個受け付けました --------------------------- ---------------------------T品目 検索文字 もも大 りんご もも --------------------------- ↓ ---------------------------クエリ 年月日|品目情報 | 検索文字 20010/8/10|武田様より、口頭にてもも大を53個受け付けました|もも大 20010/8/10|上坂様より、電話にてりんごを3個受け付けました|りんご 20010/8/10|木村様より、電話にてももを3個受け付けました|もも --------------------------- このようなクエリ結果を望んでおります。文章の中から商品名を抜き出し、その抜き出した商品に価格をひもづけたいのです。このようなことをクエリで行えますでしょうか?

みんなの回答

  • atom900
  • ベストアンサー率0% (0/0)
回答No.6

No.5の補足からすると、「手元に届くデータが定型的ではない」ということですか。 それはコンピュータ処理に向きませんねぇ。(^_^;) どんなに雑であっても、一定の法則が無ければ簡単な解決方法はありません。 一番の近道は、現状のままで解決策を見つけるのではなく、 ある程度コンピュータ処理に向いた記述に変更してもらうのが一番だと思います。 #3さんが言われるようにどうしても雑な文には抜け道が発生します。 それらの注文方法が最低でもいくつかのパターンに収まるようにしてもらうべきだと思います。 例えば、 ◆区切り文字を決め(空白とか、:とか、/とか品目などで使用しない文字にします)、項目の順番を決める。 13時50分 3個 商品:7777 するめ (項目を空白で区切ってもらう、品目が最後と仮定し、商品コード以降の空白は品目とみなす) 高知へうど 3kg (品目は「へ」から最後の空白まで、最後の空白以降の文字は受注数とする) 高知へうどを3kg (品目は「へ」から「を」まで、「を」以降の文字は受注数とする) 上記のようないくつかのパターンに、ある程度整形してもらうことは難しいのでしょうか? 私の今までの経験から、どんな文字が来るかわからない、ような受注内容では、いつまで経っても解決策はありませんし、 また、新たな受注文章が来た場合、今までの方法が使えなくなったり、訂正することによってこれまでの処理がうまくいかなくなるケースも往々にしてあります。 こういった、建設的ではない方法は、時間と労力と金銭の無駄..という考え方でいます。 解決策にはなっていませんが、もっと前向きに、 建設的な方法(少しの労力を払ってでも、すべてがうまくいく方法)にシフトされることを望みます。

  • atom900
  • ベストアンサー率0% (0/0)
回答No.5

質問の内容から察するに、 まず大事なことは、「T商品情報」の「品目情報」の中から商品名だけを取り出す。 ということではないかと思います。 取り出すことさえできれば、その後、二次加工として、 「検索文字」項目にセットしようが、 その「検索文字」を「T品目」とぶつけて、「該当なしエラー」を表示したり、単価を自動セットしたり、できますものねぇ。 で、ちょっと変わった方法にはなりますが、文字列検索を使って取り出す方法があります。 クエリのSQL文は次のようなものです。 SELECT Mid([品目情報],InStr([品目情報],"にて")+2,InStr([品目情報],"を")-InStr([品目情報],"にて")-2) AS 抽出品目 FROM T商品情報; 何をしているかといえば、 文字列「にて」と「を」の間にある文字が品目である。 という条件を指定しています。 ただ、この方法もいくつか問題があって、品目の中に「を」があればそこで切れてしまいます。 また、相手先名に「にて」という文字があれば誤作動を起こします。 この場合は、手間はかかりますが、次の2ステップで回避できます。 1ステップ目、「にて」ではなく「様より、口頭にて」を使用する 2ステップ目、「にて」ではなく「様より、電話にて」を使用する ひとつのヒントとして参考にしていただければと思います。

e4927777
質問者

補足

ヒントありがとうございます。SQL文とても参考になりました。 残念ながらこちらの手元に届くデータは本当にきたなく・・・ある程度きまった定型文で入っているものもありますが、例えば 「13時50分3個 商品:7777するめ」 「高知へうど3kg」 など本当に自由に入っており(笑) 日にち・商品名・個数が情報として入っていればよいという指示で始まったらしく、現時点での変更はできない模様です。 こちらとしてもマスタにある商品名さえ抜き出せればなんとか作業が進むのですが、商品名が「もも」と「もも大」で複数行抽出されてしまい、・・・膨大なデータの中から、不要な行を手で削除していくなどとてもできません。なんとかなりませんか?助けてください。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

#3です #3では、おかしくなる場合がありますので 例えば、 武田様より、口頭にてすもも大を53個受け付けました 上坂様より、電話にてりんごを3個受け付けました 木村様より、電話にてももを3個受け付けました 1行目の「もも大」が「すもも大」 で、品目に「すもも」があったとすると 年月日|品目情報 | 検索文字 20010/8/10|武田様より、口頭にてすもも大を53個受け付けました|もも大 20010/8/10|上坂様より、電話にてりんごを3個受け付けました|りんご 20010/8/10|武田様より、口頭にてすもも大を53個受け付けました|すもも 20010/8/10|木村様より、電話にてももを3個受け付けました|もも の様な表示になります。#3の回答では、 長い方の検索文字で抽出されていたら、その検索文字に含まれるものは除外・・・ (「もも大」で抽出されていたら「もも」は除外) としていましたが、今回の例のように ・検索文字の文字数は同じ 場合は正しく動きません。 やはり、品目は = で抽出指定できるように、加工した方が良いかと "今日は猛打賞、むねりんごきげん" とかあったら、りんご に引っ掛かると思います。 上記例では、解釈パターンが合わないので、事前の加工時にはじかれる? (はじく処理を入れていればですが)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

#2です せっかくなので SQL での抽出を試みる事に #1に示していた以下を、クエリ名「Q_商品」として作っておきます。 SELECT T商品情報.年月日, T商品情報.品目情報, T品目.検索文字 FROM T商品情報, T品目 WHERE (((T商品情報.品目情報) Like "*" & [T品目].[検索文字] & "*")); このクエリを元に、以下クエリを SQL ビューで記述します。 (クエリのデザインでは記述できないかと) SELECT Q1.* FROM Q_商品 AS Q1 LEFT JOIN Q_商品 AS Q2 ON Q1.年月日 = Q2.年月日 AND Q1.品目情報 = Q2.品目情報 AND Len(Q1.検索文字) < Len(Q2.検索文字) AND Q2.検索文字 Like "*" & Q1.検索文字 & "*" WHERE Q2.年月日 Is Null; ※ 処理性能はわかりません。  また、以降に控える処理にどう使っていかれるのか、わかりません。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

#1です > 到着したデータが、残念ながら下記のようなかたちでしか届きません。 加工しない状態での抽出については、他の方の回答を待ってください。 以降に控えているもの・事をやりやすいように加工する、という選択肢はないのでしょうか。 なければ、以下スルーしてください。 テーブル「TS1」として以下を作っておいたとします。 ・受注NO(オートナンバ) ・年月日(日付) ・顧客(テキスト) (武田、上坂、木村、・・・) ・方法(テキスト) (口頭、電話、・・・) ・品目(テキスト) (もも大、りんご、もも、・・・) ・数量(数値)   (53、3、3、・・・) 以下を標準モジュールに記述し、MkTable を実行すると内容が出来上がります Private Function CutMoji(sSrc As String _           , sLeft As String, sRight As String) As String   Dim iPosS As Long, iPosE As Long   If (Len(sSrc) = 0) Then Exit Function   If (Len(sLeft) = 0) Then     iPosS = 1   Else     iPosS = InStr(sSrc, sLeft)     If (iPosS = 0) Then       iPosS = 1     Else       iPosS = iPosS + Len(sLeft)     End If   End If   If (Len(sRight) = 0) Then     iPosE = Len(sSrc) + 1   Else     iPosE = InStr(iPosS, sSrc, sRight)     If (iPosE = 0) Then iPosE = Len(sSrc) + 1   End If   CutMoji = Mid(sSrc, iPosS, iPosE - iPosS) End Function Public Sub MkTable()   Dim rsTo As New ADODB.Recordset   Dim rsFrom As New ADODB.Recordset   Dim sSrc As String   rsFrom.Open "T商品情報", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly   rsTo.Open "TS1", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic   While (Not rsFrom.EOF)     rsTo.AddNew     rsTo("年月日") = rsFrom("年月日")     sSrc = rsFrom("品目情報")     rsTo("顧客") = CutMoji(sSrc, "", "様より")     rsTo("方法") = CutMoji(sSrc, "、", "にて")     rsTo("品目") = CutMoji(sSrc, "にて", "を")     rsTo("数量") = CutMoji(sSrc, "を", "個")     rsTo.Update     rsFrom.MoveNext   Wend   rsTo.Close   rsFrom.Close End Sub ※ 作る先のテーブル「TS1」をクリアしてから実行する・・・ とか  元の「品目情報」が Null なら・・・ とか  「年月日」の 20010/8/10 を 2010/8/10 に変更する・・・ とか  rsTo.Update でエラーになった品目情報を表示する様にする・・・ とか  元テーブル「T商品情報」で期間絞り込み後のものを対象にする・・・ とか 上記は、DB化が目的ではありません。が、 データを受け取ったタイミングで MkTable を実行するだけで、 以降のやりたいもの・事がしやすいような気がします。 ※ いろいろと不都合部分は修正してください。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

クエリのデザインで、添付図上段のように設定し表示してみます。 クエリをSQLビューで見た内容 SELECT T商品情報.年月日, T商品情報.品目情報, T品目.検索文字 FROM T商品情報, T品目 WHERE (((T商品情報.品目情報) Like "*" & [T品目].[検索文字] & "*")); 表示されるのは以下 年月日|品目情報 | 検索文字 20010/8/10|武田様より、口頭にてもも大を53個受け付けました|もも大 20010/8/10|上坂様より、電話にてりんごを3個受け付けました|りんご 20010/8/10|武田様より、口頭にてもも大を53個受け付けました|もも 20010/8/10|木村様より、電話にてももを3個受け付けました|もも ※ 「もも大」は、「もも大」はもちろんですが「もも」も含んでいるため 武田様より、口頭にてもも大を53個受け付けました 上坂様より、電話にてりんごを3個受け付けました 木村様より、電話にてももを3個受け付けました これらの内容を眺めてみます。すると 「武田」様より、「口頭」にて「もも大」を「53」個受け付けました 「上坂」様より、「電話」にて「りんご」を「3」個受け付けました 「木村」様より、「電話」にて「もも」を「3」個受け付けました 「 」で囲んだ部分を項目として作ってみます。 テーブル「T商品情報」を変更してみます ・受注NO(オートナンバ) ・年月日(日付) ・顧客(テキスト) (武田、上坂、木村、・・・) ・方法(テキスト) (口頭、電話、・・・) ・品目(テキスト) (もも大、りんご、もも、・・・) ・数量(数値)   (53、3、3、・・・) テーブル「T品目」 ・品目(テキスト) (もも大、りんご、もも、・・・) ・単価(通貨)   (200、150、100、・・・) データを入れてみると以下の様な感じに 受注NO | 年月日 | 顧客 | 方法 | 品目 | 数量 1 | 2010/08/10 | 武田 | 口頭 | もも大 | 53 2 | 2010/08/10 | 上坂 | 電話 | りんご | 3 3 | 2010/08/10 | 木村 | 電話 | もも | 3 品目 | 単価 もも大 | 200 りんご | 150 もも | 100 確認用としてテーブル名は変えてました。 「T商品情報」→「TS1」、「T品目」→「TS2」 添付図下段の設定をして表示を見てみると クエリをSQLビューで見た内容 SELECT TS1.年月日, TS1.顧客, TS1.方法, TS1.品目, TS1.数量, TS2.単価, [数量]*[単価] AS 合計 FROM TS1 LEFT JOIN TS2 ON TS1.品目 = TS2.品目; 表示されるのは 年月日 | 顧客 | 方法 | 品目 | 数量 | 単価 | 合計 2010/08/10 | 武田 | 口頭 | もも大 | 53 | 200 | 10,600 2010/08/10 | 上坂 | 電話 | りんご | 3 | 150 | 450 2010/08/10 | 木村 | 電話 | もも | 3 | 100 | 300 という事も出来ます。 上記テーブルの項目は、説明上のものです。実際には、 ・顧客の情報・・・連絡先やらナンチャラを持ちたいな ・品目名は1テーブルにまとめておきたいな・・・「もも大」とか「りんご」とか 雰囲気、以下の様な感じに発展していきます。 顧客用テーブル ・顧客ID(長整数:主キー) ・氏名 ・連絡先 ・会員登録日 ・支払方法 ・・・・ 品目用テーブル ・品目ID(長整数:主キー) ・品目名 ・単価 ・・・・ 方法用テーブル ・方法ID(長整数:主キー) ・方法 ・・・・ 受注用テーブル ・受注NO(オートナンバ:主キー) ・年月日 ・顧客ID(長整数) 顧客用テーブルの顧客ID ・方法ID(長整数) 方法用テーブルの方法ID ・品目ID(長整数) 品目用テーブルの品目ID ・数量 ・受注者 ・・・・ 受注用テーブルの「顧客ID」「方法ID」「品目ID」部分は、 テーブルのデザインで、 各テーブルをルックアップする設定にしておけば、見た目変わらないと思います。 上記では「方法」部分もテーブルに分けてみましたが・・・・ そこまでいらないと思ったら、ルックアップで値を選択するだけでも・・・ 品目部分もそうですが、品目内の「単価」・・・ これ、その時の単価を入れておけばいいや・・・・とか 単価を変更した履歴を持ちたいな・・・・とか いろいろ考えていると、 受注用テーブルにも、その時の単価を格納するようにしましょうか・・・とか いやいや、 品目テーブルには単価を持たせずに、単価の履歴用のテーブルを新設しましょう・・・とか どんどん発展していくと思います。 参考程度にしてください(参考になれば・・・ですが)

e4927777
質問者

補足

詳しいご説明、本当にありがとうございます。 私の説明不足もあり申し訳ありませんが、もう一度質問をさせてください。 到着したデータが、残念ながら下記のようなかたちでしか届きません。 例 ---------------------------T商品情報 年月日|品目情報 20010/8/10|武田様より、口頭にてもも大を53個受け付けました 20010/8/10|上坂様より、電話にてりんごを3個受け付けました 20010/8/10|木村様より、電話にてももを3個受け付けました そして、DB化(構築・運用)する必要もなく、ただ単にある期間での商品ごとの売り上げを把握したく思っております。DB化がすぐに行えるようなデータがそろっていれば、今回の問い合わせをせずに済んだのですが・・・申し訳ありません。 自分が行えずに悩んでいるところが、30246kikuさんに教えていただきました >年月日|品目情報 | 検索文字 >20010/8/10|武田様より、口頭にてもも大を53個受け付けました|もも大 >20010/8/10|上坂様より、電話にてりんごを3個受け付けました|りんご >20010/8/10|武田様より、口頭にてもも大を53個受け付けました|もも >20010/8/10|木村様より、電話にてももを3個受け付けました|もも >※ 「もも大」は、「もも大」はもちろんですが「もも」も含んでいるため ↑まさにこの結果で悩んでおります。 「もも大」は「もも大」として1行のみでクエリ結果を出したいのです。 他にも検索文字として部分的に品目名がかぶり、複数行クエリ結果が出てしまいます。 ---------------------------T品目 検索文字 1111569 1111 11115 --------------------------- などもあるのです。「1111」は「1111」として1行のみでクエリ結果を出したいです。 何かよい方法はありませんでしょうか?

関連するQ&A

  • ACCESS2003:ルックアップで表示に対応する別項目を入力したい

    リストボックスから選択できるのは 「りんご/バナナ/みかん」といった品名だが 実際に入力される値は「1/2/3」といった対応する 数値が入力されるようにしたいと思います。 テーブル:T売上 ------------- num: オートナンバー(主キー) item: 整数 ------------- テーブル:T品目 ------------- num: オートナンバー(主キー) name: 商品名 ------------- クエリ:Q売上 ------------- num: T売上.num item: T売上.item(ルックアップ設定) ------------- 上記クエリを作り、ルックアップには下記のようにしました。 ------------- 表示:リストボックス 値集合タイプ:テーブル/クエリ 値集合ソース:T品目 値連結:1 列数:2 ------------- リストボックスから選択入力することはできましたが、 表示も入力値も「T品目.num」になってしまいます。 表示は「T品目.item」、入力値は「T品目.num」のように したいのですが、そのようなことは可能でしょうか? 入力値を数値(num)にしたいのは、品名(item)が 変更になる可能性があるからです。

  • ACCESS 更新クエリについて

    更新クエリで更新したいのですが、クロス集計クエリの数値を元にテーブルを更新することは出来ないようで、困っています。 なぜそのようなことをしているかと申しますと、 商品品目_個数_コード(主キー) のようにフィールドを持っているのですが、 印刷に関しては品目ごとに印刷したい、ということで 一度クロス集計クエリ(TRANSFORM)で りんご_ばなな_ぶどう_コード(主キー) 数値_数値_数値_数値 のような並びにして、テーブル作成クエリでテーブルを作成し そのテーブルをレポートに使用しています。 数値などが変わった場合その作成したテーブルの数値を 作成元になったクロス集計クエリで更新したいのですが、出来なくて困っています。 テーブル作成クエリで上書きすると、古いデータが消えてしまうため 何か良い方法はないかと思っています。 回答のほどお願いします。

  • Access2002_検索フォームの作り方《初心者》

    既存のフォーム上に検索機能を追加させたいと思っております。 現在のフォームは社員の情報を入力していくものです。 既に入力されている社員の情報を変更するときにも使用します。 既存情報の変更はAccessの検索機能を使用して行っておりますが 今後Accessを使えない人でも変更処理が出来るよう、使いやすい検索機能を追加することになりました。 イメージとしては検索したい社員コードを入力し、検索ボタンを押すと該当の情報が表示されるようにしたいと思ってます。 いろいろ調べてみたところ、やりたいことに近いVBAコードをいくつか見かけましたがどうもうまくいきません。 下記のようなオブジェクトがある場合どのようなコードをどこに書けばよろしいでしょうか? 初心者なので出来るだけ手取り足取り教えていただけると助かります。 T_社員マスタ(テーブル) ・社員CD ・氏名 T_社員サブ(テーブル) ・社員CD ・住所 ・生年月日 ・血液型 Q_結合(選択クエリ) ・社員CD ・氏名 ・住所 ・生年月日 ・血液型 ↓このフォームに検索用機能を追加したいです F_検索&入力(フォーム) ・社員CD ・氏名 ・住所 ・生年月日 ・血液型 長々と申し訳ありません。 どうぞよろしくお願い致します。

  • アクセス[二重検索を防ぐ]

    アクセス初心者、つまづいてます。 テーブル:T部品情報 クエリ:Q部品 フォーム:F図番検索  があります。 1.Fで図番AB1111を、Q部品の中から検索させます。 2.1.で検索した情報をT部品情報に入れていきます。 が、TにAB1111の情報が既にあった場合、受け付けないようにしたいです。 且つ、できれば「その情報は入力済み」等のメッセージを表示させたい。 マクロでも関数でもよいので、何かよい方法はありませんか??

  • Accessで、複数のテーブルからデータを繋げたい

    ■テーブル1 2011年データ 行:名前 列:年月日 201101~201112 行:商品名 値:件数 ■テーブル2 2010年データ 行:名前 列:年月日 201001~201012 行:商品名 値:件数 となっております。 列を伸ばして、201001~201112までのデータにしたいのですが クエリの組み方が不明です。 ネットでサーチはしたのですが、該当のものが出てこず、良ければ教えて下さい!

  • ACCESSで「"」を検索する

    テーブルデータの中に「"」を文字として使用している場合 クエリーで抽出条件に「"」を入れて検索しようとすると 指定した式に不正な文字が含まれています と出て検索できずに困っています どうにか「"」を含むデータを検索できないでしょうか ちなみにACCESS97です

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

  • accessクエリの「SQL」を検索する方法

    accessクエリの中の 「select * form *****」 の中の文字列検索を複数のクエリを対象として実行できるようなソフトまたは 複数のクエリのSQLをテキスト化してくれるようなソフトはあるものでしょうか。 #クエリの結果のレコードの検索でなく、SQLの文字列を検索したいだけ。

  • アクセス 同じフィールド文字列を結合させたい

    お世話になります。実は、ほぼ同じ内容の問合せと回答があります。 http://okwave.jp/qa/q3023548.html これに、近いと思うのですが…。 この回答ならいける!と思い、やってみたのですが、これを利用しても自力では、うまく動かせませんでした。 (テーブル) 品目番号    集計列(テキスト型)    他の列   …   A1      "カレー,ハヤシ"       あ1    …   A1      "チキン,ビーフ"       あ1    …   B1      "バジル,タイム"       び1    …   …   ↓↓↓クエリ実行 (クエリ実行結果) 品目番号で列を集計するイメージで、しかし数値の合計でなく、キーワードの文字列を連結した結果にしたいのです。なお、他の列は『品目番号』と同様に出力したいです。 品目番号  集計列(テキスト型)          他の列   …   A1    "カレー,ハヤシ;チキン,ビーフ"     あ1   …   B1    "バジル,タイム"             び1    …   …   集計したい列の集計(文字列の結合)   "カレー,ハヤシ;チキン,ビーフ"         ↑↑↑結合の間は";"や","などで区切り文字を入れて アクセスは、初心者ですので、上記『q3023548』の中で丁寧に記載されている内容のコピーや簡単な手直しは、がんばれば出来ると思いますが、意味がよく分かっていないので修正必要な箇所については細かく教えて頂きたいです。上記の回答内容でも、まだ分からないの?!と言うレベルかと思います(苦笑)…。 上記の回答内容のSQLクエリ内『TOP 1』という部分などが、私の場合、列をすべて抽出するため、変わるのだと思いますが、やはり細かい部分が分かりません。出来ないことなのでしょうか…。 さらに可能であれば、複数の指定した列で同様なことが出来ると非常に助かります。『集計』の結果、区切り文字が連続しても構いません。(『;;;;;;;;;;;;;;』とか『,,,,,,,,,,,,,,,』という具合で…) 最終的には、帳票形式のフォームで結果を表示させます(複数の列でフィルタリング後)。 なので、多分、テーブル作成クエリになると思います…。 現在は、同じ品目番号のレコードがレコード分だけ、キーワード部分だけ変わりながら、何度も繰り返し表示される状態になっています。(各品目の画像を表示させるので帳票形式にしています。)これを1つの品目の表示を、1度にしたいです。 宜しくお願い致します。