• ベストアンサー

Accessの重複データについて

下記のようなフィールドでできたテーブルがあります。 NO│Eメールアドレス│商品名 このデータには同じEメールアドレスで商品名が複数あります。 それを1つのEメールアドレスに対して Eメールアドレス│商品名1│商品名2│商品名3…… のようなテーブルに加工したいのですが 可能でしょうか?

noname#121624
noname#121624

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.6

>フィールド数は最大10ぐらいです ということなので・・Accessだけで処理も可能だと思います。 NO│Eメールアドレス│商品名 のテーブルに日付のフィールドでもあれば同一の日付で同一のEメールアドレスのレコード数をカウントするフィールドを作り1からの連番を立てます。 フィールド数は最大10であれば・・ そのレコードのカウントするフィールドが1であるレコードを抽出するクエリを作ります。同じように抽出するカウントをあと2~10までの全10個のクエリを作成します。Eメールアドレスをグループ化するクエリを1つ作りそのEメールアドレスのクエリにレコードカウントの1~10までのクエリを追加して結合プロパティをEメールアドレスの全レコードとレコードカウントクエリの同じ結合フィールドのレコードだけを含めるにします。その結合を各々のカウントを抽出するクエリにEメールアドレスへ同じように結合させてEメールアドレスと1~10の商品名のフィールドを表示するようにすればできます。

noname#121624
質問者

お礼

ご回答有難うございます。 お教えいただいた通りやってみましたところ、うまくいきました。 こんな方法があったとは…。 せっぱつまっていたので助かりました。 本当に有難うございました。

その他の回答 (5)

  • keikan
  • ベストアンサー率42% (75/176)
回答No.5

追加です [Eメールアドレス]グループフッターのプロパティーで「書式-改段」を”カレントセレクションの後”としてください。

noname#121624
質問者

お礼

#4と#5合わせてのお礼を申し上げます。 たいへん分かり易く説明していただき有難うございました。 形としてはうまくいったのですが、Wordの差し込み印刷のデータとして利用できませんでした。 私の知識不足かもしれません。 でも、良い勉強になりました。 有難うございました。

  • keikan
  • ベストアンサー率42% (75/176)
回答No.4

>メールアドレスでグループ化して各商品一覧を詳細に張り込み、必要に応じてページ設定-レイアウトで列数を増やせば擬似的に横にも配置できるかとは思います。 に関しては、レポートで実現します。 1.レポートを新規作成する。データソースを題意のソースまたはクエリーとします。 2.レポートにグループヘッダー(「メニュー」-「表示」-「並べ替え・グループ化の設定」)を表示する。 3.Eメールアドレスをグループ化し、グループヘッダー欄及びグループフッター欄を表示させる 4.Eメールアドレスのグループヘッダーに[Eメールアドレス]項目を追加する。(「表示」-「フィールドリスト」・・からドラッグアンドドロップ) 5.詳細に[商品名]項目を4.と同様に追加 6.レポートの幅をできるだけ小さくしてください 7.ファイル-ページ設定でレイアウトタブで、行列設定で列数を10(必要に応じて変更してください) 8.同タブの印刷方向を上から下へにチェック 9.プレビュー この際、用紙からはみ出す等のメッセージが出た場合は、ページ設定で用紙を大きくするか、レポートの幅を小さくするか、列数を減らしてください。 10.プレビュー画面からツール-officeLink-Wordを実行 こんな感じですがいかがでしょうか。

  • keikan
  • ベストアンサー率42% (75/176)
回答No.3

項目数が可変になる構造ですので、通常はできませんが、 クロス集計ウィザードを利用すると擬似的にこのようなテーブルを構築することができますが、この場合商品が増える毎に構築する必要があるのと、クロス集計したデーターは変更できないというのがあります。(あくまで項目名として登録される) また、Wordで表示するのが前提ならば、 メールアドレスでグループ化して各商品一覧を詳細に張り込み、必要に応じてページ設定-レイアウトで列数を増やせば擬似的に横にも配置できるかとは思います。 最終的にはofficeLink機能を使ってWordには展開できると思います。 あとは、クエリーで単一メールアドレスだけ絞り込んで、Excelに出力し、Excelで行と列を入れ替えてCSV形式などで保存すれば、差し込み用データとして利用できるかもしれません。

noname#121624
質問者

お礼

丁寧にご回答いただき有難うございます。 >メールアドレスでグループ化して各商品一覧を詳細に張り込み、必要に応じてページ設定-レイアウトで列数を増やせば擬似的に横にも配置できるかとは思います。 の実際の操作がよく分からないのですが、もしよろしければ教えていただけないでしょうか。

  • palmmy
  • ベストアンサー率38% (841/2170)
回答No.2

商品名のフィールド数はMAX何個までですか? 1このときも100このときも有ると思います。 という場合は難しいと思います。 例えばMAX5個ならば、元のテーブルを読みながら 値をセットしていくVBAを書けば可能だと思います。 取引によって、商品件数が変わる場合、データを横に 持たない方が良いと思いますが。

noname#121624
質問者

お礼

