• 締切済み

アクセスのデータをCSVファイルで変更する。

質問失礼いたします。 アクセスで商品管理をしているものです。 フィールド名-商品番号(主キー)、商品名、仕入額、売上額、仕入れ日、売上日というテーブルがあります。商品番号はオートナンバーでレコードが1~13000ほどあります。 もともと、商品番号、商品名、仕入額、仕入れ日欄にはそれぞれ記入されているのですが売上額、売上日は空欄になっています。 そして、商品の取引の際、別のソフトを使っていて結果的に1行目が商品番号、商品名、売上額、売上日のCSVファイルを作成します。 このCSVファイルを使って一括でアクセスに反映させることは可能でしょうか? 例えば、アクセスのテーブルに 商品番号・商品名・仕入額・売上額・仕入れ日 ・売上日 1000・りんご・20円・(空欄)2007/12/6・(空欄)     1001・みかん・30円・(空欄)2007/12/6・(空欄) 1002・いちご・20円・(空欄)2007/12/6・(空欄) 1003・ばなな・20円・(空欄)2007/12/6・(空欄) 1004・さんま・20円・(空欄)2007/12/8・(空欄) 1005・はまち・20円・(空欄)2007/12/8・(空欄) 1006・まぐろ・20円・(空欄)2007/12/8・(空欄) 1007・ごぼう・20円・(空欄)2007/12/8・(空欄) 1008・おくら・20円・(空欄)2007/12/8・(空欄) といったレコードがあります。 そして、商品の取引が終わって下記ようなCSVファイルが出来ます。 商品番号・商品名・売上額・売上日 1000・りんご・50円・2007/12/9 1003・ばなな・50円・2007/12/9 1005・はまち・70円・2007/12/9 1008・おくら・90円・2007/12/9 このCSVファイルを使ってアクセスのテーブルの(空欄)に一括で取り込むといった感じのことです。説明下手で申し訳ないです。。 商品データが10000以上あり、日々の入金が50件ほどあり、手動でやるのは時間が掛かってしょうがないので一括で変更できるやり方を考えています。。 どなたがご教授の程、よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

今更新データがCSVファイルだと、言うだけで、平凡なアクセスの問題です。 (1)ADOなどを使ってマスタテーブル(ただしキーでソート後のクエリ)を1レコードづつ読み、CSVファイルも1コードごと読み、キーで マッチングして、CSV側からマスタへデータを渡す。更新後のマスタを書き出す。 http://vine-linux.ddo.jp/access/form/data_form_edit2.php のようなイメージのもの。これはイメージ例。 (2)CSVファイルをアクセスのテーブルとして取り込み、SQLなどでCsvから来たデータで更新する (3)CSVファイルをアクセスのテーブルとして取り込み、アクセスの操作として(アクセスのデザイングリッドの作成)、更新を実現する。 ーー 質問者は質問振りから、(1)(2)は今すぐは無理でしょうから (3)のやり方を、解説書など読んで勉強すべきです。 講習会テキストにも載っている標準の課題ですから勉強してください。判らなかったら解説書の課題で似たものを探すこと。 そうすればこんなに丸投げの、質問にならないはずです。 まずCSVファイルをアクセスにインポートする方法を勉強すること。 マスタとCVSからのテーブルをアクセスのデザイングリッドの作成までもって行って、色々やって質問されたい。 ーー CSV=>アクセス オブジェクトの「テーブル」部で右クリック 「インポート」を選ぶ ファイル一覧が出るから、「*.CSV」と入れてENTER CSVファイル一覧が出るから選択する。 「テキストインポートウイザード」が出るから指示に従い 次へ 次へ 完了 でテーブルができるはず。 ここからが勉強です。

  • assault852
  • ベストアンサー率48% (1364/2797)
回答No.1

更新クエリを作成すればよいのでは? みたところ、さほど難しいことをしているとは思えませんが。

