• 締切済み

Access2010で既存テーブルにインポート

今、Access2003で、商品販売データ(CSV)をインポートし、店舗コード表テーブルとクエリで付け合わせし、販売店名付きの商品販売データをEXCEL形式でエクスポートするといった簡単な作業を行っています。 この商品販売データ(CSV)は販売した商品のデータの為、毎月フィールド構成が必ずしも一定しないという特長があります。 また、CSVの数も毎月30社分以上ありますが、一定しません。大方は毎月ありますが、一部は、あったりなっかたりします。 例えば ・A社の商品について9月には商品「イ・ロ・ハ」が全店舗で販売されましたが、、10月には「イ・ハ・ニ」だけ売られた。「ロ」は売れておらず、前月売れなかった「ニ」が売れました。 ・B社の商品について9月には商品「ト」を売りましたが、10月にはどの店舗でもB社の商品は販売されていない。 といった具合です。 Access2003でこれを行っていますが、やり方は以下のとおりです。 (1)今まで販売された会社の分だけテーブルおよび結合の為のクエリを前もって作成し。 (2)インポートウイザードで進んでいき最後の方で新規テーブルか既存テーブルか選択するところで「既存」を選択し、CSVに対応したテーブルを選択。 (3)フィールド構成が合ってればそのままインポートが完了する。 (4)フィールド構成が合ってなければ、ひとつ戻って「新規」に切り替え進んでいく。最後の方では(3)で選んだテーブル名が残ってるので、そのまま上書きで完了する。 (5)「(1)」で新たに会社が増えた場合は2・3カ月様子を見て継続してデータが発生するようならテーブルを作成。同時にクエリ等も作成 ・・・といった具合になります。 今度、会社のPC更改に伴い、Accessのバージョンが2010になるのですが、試してみたところ、2010はインポート先テーブルが「既存」か「新規」かを選択する部分が最初に来ます。 その為最後の方でフィールド構成が合わなかった場合、最初からやりなおしになり、既存のテーブル名を生かせす、入力しなおしになります。 今は、既存テーブル名を前もって覚えさせて、そこからコピペするくらいしか思いつかないのですが何かいい方法はありませんか? ご存知の方がいらっしゃいましたらよろしくお願いします。

  • pgg500
  • お礼率70% (170/242)

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

Access2003で、商品販売データ(CSV)をインポートし、 店舗コード表テーブルとクエリで付け合わせし、 販売店名付きの商品販売データをEXCEL形式で エクスポートするといった簡単な作業を行っています。 -------------------------------------------------- ご質問の趣旨はエクセルの店舗コードにより、販売店名を 貼り付ける簡単な方法を提案しました。 エクセルでは数式を一つ作ればこの数式を他の場所にコピペ で完成しますね、 このエクセルデータをAccessでインポートするのは如何でしょう Access側でやる方法 リレーションシップをご存知ですね 「店舗コード表」テーブルには ・店舗コード(主キーまたはユニーク設定) ・販売店名(ユニーク設定が望ましい) 上記二つのフィールドを含んでいることが前提ですが インポートしたエクセルのテーブルのコードと店舗コード をリレーションで結んで、必要な項目選択したクエリは 他のテーブルと同じように取り扱うことができます。 勿論EXCELへエキスポートも出来ます。 >一定していないフィールドの最後には「合計」が存在し、 >それも必要になります。それだと、「合計」の置かれてる >列の値が毎回違うし、毎回いちいち指定しなければなりません。 >30以上もある数のファイルで。 Excelもそうですが、Accessも同じ列でないとSUM関数は使えません また、Accessの場合金額欄に一つでも空白またはテキストがあれば SUM()関数は使えませんし、加減乗除算もしてくれません フィールドの位置をダミーを使ってでも一定にすることは出来ませんか そのため、テーブルデザインで数値欄の規定値を0(ゼロ)にします。 また「合計」フィールドとして持つのではなく、 出力(フォームまたはレポート)の時に計算します。 でないと数値を変更する都度合計値も変更しなければなりません。 レコード内の横の計算は選択クエリーno フィールド欄に 金額:数量*単価とします。 これでクエリを開くと数量*単価の計算結果が表示されますし フォームまたはレポートのボックスのレコードソースになります

