Accessでグループ化した結果フィールドをつなげるには?

このQ&Aのポイント
  • Access2003で区分/コードのテーブルをグループ化すると、コード部分を1つのフィールドにつなげることは可能です。
  • フィールド1/フィールド2に区分Aのコードと区分Bのコードを表示や印刷することができます。
  • コードのデータ件数に応じてコード部分をつなげることができるので、柔軟な表示が可能です。
回答を見る
  • ベストアンサー

Accessでグループ化した結果フィールドをつなげるには?

Accessでグループ化した結果フィールドをつなげるには? Access2003で 区分/コード A/123 A/456 A/789 B/234 B/567 というテーブルがあり、グループ化すると、区分Aのコードは123、456、789、 区分Bのコードは234、567と表示や印刷することはできます。 (たとえば、フォームやレポートのサブフォームなどに各コードを表示することはできます) これを、 フィールド1/フィールド2 A/123456789 B/234567 というふうにコード部分を1つのフィールドにつなげることは可能でしょうか? 上記のように、区分Aのデータ件数は3件、区分Bは2件というように コードのデータ件数はまちまちですが、それに対応してつなげたいと考えております。 よろしくお願いいたします。

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

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

例えば、3項目あれば、クロス集計クエリを使って A 123 1 A 456 2 A 789 3 B 234 1 B 567 2 となっているものを 0 1  2  3 A 123 456 789 B 234 567 にできます。 「0」「1」「2」「3」のフィールドが出来上がる。 出現数のカウントもできます。 工夫してこれが使えればこれが一番楽かと思います。

xchoxcho
質問者

お礼

ありがとうございます!! 試してみます!!!

xchoxcho
質問者

補足

やってみましたが、0123の出現数を出すことができません。 どうすればよいのでしょうか? すみません。よろしくお願いします。

その他の回答 (4)

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

過去に回答したものですが、わかりますでしょうか。 http://okwave.jp/qa/q4632210.html クエリでの例になっています。 (回答中のURL kotaete-net はもうないので見ることはできません) レポートでは別の方法があるようですが、 私が参考となるであろうそのURLを記述すると削除対象になっているので記述できません。 (そこを特定できるキーワードの提示も禁止されています) もしかしたら、他の方が提示してくださるかも知れません。

xchoxcho
質問者

お礼

ありがとうございます。助かります。 まだ解決はしていませんが、読んで挑戦しています。 似たような質問がたくさんありますね。解決方法もさまざまです。 自分ができる方法で、目的に一番近いものを検討し、挑戦してみます。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

レコード全体に連番をつける、グループ単位の連番をつける、こういうのはネットでも提供あります。 ほかはモジュールでやる案あり、クエリだけでは困難かと思います。 項目数最大でいくつでしょうか。 今回の1回だけの操作であればCSVに落とし連番付与する手もあります。

xchoxcho
質問者

お礼

1度目の回答にお礼をつけたかったのですが、すでに記入してしまったので、こちらにお礼させていただきます。 グループごとに連番を振る方法が分かってからは、layyさんのアドバイスとおり、クロス集計を使うことで、とても簡単に目的を達成できました。 本当に感謝、感謝、感謝!です。 ありがとうございました。また1つ、勉強になりました!!!

xchoxcho
質問者

補足

たびたびのアドバイスありがとうございます。 まず、今回1回だけの作業ではありません。データはランダムに増えていき、あるタイミングで質問した内容のようなフィールドのつなぎを行って、csv出力したいと考えています。 つなげる区分の数は、データによって異なり、いくつと指定することはできません。また、どのくらいの数発生するのかも、データによるので、場合によっては何百件と発生する(かも)しれません。 おそらく、平均して多くても10件くらいだとは思いますが。。。 勉強不足&説明不足あって、お手間をとらせて申し訳ありません。 現在、グループ単位の連番をつける方法を調べています。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

(1) 区分/コード A/123 A/456 A/789 B/234 B/567 このレコードを フィールド1/フィールド2 A/123456789 B/234567 このようにくっつけるときのくっつける 順序には何か規定がありますか。 たとえば、 A/123456789 が A/456789123 のようにくっついてもいいのですか。 くっつける順序はあるのですか。 (2) また、 区分/コード A/123 A/456 A/789 B/234 B/567 のレコードの並びを規定する主キー、 たとえばオートナンバーのようなものが あるのか、などです。 そのあたりはどうですか。

