• ベストアンサー

アクセスでテーブルの複製ができますか?

売上管理を作っていますが、月締処理として 日々売上処理で入力されたデータを集計して売上集計テーブルに書き込んでいます。 入力ミスをした場合を考えて、元に戻すための処理を 作っておこうと考えています。 売上集計テーブルの複製を月締め処理前にとってミスがあった時、元に戻す処理をVBAで書きたいのですがどのようにすればよいのでしょうか? よろしくお願いいたします

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

  • ベストアンサー
noname#102878
noname#102878
回答No.1

これってAccessですか? バージョンは? とりあえずバージョンがわからないので、クエリーを作っておいて、VBAからクエリーを実行するってやつで。 【月次処理の前処理】 ・複製テーブルの中身を空にする ・売上集計テーブルの全件を複製テーブルにコピー 【下記戻し処理】 ・売上集計テーブルの中身を空にする ・複製テーブルの全件を売上集計テーブルにコピー ・複製テーブルの中身を空にする 動作はこんな感じ。 売上集計テーブルの名前が「tbl01」、複製テーブルの名前が「tbl02」だとします。 クエリーを新規作成し、デザイン画面で[表示]-[SQLビュー]に切り替えて 「DELETE * FROM tbl02;」 これを貼り付けて、「qry01DelTbl02」って名前で保存。 「INSERT INTO tbl02 SELECT tbl01.* FROM tbl01;」 これを貼り付けて、「qry02Add01To02」って名前で保存。 「DELETE * FROM tbl01;」 これを貼り付けて、「qry03DelTbl01」って名前で保存。 「INSERT INTO tbl01 SELECT tbl02.* FROM tbl02;」 これを貼り付けて、「qry04Add02To01」って名前で保存。 Sub 複製()  DoCmd.SetWarnings False  DoCmd.OpenQuery "qry01DelTbl02" ' 複製テーブルを空にする  DoCmd.OpenQuery "qry02Add01To02" ' 複製テーブルにコピー  DoCmd.SetWarnings True End Sub Sub 書き戻し()  DoCmd.SetWarnings False DoCmd.OpenQuery "qry03DelTbl01" ' 売上管理テーブルを殻にする  DoCmd.OpenQuery "qry04Add02To01" ' 売上管理テーブルにコピーする  DoCmd.OpenQuery "qry01DelTbl02" ' 複製テーブルを空にする  DoCmd.SetWarnings True End Sub 上記のようなコードを組み込んでください。 ただし、売上集計テーブルが別のテーブルとリレーションしていて参照整合性も設定してあるような複雑な構成の場合は通用しません。

mehiro2
質問者

お礼

お礼のお返事遅くなり申し訳ございませんでした。 また質問内容に書いてなくてすみません。Access2000です。 只今から試してみます。 データベースを作っていてバックアップの方法とか 探していたんですが、いまいち判りづらかったところがあり本当に助かりました。 ただ顧客IDでリレーションしているので気がかりです。

