販売管理のデータベースをAccess2000で、作ろうとしています。イチからデータを入力するのではなく、元になる(取り込んでデータベース化したい)CSVファイルが2種類ありますので、それをインポート、加工しようと考えています。
以下に元になるCSVファイルを簡単に記します。
【元ファイルA】
注文番号|商品番号| 購入数
--------------------------------------------
0001 | 100 | 5
0002 | 100 | 1
0002 | 125 | 1
0003 | 100 | 2
0003 | 125 | 2
0004 | 125 | 1
0005 | 100 | 4
0005 | 120 | 4
0005 | 125 | 4
0006 | 100 | 1
…というように、注文番号の重複がある、購入品のデータ
そして、
【元ファイルB】
注文番号| 個人名 | 住所 |TEL |支払方法
-------------------------------------------------------------------------------------
0001 | ○△×男 |■■県▲▲市|000-0000-0000|クレジット
0002 | △×○子 |▲▲県■■市|111-1111-1111|代金引換
0003 | ×○△夫 |■▲県▲■町|222-2222-2222|銀行振込
と、注文番号1つにつき1名の購入者・個人データ
この2つです。
これを、
注文番号|個人名|支払方法 |商品番号100|品番120|品番125|
------------------------------------------------------------------------------------
0001 |○△×男|クレジット |5(購入数) | 0 | 0 |
0002 |△×○子|代金引換 |1 | 1 | 0 |
0003 |×○△夫|銀行振込 |2 | 0 | 2 |
というふうに、注文番号をキーに統合したいのです。
タテヨコが複雑に絡み合っていて、どうすればいいかお手上げ状態でして…。
そもそも、こういう統合はムリなのでしょうか?
ぜひ、アドバイスをお願いいたします。
No.3ベストアンサー
- 回答日時:
なるほど、できるかなぁと思ってみたはいいが、アクセスをあまり使ったことがなかったのですね。
それは失礼しました。
たとえば、
元データAを、そのまま加工せずに、たとえば「明細」とでもテーブルに名前をつけてインポートします。
元データBも同様に、「注文票」とでもしてインポートします。
1、「クエリ」→「デザインビューでクエリを作成する」を選択。
2、そこでテーブルを選択していきます。
・・・が、これはヘルプかなにかで調べてみてください。
以下のように出力することが可能です。
注文番号|個人名|支払方法 |商品番号|購入数
---------------------------------------
001 |○△×男|クレジット|100|5
001 |○△×男|クレジット|120|0
001 |○△×男|クレジット|125|0
002 |△×○子|代金引換 |100|1
002 |△×○子|代金引換 |120|1
002 |△×○子|代金引換 |120|0
この形でも、十分に質問者さんの要望をかなえられるように思うのですが、いかがでしょう?
>「○△×男さんの買った商品をすべて表示するようなプログラム」
というのはどのようにすればよいのでしょうか?
これは、上記のように出力した後、
条件に「個人名=○△×男」と指定するやり方です。
一度ご自分で試されて、分からなかったときはどうぞ。
ご丁寧な回答に対して何も返答がない状況が続いておりまして、本当に失礼いたしました。
アクセス初心者でどうしていものかわからず途方にくれておりましたが、何とかできました。
ありがとうございました。
開始後半年、「ああしたい」「こうしたい」という思いをもちつつ、でもどうしていいかわからず、というような状況は未だに続いていおりますが、少しずつ勉強をしてこつこつと修正を付け加えております。
またどうにもこうにもできない状況が出てきましたら質問させていただきます。
本当にありがとうございました。
No.2
- 回答日時:
クロス集計クエリを使えば出来なくは無いですよ
但し、前提として・・・Accessの場合、フィールド数に制限があります
ですので、「商品番号」が、どれくらいのパターンがあるのか?
そう言う、もろもろの話があって、クロス集計クエリで、必ず可能とも言えないのも現実です
Access2000の場合、フィールド数が255個の制限だったような記憶があるので、「注文番号」、「個人名」、「支払方法」を除いた、252個の「商品番号」まで、扱えると考えるしかね
1 章 クロス集計の操作方法 - microsoft
http://www.microsoft.com/japan/office/previous/x …
と、言う感じね
御礼が遅くなりまして、失礼いたしました。
クロス集計クエリを使用し、何とかできました。
何もわからない素人がこつこつ作っているシステムなので(システムと呼ぶのもおこがましい?)、簡素なものではありますが、おかげさまでうまく稼動しております。
本当にありがとうございました。
No.1
- 回答日時:
正規化されてるテーブルをそんなふうにわざわざ?
アクセスに入れる段階では、元の通りがいいと思います。
そういうテーブルを作りたいといわれても、
商品がふえるたびにカラムが増えていくなんて、今後のことを考えたら無理です!
そんなもの作れといわれても、私なら断ります。
どうしてもその形にしたいのであれば、
エクセル上でまず加工して、その形でインポートするしたらどうですか? vlookupなど活用して。
その方が分かりやすいですよねたぶん。
でも、使い物になりませんよ。
注文番号をキーにして「001」と検索したときに
○△×男さんの買った商品をすべて表示するようなプログラムで対応できないのでしょうか?
つまり、2つのテーブルを結合して表示する、という方法です。
なぜ、そのように加工したいのでしょうか?
この回答への補足
ご回答ありがとうございます。
質問の補足です。
商品数は全部で10個(100,125なんて、紛らわしい例ですいません)なので、
問題はないです。
実はこのcsvファイルは、Webの通販で、
お客様が商品カートに各種項目を入力した後に、自動的に作成される
宅配業者の出荷伝票用のものでして。
【元ファイルA】が伝票データ(送り先住所の情報で使用)、
【元ファイルB】が商品データ(その日に出荷した商品の種類と数)と
なっています。
ではなぜテーブルをそのまま使わないか、というと…
「顧客によって、商品単価が違う」という問題がありまして。
(社内の諸々の事情により致し方なく…)
つまり、
注文番号=顧客別に、どの商品がどれだけの数出荷されたか、
ということをしっかり把握していないと、
・「請求書」の発行に支障をきたす
・「商品別売上金額表」「顧客別売上履歴・売上金額表」を作成する際、単価が違うので一律で計算できない
(例えば、商品番号100は、ある顧客には2100円、別の顧客には1840円、さらにまた別の顧客には…とキリがなくて)
という問題が発生しているのです。
というわけで、Accessで
注文番号|個人名|支払方法 |商品番号100|品番120|品番125|
------------------------------------------------------------------------------------
0001 |○△×男|クレジット |5(購入数) | 0 | 0 |
0002 |△×○子|代金引換 |1 | 1 | 0 |
0003 |×○△夫|銀行振込 |2 | 0 | 2 |
というテーブル(出荷総合(?)データ)のデータベースが作成できれば、
それを基に
「請求書」も「売上表」も作れるのではないかと思った次第でした。
(↑この考え自体がおかしい?)
これまでは、
【ファイルA】(顧客情報)を注文番号順に並べた上で
↓
つまり、
注文番号|個人名|支払方法 |商品番号100|品番120|品番125|
------------------------------------------------------------------------------------
0001 |○△×男|クレジット | | | |
0002 |△×○子|代金引換 | | | |
0003 |×○△夫|銀行振込 | | | |
と、ここまで準備して、
その後、
「商品購入数」は2度手間だなぁーと思いつつも
手動でセルに入力していたのです。
もちろん、人間のすることですから、
入力ミスが多少なりとも発生しており、
せっかく【ファイルB】(自動的に作成されるcsv=間違いがない)があるので、
何とか活かせないかと常々思っており、Accessならできるのでは、と
考えた次第で…。
ちなみにご回答の中にありました、
「○△×男さんの買った商品をすべて表示するようなプログラム」
というのはどのようにすればよいのでしょうか?
(重ね重ねすいません、Accessは初心者なのです)
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- 楽天市場 先程のにありがとうございます。ご入金の確認できました。 早速出荷の準備を行いますので、ご安心ください 1 2022/12/21 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
Accessでフォームに自動入力し...
-
アクセスクエリで教えて下さい...
-
【Access】Dcount関数の複数条...
-
Access VBA [リモートサーバー...
-
CSVファイルの「0落ち」にVBA
-
Accessのリンクテーブルのパス...
-
Accessで作ったデータベースをw...
-
Access VBA を利用して、フォル...
-
Accessのクエリの結果を、既存...
-
Accessのクエリで、replace関数...
-
ACCESS VBA でのエラー解決の根...
-
ACCESS2019でのエラーメッセージ
-
Access DAOのExecuteメソッドの...
-
Accessのスプレッドシートエク...
-
Access Error3061 パラメータが...
-
accessデータを指定したExcel、...
-
accessの代わりになるもの
-
日付のテキストボックスに(例...
-
Accessのテキストボックスの入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
運送会社の送り状の問合せ伝票...
-
アマゾンの流れについて教えて...
-
郵便局 web再配達依頼で番号入...
-
代引きで購入した商品の住所変...
-
置き配で頼んだ商品が 盗難に会...
-
ライフカードの発送完了メール...
-
日本郵便は何年後かに潰れると...
-
ゆうパケットプラスが郵便局か...
-
皇女 和宮が詠んだ和歌を教えて...
-
小型GPSで居場所追跡 3000円く...
-
宅配便到着について。「1週間...
-
現金書留は本人でなくても(代理...
-
知人にネコポスで保存食(常温)...
-
新卒です。会社に提出する書類...
-
郵便小包 追跡 大阪の同じ郵便...
-
発送予定日は2017/06/30頃より...
-
ゆうパケットポストってローソ...
-
メルカリのラクラクメルカリ便...
-
JCBカードwの発送準備完了から...
-
飛脚ゆうメール・・こんなのあり?
おすすめ情報