ご回答有難うございます。 フィールド数は最大10ぐらいです。 やはりVBAに行き着くのでしょうか。 Accessの機能だけで何とかなればと思ったのですが。 VBAも考慮にいれてやってみます。

noname#21585
noname#21585
回答No.1

不可能ではないと思いますが、 Eメールアドレス│商品名1│商品名2│商品名3…… というフィールドのテーブルを作ったとして、 │商品名1│商品名2│商品名3…… のフィールドには、どのような値が格納されるのでしょうか。その商品の、Eメールに対応する個数でしょうか。ひょっとしたら、テーブルを作るのではなくクロス集計クエリを作成した方がよいかもしれません。

noname#121624
質問者

補足

ご回答有難うございます。 メールアドレス「aaa@111」という顧客が衣類を3着注文したとします。 それが商品1・商品2・商品3になります。 個数ではなくてそれぞれの商品名を格納したいのですが…。 最終目的はこのデータを差し込みのメールとしてWordから送りたいと考えております。

関連するQ&A

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • Access データを複数行に貼り付ける方法

    Access2013 テーブルの フィールドで 1つのセルのデータ(例/商品名)をコピーし、 同じフィールドの連続した複数行に貼り付ける方法を教えて下さい。 Excelの様にやってみたのですが出来なかったので。 宜しくお願いします。

  • ACCESSのデータを単一化したい

    あるテーブルにデータが10000件ほどあります。 そしてNOフィールドには数値が入っているのですが、 その数値は基本的にユニークですが、たまに同じ数値が入っています。 NOフィールドを単一化するクエリをくみたいのですが、どうしたらいいのでしょうか。宜しくお願い致します。

  • Accessで重複データを結合するには?

    こんにちわ、みなさん。 Access超初心者です。よろしくお願いします。 Accessのテーブルで下記のようなデータがあるとします。  店名  | 商品 |  A店  |リンゴ |  A店  |トマト |  A店  |ナシ  |  B店  |リンゴ |  B店  |みかん | これを下記のように店名ごとに商品名を結合したいのです。 (レポートではなく、テーブルにしたいです)  店名  | 商品        |  A店  |リンゴ;トマト;ナシ |  B店  |リンゴ;みかん    |   重複クエリーを使えばと思ったのですが、 思ったとおりにはなりませんでした。。 どうぞ、よろしくお願い致します。m(__)m ---------------------------------------- OSは、Windows 98 アプリケーションは、Access 2000 です ----------------------------------------

  • Accessで重複したデータを削除したい。

    AテーブルとBテーブルがあります。AテーブルとBテーブルのフィールド名は同じですがデータはそれぞれ違います。AテーブルとBテーブルにあるデータを一つにまとめたいのですが、その際に、 「AテーブルとBテーブルの間で重複したデータがあるのでそれを削除したい。」のですが、手順としてどのような方法がスマートなのでしょうか。 (1)BテーブルをAテーブルに追加クエリで追加する。 (2)Aテーブルで重複クエリを作成し、重複しているデータを表示する。 ・・・・とここまで考えたのですが重複しているデータをどのように削除していけばいいかわかりません・・・。根本的にやり方が間違っているのでしょうか。どなたか詳しい方、いい方法を教えてください。よろしくお願い致します。

  • ACCESS2007 重複について

    ACCESS2007を使用してます。 下記のように、IDコードのフィールドがあり、このコードに対して、重複しているデータ全てにフラグ1をたてたいのです。 <現在のテーブル> IDコード  ――――――+ 12345  12345  12378  12378  23457  23489  23456  <作成したいテーブル> IDコード 重複フラグ ――――――+――――――――+ 12345 1 12345 1 12378 1 12378 1 23457  23489  23456  重複フラグのフィールドは、現在のテーブルにありません。 どのようなクエリやSQLを作成すればいいでしょうか? よろしくお願い致します。

  • Accessでテーブルからテーブルにデータをコピーしたい

    こんにちは。loooserと申します。 Accessでアプリケーションを作ろうとしているのですが、テーブルからテーブルにデータをコピーする方法が分かりません。 テーブル1には name price comment というフィールドがあり、 テーブル1'には no name price comment flag という5つのフィールドがあるとして、 テーブル1の3つのフィールドをテーブル2に移動したいと考えています。 他にもテーブルが複数あり、フィールド数は固定でないのです。 列数を取得してループするという感じだと思うのですが、全く知識がなく、お知恵をお借りできればと思っております。参考URLなどでも結構ですので、どうかお願いします。

  • access97でのデータ利用方法について

    AテーブルのレコードとBテーブルのフィールドをリレーションさせる方法はあるのでしょうか やろうとしている事は、Bテーブルの各フィールドにはそれぞれの商品数量があって、そのフィールド(商品名)の単価をAテーブルから参照させたいのですが 主キーがAテーブルでは、商品名に出来そうですが、Bテーブルは、商品名が フィールドとなっているので 配列のような概念が利用できないかとも思ってマニュアル探してみましたが判りませんでした。それともデータベースの考え方が間違っているのでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします。

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

専門家に質問してみよう