xchoxcho
質問者

補足

お返事遅くなりまして申し訳ありません。 くっつける時の順番はありません。順不同でけっこうですが、もし、それならば、例えば「/」などの記号を入れてつなげたいと(できれば)考えています。 記号が入らなければ、そのまま順不同でつなげるでけっこうです。 よろしくお願いいたします。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

YU-TANG さんの DJoin 関数を使うのがよろしいかと。 ググれば出てくるでしょう。

xchoxcho
質問者

お礼

アドバイスありがとうございます。 Djoinは質問する前に拝見させていただきました。が、なかなか難しく^^;) クエリ等を工夫して利用できる方法はないかと思い、質問させていただきました。 勉強不足で申し訳ありません。

関連するQ&A

  • ACCESS サブフォームのフィールドにカーソルをあてる

    ACCESS2003で、VBAで簡単なプログラムを作っています。 <やっていること> ・フォームAからフォームBを開きます。 ・そのときにフォームAの番号と一致するデータをフォームBに表示します。 ・フォームBにはサブフォームCが埋め込んでいます。 このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、 Forms!サブフォームC!フィールドD.setfocus としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。 フィールドDというフィールドは存在しています。 このような場合、どのように記述するのがよろしいのでしょうか。 よろしくお願いします。

  • access2003コンボBOXの絞込み

    部品マスターテーブル内に300件以上のデータがあります。 部品マスターテーブル 品ID  品区分  品コード  品名  ****  ****  ・    a  ・ b *製品仕様のサブフォーム内に部品構成を作るのですが 製品仕様フォーム  製品コード 999   製品名 ZZZ    構成 sub   999  品ID 品区分 品コード 品名  員数 ****   ・   ・ 現在品コードをコンボBOXのリストから入力していますが 300件以上表示され見つけ出すのが大変です。 品区分のカテゴリでANDの絞り込みができれば表示件数は1/10に減ります。レコード入力の際サブフォームからの入力時にできないものでしょうか? 

  • accessでフィールドを連携させたい

    access2002をつかっています。 テーブルAの中のリストに、IDのフィールドがあり、 そこにひもづいたテーブルBがあります。 (例えば、テーブルAが人のデータで、  テーブルBがその人との対応履歴です。) フォームで、テーブルAの一覧リスト(表形式)がまず見られるものをつくりました。 そこから、「詳細をみる」というボタンをつけて、 押すと、リストBの中でひもづいているものだけ見えます。(単票形式で) 見る分にはこれでよかったのですが、 そこから新規にテーブルBに書き込むときに、 AのIDを勝手に書き込んでほしいのです。 (引き継いでほしい。) でも、現状では、そのボタンを押して、 その先で新規に、Bへデータを書き込もうとすると、 ID部分は引き継がれません。 最初からサブフォームなどのウィザードでつくれば よかったのかもしれませんが、 この状態からうまくできる方法はありませんか? とっても分りづらい説明で申し訳ないのですが、 もしわかる方がいらっしゃいましたら、教えてください。

  • Access 連結フィールド値を自動で表示

    Accessでフォーム上にサブフォーム(データシート)を作成すると、 新規レコード欄にも自動的に連結フィールドの値が表示されます。 このサブフォームをメインフォーム上に作らずに、 コマンドボタンクリック時にあるフィールドが一致する(上記で言う連結フィールド)データを表示したサブフォーム(データシート)を開くかたちにしたいのですが、そうすると当然ながら新規レコード欄には連結フィールドの値は表示されません。 これをメインフォーム上にサブフォームを作った時と同じように、新規レコード欄に連結フィールド値を表示させるにはどうしたら良いでしょうか? サブフォームを開く段階で新規レコードに結合フィールドの値を(VBAで)入力する事も考えましたが、そうするともしそこにデータを入れるつもりじゃなくても1つのレコードとしてデータが残ってしまいます。 メインフォーム上に作ったサブフォームなら、新規レコードに結合フィールドの値は表示されているものの、その他のフィールドにデータを入力しなければ1つのレコードとしてデータが残ることはありません。 こういう事が可能かどうかわかりませんが、ご存知でしたら教えてくださいませ。 よろしくお願いします!

  • Access2000で、フィールド間のデータを併せる

    いつも大変お世話になっております。 Access2000での質問です。 例えば、1つのテーブル内に「入荷番号」というフィールドと「入荷区分」というフィールドがあり、「入荷番号」には、「12345678」というデータが入っていて、「入荷区分」には、「A」というデータが入っているとします。 この2つのデータを合体させて「12345678A」というデータを作る(別のフィールドに作る)には、どうしたらいいのでしょうか? お手数ですが、アドバイスいただけるとありがたいです。 よろしくお願いします。

  • アクセス開発で質問

     こんにちは、かなりの難関が迫ってきました。  現在WinXPでアクセス97の簡易アプリを開発しています。それの仕様を簡単にすると次の通りです。テーブルのフィールドには「団体名」「団体区分」の二つがあり、それをフォーム上に表示する。また、フォーム上のコンボボックスで「団体区分」を選択すると、その区分に属する「団体名」が全て表示される仕組みです。それで、ここまではできました。しかし、追加で指示された仕様ができません。それは、「団体区分」に何件の「団体名」が属しているか数えて表示するとの事です。どうすればよいですか?お願いします。  簡単なのは、アクセスで抽出をしたとき画面下に表れる、データ件数を参照して更新すれば良いのでしょうが、その方法がわかりません。データの件数をカウントする方法があれば教えてください。また、別の方法で簡単なものがあれば提示してください。 PS  わかりやすく説明してくださいね。

  • access で「指定したフィールドが多すぎたため、・・」エラーが出ます。

    こんにちは、 ACCESS2002でレポートを作ろうとしていますが、 「指定したフィールドが多すぎたため、フォームまたはレポートを作成できませんでした。指定するフィールドの数を減らして再度実行してください。」というエラーが出ます。 3つのテーブルからデータを持ってくる。 テーブルはリレーションを持っている。 フィールド数が50もないですし、また以前同じような作りのレポートを作ったときは問題がありませんでした。 上記の事で何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • ACCESSのフィールドの更新

    マイクロソフトACCESSフォームAでテーブルBのCフィールドの更新は出来るのですが、フォームDから連結でテーブルBのCフィールドの更新が出来ません。(同じようにして2個作成したシステムのうち1個は出来たのですが、もう1個がどうしても出来ません:テーブル,クエリ,フサブフォーム,フォームの違いを捜しているのですが見当たりません。)

  • accessのレポートで…

    レポート(テーブル1から作成)にあるフィールド1には「1・2・3…」という数字が入っています。 この1・2・3はテーブル2(ID・名前)とリンクしています。 フォーム上ではコンボボックスにして、テーブル2の名前も表示するようになっています。 (テーブルに値としては入っていません) これでレポートを作成した場合、テーブル2の名前を表示させたいのですが、テキストボックスで Iif([フィールド1] = "1","****",Iif(… というようにしてしまうと、せっかくリンクにしたのにデータが固定になってしまうのを避けたいんです。 フォームだとコンボボックスの更新後処理とレコードの移動にコードをかけば最新の情報を表示することができたんですが、レポートでもこのようなことはできるんでしょうか? (コードをかいて処理したいです) Access2000です。 よろしくお願いします。

  • Access リレーションのある項目並び替え

    一人で、初めてAccessに取り組んでいます。 相談できる人が周りに居ないので、助けてください。 2つのテーブルがあります。 テーブルデータA    ヘッダーID(オート)    グループ名    区分    文書名 テーブルデータB    区分ID(オート)    区分インデックス    部品名 テーブルデータA”区分”と、テーブルデータB”区分インデックス”が、リレーションシップで繋がっています。 テーブルデータAを、”区分”の昇順で並び替えをして、フォーム上で表示させたいのですが、 フォーム上で表示させる以前に、データシートビューで確認するも、並び替えが出来ません。 テーブルデータBをデータシートビューで表示すれば、”区分インデックス”順に並ぶのですが、 テーブルデータAをデータシートビューで表示すると、昇順も降順も変化なく、”区分”で並び替えができません。(バラバラの状態です) ちなみに、”区分”及び”区分インデックス”は、テキスト型12桁です。 リレーションシップが付いてる項目は、並び替えができないのでしょうか?

専門家に質問してみよう