• ベストアンサー

Accessの重複データについて

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

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

  • ベストアンサー
  • 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/2169)
回答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