• 締切済み

Access 縦(行)のデータを横(列)並びに

Access2003のクエリについて質問です やりたいことは明確なのですが、過去ログを見ても似た事例がなかったので質問させていただきます。 ■現在の状態■ 機械納入テーブルに、当社が販売した機械情報が入っています、機械の種類は約100種類で、この100種を束ねているグループが13あり、このグループには機械の重要度(優先順位)が13位までついています。(優先順位 高:1位 低:13位) 顧客NO|機械名|優先順位 1001  |Z1 |5 1001  |Y5 |7 1001  |R1 |3 1001  |A1 |1 1002  |P1 |10 1002  |P2 |9 1003  |Q2 |11 1003  |S4 |1 1003  |S4 |1 1003  |S4 |1 1003  |S6 |2 ■実現したいこと■ このテーブルから、一つの顧客に入っている機械を 横並び一列で表示したいのです。 顧客NO|機械1|機械2|機械3 1001  |A1 |R1 |Y5 1002  |P2 |P1 | 1003  |S4 |S4 |S4 条件として ・左から優先順位の高いものを上位3位まで並べる ・同じ優先順位で機械名が異なる場合は、どちらの機械名を表示させても構わない ・機械名がカブっても構わない こうしたものはAccessのクエリを駆使して実現可能でしょうか? VBAで簡単なレポート出力フォームや、メール送信アプリを作ったことはあります、VBAでの解決策があればこちらもご教授ください。 説明に不備がありましたら補足します どうぞよろしくお願いします。

みんなの回答

  • Nikki1211
  • ベストアンサー率69% (9/13)
回答No.1

現在のテーブルのフィールドには「機械1」「機械2」のデータがありませんので、 いちばん簡単なクロス集計をすると 顧客No|1(優先順位)|2(優先順位)|3(優先順位) 1001 |A1    |R1    |Y5 1002 |P2    |P1    | 1003 |S4    |S4    |S4 のようにしかならないのですが、、、 新たに「機械1」「機械2」のようなフィールドを作って 表示させたいのでしょうか? そうなるとVBですね。 URL、ご参照ください。

参考URL:
http://www.mahoutsukaino.com/ac/ac2002/vba/vba16/v16_4.htm
amoamo
質問者

お礼

さっそくのご回答ありがとうございます。 クロス集計クエリで挑戦してみました これですと、列見出しに1~13位まで全ての優先順位が表示されますよね?もちろんフィルタで1~3までの表示に制限させることは可能だと思うのですが、優先順位が1~3の機械が入ってない顧客では、空白になってしまいます。 優先順位1・2・8・10の機械が4台入ってる会社であれば、1・2・8の3台を表示させたいのです。同様に、優先順位が1・1・1・2の機械4台入ってる会社であれば、表示させたいのは優先順位が1の3台です。 >>・同じ優先順位で機械名が異なる場合は、どちらの機械名を表示させても構わない ↑この表現は、優先順位1のものが4台入っているときの条件について書きました。わかりにくかった表現ですみませんでした。 Nikki1211様がおっしゃる >>新たに「機械1」「機械2」のようなフィールドを作って 表示させたいのでしょうか? 最終的に表示させたいのは、顧客No/機械1(優先順位)/機械2/機械3 の4列でかまいません。また、VBAを使って新たにテーブルを作るというよりは、クエリで常に新しいデータを参照できるようにしたいというのが希望です。