関連するQ&A

  • accessでのレコードの複製について

    出荷管理データベースを作りました。 1出荷先ごとに「個口」項目を作り、そこに出荷個数を入力するようにしたのですが、 個口項目の数だけ別テーブルに出荷先データを複製する方法を教えてください。 出荷先 個口 ○○様  1 ○×様  2 △△様  3 ↓別テーブルに出力 出荷先 ○○様 ○×様 ○×様 △△様 △△様 △△様

  • エクセルのピボットテーブルについてご教授下さい。

    家計簿を作成しておりまして、細目ごとの集計をとるためにピボットテーブルを使用しております。 (食費は今月集計10000円等) 毎月のことなので、「原紙」のシートを作っておいて、1月なら1月のシート2月なら2月のシートを新規で作成しながら家計管理を行いたいと思っております。 やり方としては「原紙」のシートをコピーして「コピーを作成」、その後作成したコピーを「1月」等に変更して使用していこうと考えております。 だいたい完成してきたところで、ためしに「1月」というシートを作成し、打ち込みをしていったところ、ピボットテーブルに反映されるのが「原紙」シートのデータであることに気づきました・・・ ネットで調べてもそのような事例がなく、解決策が分かりません。 元データのシートをコピーして複製し、ピボットテーブルには複製したシートごとの集計を表示させるにはどうすれば良いのでしょうか? 分かりにくい説明で非常に恐縮です。 どなたかご教授頂けませんでしょうか?

  • Accessのクロス集計→テーブル作成で値がない場合の対処法

    すいません、先ほど同じような質問をしたんですが、わかりづらいと思うので再度質問させてください。 テーブル1に大もとのデータが入っています。 フォームに入力をして(たとえば年度など)検索を行います。 その結果を元に、テーブルにデータを入れます。 さらにそのテーブルからクロス集計をして、最終結果を得ています。 (すべてVBAにて実行) たとえばテーブル1に種類1という項目があって、そこには普段A・B・C・Dというデータが入るはずですが、 時々一つくらい無い場合があります。(A・B・Dなど) その場合に、クロス集計を行ってそのデータをテーブルに入れる際に、フィールドが足りないというエラーが出てしまいます。 そういう場合に、空欄を入れるということはできるのでしょうか? お願いします!!(><)

  • Access2002のピボットテーブルにて

    Access2002にて販売管理のシステムを構築しています。 売上高と売上件数を求めるクエリを作成し それぞれピボットテーブルにて下記の様に表示させております。 [売上高クエリ:(表示)ピボットテーブル]    A店  B店  C店 1月 1500  1800  0 2月 2300  1500  2700 3月 1200  600   1300 [売上件数クエリ:(表示)ピボットテーブル]    A店  B店  C店 1月  10   8   0 2月  18   6   22 3月  10   4   10 例えば、A店の1月度の売上平均単価を求める場合は 1500÷10=150円と出てきますが これをピボットテーブルにて自動的に処理させることは可能でしょうか? できれば、同じピボットテーブルの形式で 全ての月・店舗の平均単価が一発表示させられると嬉しいのですが。 ご存じのかた教えて下さい。

  • Access 売上テーブル 月次追加

    マイクロソフトAccess で月次で商品毎の売上数量のテーブルを作成し毎月 データを追加していきたい。商品A,商品B,商品C,,,,それぞれ数量が月次で売上個数をテーブルに入力を考えています。 ただ商品の件数が何千件もあるので,最新のひと月分の売上データはテーブルを作って既存のデータテーブルに追加したいと思います。 その際 追加するデータの方には今までにない商品、例えば商品Xがあったりします。 この場合はasccessではどのように処理すればいいでしょうか テーブル結合? 追加クエリ?

  • ピボットテーブルで個数の月平均を算出したい

    Excel2010のピボットテーブルの集計方法について教えてください。 各部門で商品の売上の都度入力しているデータがあり、その中で部門Aが入力したデータの個数をピボットテーブルを使って集計しようと思っています。 集計したい情報は以下の2つです。 (1)各月で部門Aが入力したデータ個数 (2)部門Aが入力したデータ個数の月平均(データ個数合計/集計対象の月数) ((1)と(2)は同じピボットテーブル内で実現したい) データは日付と部門を持っているので、日付を月単位にグループ化することで(1)の集計はできました。 しかし、(2)に関してはどうすればピボットで実現できるのかがわかりません。やり方があれば教えて頂きたいです。

  • 【Access2000】ワンタッチで月を入力する方法

    フォームにデータを入力する際、数字の1を入力しただけで2007年1月×日を返す方法はないでしょうか? 売上の集計結果だけを入力するので1月なら何日でも構いませんが、詳細データ(日々のデータ)を使った別のテーブルと併せて最終レポートを作成するため、日付フィールドである必要があります。 変な質問で申し訳ありませんが、判る方助けてください。

  • ピボットテーブルについてです

    ピボットテーブル内のデータで件数を数えたいのですがそれは可能でしょうか? 例えば画像のようなピボットで、「何月にA社では何種類売り上げがあったか」を出したいです。 できれば、集計行の上下どちらかに結果を出したいです。 元データを使っていろいろしてみましたが、重複するデータが多いので正しく出せません。ピボットのデータで…と思うのですが、可能でしたら方法を教えていただきたいです。 図々しいですが、もし他に方法があれば、教えていただきたいです。

  • アクセス テーブル 列を行にしたいのですが・・・・

    アクセス初心者ですが、ご教授頂けませんでしょうか?<abab123> ・2つのテーブルがあります。 ・入力者の都合上、どうしても行入力にできず、列入力になってしまった為、 テーブルを作り直す必要があります。 < 数量 テーブル > 機器| 商品1|商品2|・・ |商品100 ----------------------------------- 1 | 10 | 20 |・・| 30 2 | 40 | 50 |・・| 60 ・ ・ 10000| 70 | 80 |・・| 90 < 単価 テーブル > 機器 |商品1 |商品 2|・・|商品100 -------------------------------------- 1 |1,000 | 2,000 |・・| 3,000 2 | 4,000 | 5,000 |・・| 6,000 ・ ・ 10000| 7,000| 8,000 |・・| 9,000 ・こんなテーブルにしたいのですが。 < 結合 テーブル > 機器 |  商品 | 数量 | 単価 ---------------------------------------- 1 | 1 | 10 | 1,000 1 | 2 | 20 | 2,000 1 | ・ | ・ |  ・ 1 | 100 | 30 | 3,000 ・ | ・ | ・ | ・ ・ | ・ | ・ | ・ 10000 | 100 | 90 | 9,000 □ EXCELで、行列を入れ替えようと思ったのですが 機器(10,000) X 商品(100)= 1,000,000 行となり、 65,536行 の EXCEL2003では、断念しました。 VBAも考えましたが、16回(=1,000,000/65,536)、 EXCEL を ACCESSテーブルに貼り付けるのも??? Webで、アクセスSQL・・ユニオン・・・などがヒットするのですが、 良く解らなくて。。。です。 結合テーブルを効率的に作成する方法を、ご教授頂けませんでしょか?   宜しくお願い申し上げます。 □ アクセスはデーター処理で毎日使用しておりますが、 難しい処理をする訳ではなく、 テーブル作成、クロス集計等から、EXCELへ書き出し、 EXCELの資料を作成したりしています。

  • 複数のピボットテーブルを一括でデータ更新したい

    エクセル2000です 50個ぐらいピボットテーブルがありまして 元データはほぼ固まっているのですが 若干の修正をしつつ集計しています。 色々ググってみたのですが やはりピボットテーブルは1個1個「データの更新」を実行しないと 修正が反映されないのでしょうか? 同じピボットテーブルを複製しながら 50個作ればよかったのですが 集計の都合もあり 参照元データ範囲が少しずつ異なっています。 50個もあると、再計算?の待ち時間も長いので なんとか自動で全部を更新できませんか? ご存知のかた、よろしくお願いします。