関連するQ&A

  • Accessのテーブル結合方法

    Access2000で商品の仕入と売上の受払を一覧表にしようとしているのですがうまくいきません。 テーブルは商品仕入と、売上の2つがあって 仕入には荷受した日、商品コード、数量、仕入金額と値入金額、仕入先があります。 売上には売上した日、商品コード、レジ番号、利用者、数量、売上金額となっています。 この2つを1枚の表にして、商品コード別に在庫が動いた日、適用(売上ならレジ番号、利用者を表記して、仕入なら仕入先を明記)、仕入数量、仕入金額、値入金額、売上数量、売上金額となるようにしたいのですが、うまくいきません。 ユニオンクエリを使ったり、選択クエリで単純にならべたりしたのですが、私の知識ではどうにもならなくなりました。 よろしくご指導のほどお願いします。

  • VBAで複数のCSVからレコードセットを作りたい

    D:\DATA\ORDER\SOURCE.CSVに売上のデータがあり、 D:\DATA\STOCK\SOURCE.CSVに在庫のデータがあります。 売上には 注文NO,売上日,売上額,在庫NO 在庫には 在庫NO,仕入日,仕入額 とあるとして 在庫.在庫NO,利益,滞留日数,売上.注文NOというような、2つのCSVを結合した結果をADOでレコードセットに格納したい場合どのようなソースになるのでしょうか? 一つのCSVからレコードセットに結果を格納するやりかたならネットに多々掲載されてますが、複数のCSVについてのやり方の掲載が探せなかったので質問します。

  • htmlをcsvデータから置き換え

    商品ページを500ページほど作ることになったのですが、何かいい方法はないかとご質問させていただきます。 テンプレートとなるhtmlは制作しました。 csvデータも用意してあります。 例えば、csvデータにある商品名をhtml内の<title>商品名</title>に置き換えてhtmlファイルを一括で生成できるソフトなどはあるでしょうか?。

    • ベストアンサー
    • HTML
  • プログラミング初心者です。CSVファイルのデータ編集がうまくできません。

    学校の課題が全く進まなくて困ってます・・・ 問題:「販売日」,「顧客名」,「商品名」,「単価」,「数量」のデータがコンマ区切りで記述されているCSV ファイルが与えられたとする. そこで,以下のことを実行するプログラムを作成せよ. 1. CSV ファイルのデータに加え,各行に「売上金額」のデータを追加したファイルを出力する.  なお,「売上金額」は「単価×数量」である. 2.顧客別の売上金額を記述したCSVファイルを出力する.なお,売上金額の降順でデータを記述すること. 3. 商品別の売上金額を記述したCSVファイルを出力する.なお,売上金額の降順でデータを記述すること. 4. 商品別の販売数を記述したCSVファイルを出力する.なお,販売数の昇順にデータを記述すること. 与えられたCSVファイルの一部↓ 販売日,顧客名,商品名,単価,数量 2006/4/1,菓子工房 春,季節のアイスセット,1800 ,5 2006/4/1,有)井上製パン,ゼリーセット,1500 ,3 2006/4/4,グルメット下条,クッキー詰め合わせ,2300 ,2 2006/4/4,北野フルーツプラザ,フローズンフルーツ,2200 ,6 2006/4/5,TEA LON,紅茶ケーキ,1000 ,2 2006/4/5,北野フルーツプラザ,フローズンフルーツ,2200 ,1 2006/4/8,有)井上製パン,シナモンパンセット,900 ,4 ・・・ 1はなんとかクリアできたのですが、2以降で完全に詰まりました。 顧客別(商品別)に売上をまとめる方法が思いつかないんです。 どなたか知恵を貸していただけないでしょうか・・・

    • ベストアンサー
    • Perl
  • このCSVを加工してからアクセスに取り込むべきか、アクセス上で加工できるか教えてください

    あるショッピングカートで出力されるCSVが下記のようになっており、 発送作業に使うために加工が必要と思っております。 【元のCSV】 受注日時、商品番号1数量1サイズ1商品番号2数量2サイズ2・・・、金額 2010/3/28 8:50,<>2S000001:5:::,6500 2010/3/29 9:52,<>1S000004:1::S:<>1S000002:3::L:,13700 2010/3/30 16:25,<>1S000003:1:::<>1S000002:3::L:<>2S000001:1:::,27700 【加工後のCSV】 受注日時、金額、商品番号1、数量1、サイズ1、商品番号2、数量2、サイズ2、・・・ 2010/3/28 8:50,6500,2S000001,5, 2010/3/29 9:52,13700,1S000004,1,S,1S000002,3,L 2010/3/30 16:25,27700,1S000003,1,,1S000002,3,L,2S000001,1, 元のCSVでは全ての商品番号、数量、サイズが1組のコンマの中に収められてしまっているのが問題なんです。 1レコードの商品数は、1回の買い物で何種類の商品を購入するか分からなく、 限度を決められないので、延々と増えてもいいように末尾に置くしかないかと。 本当は元のCSVをアクセスのテーブルにリンクさせ、クエリーで一発解決したいのですが、 無理であれば一旦CSVを正規表現で加工してから、アクセスに取り込もうかと思っています。 アクセス内で解決する方法か、CSV上で一次加工するアドバイスをお願いします。

  • Access DB 商品名の扱いについて

    (テーブル名):(フィールド名) 商品テーブル:商品名。 単価数量テーブル:商品単価、数量、仕入番号、商品名。 仕入テーブル:仕入番号、仕入日、注文日、手数料、輸送費など。 売上テーブル:売上、販売日付、仕入番号、商品名。 リレーションシップ:一対多 商品テーブル商品名-単価数量テーブル商品名 商品テーブル商品名-売上テーブル商品名 仕入テーブル仕入番号-売上テーブル仕入番号 仕入テーブル仕入番号-単価数量テーブル仕入番号 このように作成しました。 ここで問題なのが、商品名の入力です。 仕入テーブルをメイン、単価数量テーブルをサブフォームにしてフォームを作成しました。 さて、商品名を単価数量テーブル商品名フィールドのサブフォームから入力・・・と思ったら、商品テーブル商品名フィールドに名前がないためエラーが出ます。(参照整合性をしているため) サブフォームの入力フィールドを商品テーブル商品名に変更すれば入力できます。 しかし、重複した商品名を入力できません(重複しないに設定しているため) 何故このようなことをするか?ですが、同じ商品でも購入日が違えば単価が違う場合があります。 ですので単価数量テーブルでは同じ商品名を使用する必要があります。 しかし、商品テーブルでは同じ商品名は必要ありません。 もちろん先に商品テーブルに商品名を入力すれば問題ありませんが、入力効率から言って問題あります。 さてここで質問なのですが、一対多の多から商品名を入力して一側に反映できないでしょうか? 一側にすでに同じ商品名がある場合は反映してはいけません。 ちないにVBAやSQLはコピペぐらいはできますが、書けませんのでご了承を。

  • 商品の仕入れや売り上げなどを管理するソフトについて

    楽器屋で働いているのですが、商品の仕入れや売上などを管理するというのがまだできてません パソコンのソフトをつかって管理するのがいいと思い専用のソフトを買ったのですが、本格的すぎて扱いがめんどくさいです そこでシンプルで扱いやすいソフト(できればフリー)を探しているのですがなかなか見つかりません 内容としては 商品名、仕入れ額、販売額、売上額、日付 といった感じでしょうか 自分の思うように少しいじれるものが理想的です なにかありましたら教えてくださると助かります

  • アクセス2003 クエリの書式

    いつもお世話になっています。 商品テーブルや仕入テーブルなど数種類を作り、それを基にクエリをいくつか作りました。 テーブル[仕入記録]から各商品の直近仕入額を抽出したクエリ[直近仕入額クエリ]とテーブル[商品マスター]を組み合わせ、仕入れのない商品(仕入記録に入力がない商品)はNz関数で0になるようにしました。 そうしたところ商品名や金額はあっているのに、直近仕入額の書式が文字列のような表示になってしまいました。 もちろん[直近仕入額]やその他のテーブルで金額のフィールドは全て書式を通貨にしています。 Nz関数の使い方がおかしいのでしょうか? それとも他に原因があるんでしょうか? よろしくお願いします。

  • Access2013

    今回初めてAccessを使います。 用語等が間違っていたら申し訳ありません。 仕入・在庫・売上のテーブルを作りました。 1つの商品番号に1つの商品というものをデーターとして入力しています。 在庫と売上には基本的殆ど同じフィールドがあり、違いといえば、売上には購入者の名前が入るぐらいです。 そこで、売上に1つの商品番号(例えば、A)を入力したら、在庫からその商品番号(A)のすべてのフィールドを削除して、売上にそのデータをすべて移行するようなことは可能でしょうか? もし可能でしたら、アドバイスをお願いします。

  • accessでcsvファイルをインポートする時…

    access 2003で質問です。 次のようなcsvファイルをインポートしたいと思っています。 (左から順に 個人番号,氏名,血液型,出身 となっているが、空欄になっているところもある) 001,A山太郎,A型,千葉県 002,B田次郎,北海道 C川三郎,O型,東京都 何も考えずにインポートすると、個人番号のフィールドに氏名が入ったり氏名のフィールドに血液型が入るフィールドが出てきます。 これを、個人番号がなければそこは空欄にするよう自動判別する方法はありますでしょうか? もしもありましたら、初歩からご教授願います。 (始めたばかりですので…)

専門家に質問してみよう