関連するQ&A

  • アクセスで同一テーブル内へのデータの追加

    こんにちは。Access2000を使用しています。 「顧客テーブル」には「お買上げ年度」と「顧客名」フィールド があります。 「お買上げ年度」= "2007"の顧客を、「お買上げ年度」 = "2008" として「顧客テーブル」内に追加したいのですが、一度仮テーブル やCSVファイルにデータを退避することなく、クエリやVBA(ADO)で 対応することは可能でしょうか?(=同一テーブル内への追加クエリ を実行したい。)よろしくお願いいたします。

  • アクセスでの考え方

    アクセスで販売管理のようなシステムをつくっています。 見出部と明細部があるようなフォームを作成していますが、以下のような動作をさせたいときには クエリ、VBAなどなどなにをもってその動作を実現するかを教えてほしいです。 1.見出部顧客名と顧客住所を入力するようにしているのですが、顧客テーブルに顧客名と顧客情報のフィールドがあり、顧客名を選べば顧客住所が入るようにしたい。 2.明細部に販売商品を入力できるようになっていますが、見出し部に販売ID(オートナンバー型)を キーにしているのですが一度入力した販売IDがきまれば見出し部の顧客名などを変更できないようにしたい。 3.みなさんはアクセスでシステムを作るときこのような動作や制御をしたいときどのように実現するような考え方を持っていますか?、可能な限りクエリで実現できるように考えてVBAは極力組まないようにしている、あるいは逆に可能な限りVBAで組むようにしてクエリではしないようにしているなど、効率的なアクセスでの動作の考え方のヒントになるような考え方を教えてください。 以上3点です、よろしくお願いします。

  • アクセスで重複データの入力

    アクセス97で顧客の管理しています。フォームから入力の際にカタカナで姓スペース名で入力していますが、入力の際に同じ名前があったら、メッセージでそのことが表示され、できれば内容が別フォームかテーブルでチェックできて、そこで入力を続行するか中止するか選択できるようにしたい。VBAが苦手なのでクエリーやマクロでできればうれしいのですが、簡単なVBAでできればVBAでも良いです。どなたか智恵をおかしください。

  • ACCESSで重複データをまとめたいのですが・・・

    ACCESSでアンケートを集計しています。 顧客名簿テーブルとアンケートテーブルがあり、 2つのテーブルは顧客IDで関連しています。 各テーブルを簡略化すると以下の通りです。 <顧客名簿テーブルのフィールド> 顧客ID(オートナンバー型)、名前(テキスト型)、住所(テキスト型) <アンケートテーブルのフィールド> アンケートID(オートナンバー型)、顧客ID(数値型)、回答1(数値型)、回答2(テキスト型)、回答3(メモ型) 顧客名簿テーブルとアンケートテーブルを顧客IDでつなげたクエリを作成し、 検索フォームでアンケートの内容で検索しています。 検索で絞り込んだ顧客を、レポートを作って リスト印刷したり宛名印刷したりしたいのですが、 アンケートに数回答えてる人は何回も出てきてしまいます。 これを一人1回だけ出てくるようにしたいのですが、 どうしたらよいのでしょうか? クエリをグループ化しようとしましたが、 メモ型フィールドがあるとダメみたいです。 ACCESS97を使用し、Windows98~XP Proで動かしています。 初心者ですので細かく教えていただければ幸いです。 よろしくお願いします。

  • ACCESSで複数のテーブルで同じ内容の行を抽出

    いつもお世話になっておりあます。 ACCESSのクエリ作成でお聞きしたき件ありまして、 投稿させていただきました。 下記の様な商品購入テーブルA・Bで ・・・テーブル定義・・・ テーブルA 顧客ID 商品名 テーブルB 顧客ID 商品名 ・・・入力データ・・・ テーブルA 顧客ID 商品ID 0001  あめ 0002 コーラ 0003  せんべい テーブルB 顧客ID 商品ID 0001  おかし 0002 コーラ 0003  わたあめ ・・・・・・・・・・・ とのテーブルにて テーブルAとテーブルBの同じ状態の行 0002 コーラ を抽出するには、どのようなクエリを作成すればよろしいのでしょうか? 見当がつかず、こまっております。 どなたか、御対応いただけますと、ありがたいです。

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • accessのデータで重複している行を削除したい

    accessのテーブルで、データシートに顧客のデータが入っています。 そこに、まったく同じデータが存在していますので、それを削除したい のですが、簡単に抽出して削除する方法等あるのでしょうか?? 重複クエリを試してみましたが、ちょっと違うようなので、 なにかいい方法を教えてください。 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • アクセス データの表示について

    アクセス2000 windows98です。 いくつかのテーブルを組み合わせ、計算やグループ化 などをして作った2つのクエリ同士を組み合わせてひとつ のクエリを作ったのですが、片方のクエリにしかない データは表示されません。 両方のクエリ(クエリを作った元のテーブルの両方に) にデータがないとだめなのです。 ひとつの商品を作るときにかかった費用で社内費と社外費 をそれぞれのクエリで計算してそれを組み合わせてひとつ のクエリを作ろうとしているので、社内費のみで作ること ができた商品は社外費のクエリには存在しないので商品名が表示されないという状況です。 多少アクセスのわかる方に聞きましたところ結合プロパティを片方のクエリにしかなくても表示できるように変えればよいと言われ、やってみたのですが良くわからずうまくいきません。 こちらは初心者ですので説明の仕方が下手でうまく 伝えられなくてすみません。 できるだけ簡単に教えて頂ければありがたいです。

  • アクセス2010 最新データを抽出する方法

    はじめまして。 アクセスを猛勉強中の初心者です。 過去記事を探しましたが、解決できませんでしたのでご教示お願いします。 やりたいことは、2つのテーブルからクエリを使って、最新のデータを抽出したいです。 ですが、その中に抽出したくないワードが存在します。 それ以外のワードで最新のデータを抽出したいです。 まず、下記のような2つのテーブルがあります。 ●テーブル1        ・ID(主キー)       ・日付 ・コメント ・顧客ID ●テーブル2 ・顧客ID(主キー) ・顧客名 ・住所 次にこのテーブルをクエリにしてデータを返すと、下記のようになります。 日付    コメント      顧客名    ・2/1     保留       Aさん ・2/1     発送       Bさん       ・2/1     相談       Cさん ・2/2    次回未定     Bさん ・2/3     発送       Aさん  ・2/4    次回未定     Dさん        今回抽出したいデータは、「発送」というワードをはぶいた最新のデータをとりたいということです。 なので、データとしては、 日付    コメント      顧客名    ・2/1     保留       Aさん ・2/1     相談       Cさん ・2/2    次回未定     Bさん ・2/4    次回未定     Dさん と、このように抽出したいのです。 最新データの抽出にはMax関数を使ってでき、いらないワードである「発送」はクエリのフィールドの抽出条件に『<>”発送”』と入力することで抽出を防ぐことができたのですが、これらの方法でMax関数を入れて最新データの抽出をしようとすると、全ての「発送」を除いたデータが抽出されるので、最新データに該当する顧客のデータが消えてしまいます。 なので、本来のコメントデータが分からない状態になります。 また、エクセル側でパラメータクエリを使って資料を作成し、アクセスに触ったことがない人たちが使用するので、アクセスを更新してといったことができません。 なので、更新クエリなどを使ってのやり方以外の方法はないでしょうか? 全くの初心者ですので、言葉足らずで説明が分かり辛くて申し訳ありません。 ご教示をお願いいたします。

  • ACCESS VBA 並び替え 列 カウント

    ACCESSを業務で使用し始めたものです。 ・特定のクエリから一定の操作をしたテーブル ・又は特定の複数のテーブルの抽出項目 を元にコマンドボタンを押した時、 一定操作を行ったテーブルを出力できるVBAソースを作成したいと思ってます。 (クエリ) (複数のテーブル) ⇒ (操作) ⇒ (特定の名前を持ったテーブル) (例)元となるクエリ(複数のテーブルの集合体)が以下にあります。 管理番号|NO|名前 1|NO.1|スプーン 2|NO.2|スプーン 3|NO.3|スプーン 4|NO.1|フォーク 5|NO.2|フォーク 6|""|ナイフ 7|NO.1|お鍋 以下のように一つのテーブルとして出力したい 名前|空白|管理番号|台数 スプーン|空白|1|3 フォーク|空白|4|2 ナイフ|空白|6|1 お鍋|空白|7|1 テーブル変換の機能 ・名前が同じ物の個数を表示する ・名前が同じ物の管理番号は若い番号にする ・列のならびを 管理番号|NO|名前 → 名前|空白|管理番号|台数 ・元のテーブルやクエリは消さない ・NOがふられていない項目についても台数をカウントする(ナイフのように) 至急に必要なので、コードを頂ければとても幸いですが やりかたの方向性でも結構です。 よろしくお願いいたします。