Access2002のマクロ条件について
WindowsXPでAccess2002を使用しています。
このたび、過去の方が作成されたAccessを修正することとなりました。
VBAを使用したものではない簡易なファイルですが、マクロの条件を変更しようとしても
なかなかうまくいきません。どのようにすれば宜しいでしょうか。
----------------
≪現在の仕様≫
テーブル名:T#ZIP
フォーム名:F#Select
クエリ名:Q#Delete、Q#Import
マクロ名:M#Create_Table
(1)Access起動時(の設定)は「F#Select」というフォームが開く
(2)下記マクロ「M#Create_Table」が実行される
マクロ1行目:下記条件のとき、マクロを中止する
[Forms]![F#Select]![CRTDATE]=Date()
マクロ2行目:テーブル「T#ZIP」のデータを削除するクエリ「Q#Delete」を実行する
マクロ3行目:テーブル「T#ZIP」にデータを追加するクエリ「Q#Import」を実行する
≪動き≫
前提:「F#Select」の[CRTDATE]というフィールドには「T#ZIP」が更新された日が設定される
その日初めてそのAccessを開くと、マクロにより削除クエリ~追加クエリが順番に実行された後、
フォーム「F#Select」が表示される。その後Accessを終了し、同日中に再度Accessを開いても
マクロは実行されない
---------------
現在、追加するデータが多い場合、時間がかかりインポートが途中で失敗することがあるのですが
再度Accessを開いても既にインポート済みと判定されてしまい、自動的にはマクロは実行されない
という課題があります。
インポートが失敗するとき、削除は完了しているため、テーブルデータは0件なので、
「その日に既にテーブルを更新済み かつ テーブルデータ件数が1件以上ある場合」
マクロを中止する、という条件を設定したいと思います。
そこで、マクロ1行目の条件欄に
[Forms]![F#Select]![CRTDATE]=Date() And DCount("[T#ZIP]","*")>0
と記載したところ、その日最初のインポートはうまく行っている様子ですが、
マクロ終了後に突然Accessが終了したり、再度Accessを開いても「F#Select」が
全く表示されなくなったりと、うまくいきません。
バグというよりは、私の設定が悪いのだと思われますので、
・フォーム[F#Select]の[CRTDATE]フィールドが Date()
かつ
・テーブル[T#ZIP]に1件以上でもデータがある
場合はマクロを中止する
としたい場合の条件設定方法(入力内容)につきまして、どなたかおわかりの方
ご教示いただけますでしょうか。
何卒よろしくお願いいたします。
お礼
ヘルプ確認しました!ありがとう御座いました。 素人的な考えですけど、起動時の設定の方が、AUTOEXECを設定するより簡単なわけですから、起動時の設定が先に実行される。って感じの解釈でOKなんですかね。 ありがとうございました。