• ベストアンサー

アクセス[ファイルを開かずに、毎日一定時刻にデータ更新をしたい]

アクセスは初心者レベルです。 ODBCデータベースから、テーブルにリンクさせている情報があります。 それを、毎朝決められた時刻にデータをとってきて、それを追加クエリとして別のテーブルへデータを追加していく。 ということは可能でしょうか?

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

  • ベストアンサー
noname#7099
noname#7099
回答No.2

アクセスで、とのことなので アクセスを新規作成します。 1)テーブルのリンクを作成してください。 2)追加クエリを作ります。(別のテーブルへデータを追加する) 3)フォームを作ります。 フォームの開く時のイベントプロシジャ(Private Sub Form_Open)を指定します。 3-1)まず、警告メッセージの要求がでないようにします。 DoCmd.SetWarnings False 3-2)追加クエリを実行させます。 DoCmd.OpenQuery "追加クエリ名", acNormal, acEdit 3-3)警告メッセージの要求を元通りにします。 DoCmd.SetWarnings False 3-4)正常に実行できたら、アクセスが終了するコマンドも書き込んでおくといいでしょう。 DoCmd.Quit 3-5)終了しなかったら、正常に動作できなかったことがわかります。テキストボックスやメッセージボックスでエラーメッセージを表示するようにしましょう。 4)メニューバーの「ツール」の「起動時の設定」の「フォーム/ページの設定」で、作成したフォームを指定します。 5)このアクセスのプログラムをダブルクリックで実行すると、フォームが開いて、追加クエリを実行して、アクセスが終了するのを確認します。 6)パソコンのタスクがあると思いますが、「毎日○時にこのプログラムを実行する」タスクを追加すればOKです。 注意)このプログラムを修正しようと思っても、普通に開いては、起動時のフォームのプログラムが動いてしまします。 このプログラムを選択してから、「shift」+「enter」キーを同時に押すと、起動時のフォームを実行することなく、データベースウインドウを開くことができます。、「shift」+「enter」キーは開ききるまで押しっぱなしのほうがいいです。 がんばってください。

mipomipo
質問者

お礼

最初に教えて頂いた方法でやってみたいと思います。 勉強になりました。 ありがとうございました!!

mipomipo
質問者

補足

頂いた回答通りにtestをしたら、私でもできました!ありがとうございました。 ですが、一点...タスクが開始できませんでした。 実は、ODBCを開く時に”パスワードの入力”を行います。 その為、タスクで仕事をつけてあげても、自動実行されません。(多分、これが原因かと...) マクロか何かで"パスワードを書きこんでおき、自動更新させる"ということは可能でしょうか? パスワードの意味がない...と言えばその通りですが。 すみません、宜しくお願い致します。

その他の回答 (1)

回答No.1

試してないので自信はありません。 ActivePerl(5.8)のWin32::ODBCライブラリを使うと、Perlを使ってODBC経由のデータベース操作を行なうことが可能です。 これを使ってご質問のデータベース操作(テーブルへのデータ追加)を行なうPerlスクリプトを作成し、pl2batでバッチファイルに変換、ATコマンドで定期的に実行するようにすればご質問のことは可能かと思います。 別にActivePerlを使わなくとも、多分Visual C++やVisual Basicなどでも同様のプログラムを作成することが可能かと思いますが、わたし的にはPerlが好きなもので・・・(というか、Microsoft系のプログラミング言語はほとんど触ったことがない)。(^^;

mipomipo
質問者

お礼

回答ありがとうございました。 ActivePerl(5.8)のWin32::ODBCライブラリを使い...とのことですが、未開拓の分野なので今後の課題にしていきます。

関連するQ&A