pgg500
質問者

お礼

なまじ「合計」と書いた為に、求めてない方向に暴走されてしまいましたね。 やってる仕事内容をいちいち全部ここに書くわけにはいかないので「例えば」の話で書いているのに、質問内容と違う事ばかり書かれてしまっては、もう謝るしかないですね。 私がバカでごめんなさい。でもありがとうございました。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

No.1です Sheet2の店舗表は、新規の店舗の追加等で、 店舗コード表を変更しても有効です。 そのため範囲指定は余分に設定して下さい。

pgg500
質問者

お礼

ありがとうございました。 たしかにおっしゃるやり方でもできるでしょう。 残念ですが私の知りたい内容ではありませんでした。 まさか、質問内容と違う回答をいただくとは思ってなかったので細かいとこまではあえて書きませんでしたが、一定していないフィールドの最後には「合計」が存在し、それも必要になります。それだと、「合計」の置かれてる列の値が毎回違うし、毎回いちいち指定しなければなりません。30以上もある数のファイルで。 それが面倒だからアクセスを使ってるわけです。 何も「アクセスでできないから他に方法がないか?」聞いていたわけではなく、インポートの際、既存テーブルの名前を生かす方法が知りたかっただけです。 予断ですが、出来上がった結果は、そこで終わりではなく、さらに別の集計に結果を反映させなければいけません。仕事とはそういうものです。 ご指定のやり方ですと、Sheet1の内容を手作業でコピペしにいかなければならないんじゃありませんか? 要は「手間の軽減」=「結果が出るまでの時間短縮」です。 ありがとうございました。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

販売店舗名を商品販売表に貼り付けるだけなら アクセスは必要ありません。 エクセルだけで出来ます。 Vlookup関数を使います。 別のワークシートにACCESSの店舗コード表を展開します。 Sheet2のA列が店舗コード、B列が販売店名とします。 A2に店舗コードでB2に販売店名貼り付けるには B2に =VLOOKUP(A2,Sheet2!$A$2:$B$72,2,FALSE) ご存知と思いますが、この数式は数式バーの左にあるfxから入ってください 参照範囲は絶対アドレスにするために範囲指定後F4を押下します。

