マイクロソフトACCESSXPで毎晩テーブルの内容をファイルに書き出したいのですがバッチの書き方がわかりません。タスクスケジュールでmdbを起動してautoexecマクロで行おうと思っていますが他にいいアドバイスがあれば教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:coara19 No.1

回答回数16ベストアンサー獲得回数0

ポイント20pt

http://www.hatena.ne.jp/1097042545#

マイクロソフトACCESSXPで毎晩テーブルの内容をファイルに書き出したいのですがバッチの書き方がわかりません。タスクスケジュールでmdbを起動してautoexecマクロで行おう.. - 人力検索はてな

特に問題は無いと思いますが…

私だったらmdbを起動しっぱなしにしておいてフォームのTimerイベントで指定時刻になった時に処理を走らせるようなプログラムとかにするかな。

その時はOSのスタートアップにmdbを追加しておく感じですかね。

起動時の設定でTimerイベントを入れてるフォームを起動するように指定しておけばOKかと

まぁ タスクスケジューラでやる処理もAccessで作っちゃうって感じですかね

id:anpan165

Timerコントロール探したんですが見つかりませんでした。もう一度探します。ありがとうございました。

2004/10/07 09:05:22
id:teatime_miki No.2

回答回数88ベストアンサー獲得回数0

ポイント20pt

まず、テーブルの内容をファイルに書き出すと言うことですが、一応Excelファイルへの書き出しについて書かれたページを見つけましたので、載せておきます。

また、テーブルを他のmdbに書き出すという場合は以下のような手順になります。

マクロを新規作成して、

アクション:データベース変換

変換の種類:エクスポート

データベースの種類:Microsoft Access

データベース名:(送り先のmdbファイルのフルパス)

オブジェクトの種類:テーブル

オブジェクト名:(書き出したいテーブル名)

変換先名:(送り先のmdbファイルの中でのテーブル名)

テーブル構造のみ変換:いいえ

・・・と設定します。

このマクロを実行するとデータベース名で指定したmdbファイルにテーブルを書き出すことが出来ます。

もちろんマクロ名はautoexecとすると、開いた時に自動実行されます。

このケースですと、上書きされてしまいます。もし、1日毎に違うファイル名で保存したい場合は、データベース変換(ワークシート変換)を行った後、テーブル名を変更する仕組みを考えなければなりません。

1日毎にテーブル名を変更して書き出すマクロはちょっと思いつかなかったんですが、VBAならば、テーブルの書き出しも、テーブル名(あるいはファイル名)の変更も一緒に行えるので、VBAの知識があれば、そちらのほうがいいと思います。

上書きでも問題ないし、もっと手軽にやりたいのであれば、dosコマンドを利用して、mdbファイルごとコピーしてしまうのはどうでしょう?

copy a.mdb b.mdb

上のような感じで入力したテキストファイルを「〜〜.bat」として保存し、タスクスケジュールで指定すれば、a.mdbをb.mdbとしてコピーが出来ます。

こちらもファイル毎のコピーになりますが、一番楽そうなので紹介しておきます。これなら設定しておけば自動的に別名で保存してくれるみたいです。

id:anpan165

コピタン!良いです。今回使わなくても買います。ありがとうございました。

2004/10/07 09:07:13
id:suna4903 No.3

回答回数4ベストアンサー獲得回数0

ポイント20pt

私の場合、標準モジュールを作ってやりました。

上記のページにモジュールを張ってありますので、よかったら使ってみてください。

毎晩行うのであればVBが使えれば本当はその方がスマートかもしれませんね^^

id:anpan165

テーブル作成クエリーがCSVファイル作成クエリーになるのですか!@@ためになります。ありがとうございました。

2004/10/07 09:10:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません