- ベストアンサー
Access2003の質問です
Access2003の質問ですが、 通常、フォームやレポートで業務システムを開発しているのですが、 定期的にFTPで他のPCからデータを取る業務があり、タスクで定期的に 自動で実行出来るようにしたいのですが、Accessの場合どうしても フォームが必要な気がするのですが、画面はまったく必要ない処理なので フォームなしでバッチプログラム的な作りからはありませんか? 最小化などもしたのですが、今ひとつです。 良い方法をご存知の方、教えてください 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再び再び No1 です。 この辺は参考になりませんか? あなたの場合はフォームが無いので、まさに仰っている通りに出来ると思いますが。 > http://www.nurs.or.jp/~ppoy/access/access/acEt008.html
その他の回答 (2)
- keronjin
- ベストアンサー率50% (83/166)
再び No.1 です。 MDB作成の際、左端の部分を見ると 縦に「テーブル」「クエリ」「フォーム」・・・と並んでいます。 「モジュール」を選んで新規作成ボタンを押すとVisualBasicエディタが開きます。 そこへFTP関連のコードを書いて保存します。 次に「マクロ」を選択して新規作成ボタンを押します。 新しいマクロの「アクション」欄で[プロシージャの実行]を選び、 下部の[プロシージャ名]にコードを書いたプロシージャの名前を書きます。 このマクロの名前を「autoexec」として保存してください。 これでMDBファイルを開いた時に自動でVBAが実行されます。 以上の内容を参考URLにサンプルとして置いておきました。仕組みがわかると思います。 よかったらダウンロードしてご覧になってみてください。 あとはWindowsタスク等で定期的にこのMDBを実行すればよろしいかと。
補足
keronjinさん サンプルまで作って頂いて、大変ありがとうございます。 FTP部分を追加して、タスクに入れて自動で動きました。 (マクロ、AUTOEXEC これからも色々使えます) あと、もうひとつだけ質問ですが、実行時にAccess自体の 画面を最小化にできませんか? モジュールの先頭にDoCmd.Minimizeは入れてみたのですが、 Access自体の画面は出てしまいます。 実行されるのが日中で、入力途中の時などに画面が出ない方 が良いです。 色々、質問して申し訳ありませんが、良い方法があれば教えてく ださい。 宜しくお願いします。
- keronjin
- ベストアンサー率50% (83/166)
Accessにて、FTPでデータを取得するVBA(FtpGetFile等のAPIを使う)を組み、 参考URLのタスクでそのMDBを定期的に実行すれば良いだけのように思いますが。。。 とくにフォームなどは必要ありませんよ。 過去に私もFTPで他のPCからデータを取る業務がありましたが、 私は扱い慣れていたエクセルのVBAでやりました。
補足
keronjinさん ありがとうございます。 私の説明不足だったのですが、VBAはわかるのですが、基本的なことですが フォームなしでどこに、VBAを記述するのかわかっていません。 いつも、「フォーム」開くでVBA記述して、個々のボタンがクリックされたら、VBAの 記述なので、VBAをイベントプロパティ以外で記述することがわかりません。 ほんとうに、初歩的なことですが教えてください。
お礼
keronjinさん ありがとうございました。 無事に思うようにできました。 何度も回答頂き、勉強になりました。