関連するQ&A

  • Accessのインポートについて

    マイクロソフトアクセス2010でテーブルを作り、そこにCSVファイルを読みこませたいです。 テーブルのフィールドはテキスト型です。 例えば、Table_TESTというテーブルにF1というテキスト型のフィールドを設けます。 Access標準のTEXTインポート機能を使い、インポートを行おうとします。 CSVファイルのデータは、「12345678912345678ABCD」といったように数値とアルファベットです。 なぜか、このようなデータをインポートする時にデータ変換エラーと表示されて、正しくインポートできません。 これは、なぜこのような現象が起こるのでしょうか?

  • accessへのexcelデータのインポート

    友人からもらったaccess(2000)の管理表にEXCEL2003で作ったデータをインポートしたいのですが、類似質問も調べてみたのですがわからないので、教えてください。 管理表にはすでに、テーブル、クエリ、フォームが作られています。 テーブルの既存データをすべて削除して、新しいexcelデータをインポートしたいのです。 1.既存のテーブAを開き外部データの取り込みからexcelデータをウィザードに従って進めていくと、テーブルAはすでに開いていますとなり、インポートできません。 2.次に開かない状態で同様に進めて、インポート先のテーブルAを指定して完了をクリックするとインポートするときにエラーが発生し、インポートできませんとメッセージが出ます。 3.excelのシート名での新規データインポートは出来るのですが、既存のテーブルAに新しいデータのみインポートするにはどのようにすればいいのか?教えてください。 4.既存の管理表にはテーブルが20、クエリが50、レポートが13で構成されていて、その中の2つのテーブルに新規データ(約2000件)をインポートしたいのです。 まったくの素人に毛が生えた程度で思い違いもあるかと思いますが、データのみ変更してソフト自体はそのまま使用したいので、よろしくお願いいたします。 質問の内容に不足がありましたら補足しますのでよろしくお願いいたします。

  • access2010でメモ型がインポートできない

    以前のACCESS2000では出来ていたのですが、ACCESS2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、ACCESS2000のデータを、ACCESS2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 ACCESSはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。

  • ACCESS2000でExcelから特定フィールドをインポートしたい

    ACCESS2000でExcelから特定のフィールドをインポートしたいのですが、 うまくいきません。 Excelはフィールド数が254フィールドもあり、 テーブルにインポートしたいフィールド数は30フィールドです。 Excelでは特定フィールドをインポートすることができないようなので、 一時テーブルに全てのフィールドをインポート後 必要なフィールドだけ取り出そうとやってみたのですが、 以下のコードを実行すると、13のフィールドが「解析不能なフィールド」と インポートエラーが出てしまいます。 DoCmd.TransferSpreadsheet acImport, 8, "TEMPテーブル", "c:\data.xls" また、Excelファイルをcsv形式に変換して、インポート定義を作る方法も やってみたのですが、インポート定義作成時に 「フィールド'ID'はインポートまたはエクスポートしようとしている テーブルまたクエリに存在しません」 というエラーが出てしまいます。 どうしたらインポートできるでしょうか。よろしくお願いします。

  • 非関連テーブルのインポート

    FileMakerPro12を使用しております。 フィールドデータのインポート順で、 インポート先として、 非関連テーブルを選択したいと思っております。 ですが、 非関連テーブルがグレーアウトして、 選択することができません。 どのようにすれば、非関連テーブルを 選択できるようになりますか?

  • テーブルデータのインポートについて

    バージョンはAccess2003です。 テーブルAとテーブルBがあります。 CSVからデータをインポートし、全データがテキスト型で保存されています。 テーブルBには最終的にデータを保存したいフィールドプロパティが定義されています。 VBを使ってテーブルAからテーブルBにインポートしたいと思っています。 テーブルAのデータをテーブルBの定義に合うように加工するにはどうすればいいのでしょうか? アドバイスよろしくお願いします。

  • CSVデータをアクセスにインポートしてから

    CSVデータをアクセスにインポートしてクエリーを作ります。 例 100021 n1100 01 15桁をテキストでインポートします。 この15桁が一つのフィールドになります。 この下二桁 01 だけを一つのフィールドに抽出する事はできるでしょうか? わかりにくくて申し訳ございません・・・・

  • ACCESS のインポート

    ACCESS 2003をかじり始めた初心者です。 2つのテーブルから作ったクエリのデータにEXCELデータをインポートしようと思いましたが、インポートウィザードではインポート先としてテーブルを要求して来るようです。どうすれば良いのでしょうか。クエリをテーブルに変換する方法があればいいのかも知れませんが。

  • access2000でインポート・エキスポートする時

    access2000で、csvをtableにインポートする時、 クエリーをcsvにエクスポートする時、データの順番が 一部、入れ替わってしまうのですが、何が原因でしょうか? どなたか、お教えください

  • Access2010でVBAでのインポート

    csvファイルを指定したテーブルにインポートさせるのですが、この最初のフィールドに主キーを付与させようとしています。手動でインポートする際はメニューで指定するので主キーが付与されるのですが、VBAではcsvファイルそのままの状態でしかインポートされません。 このテーブルは、毎月更新させるので、一度データを削除してインポートさせます。 Mypath & Fdnは階層指定です。 いろいろネットで調べて下記の構文でインポートはできるのですが DoCmd.TransferText acImportDelim, "222 更新データ インポート定義", "更新データ【更新根拠】(当月)", Mypath & Fdn & "\222 更新データ【請求根拠】.csv", True, "" 手動でインポートする時指定する”主キーを自動的に設定する”はどのようにすれば適用されるのかがわかりません。 どなたか教えてください。よろしくお願いいたします。

専門家に質問してみよう