- ベストアンサー
ACCESSのマクロで追加クエリを自動起動する方法
- ACCESS97で追加クエリを作成し、自動起動するためのマクロを作成しましたが、マクロが起動しない問題が発生しています。
- マクロには、追加クエリでテーブルのレコードを削除するプロシージャの実行と、追加クエリでレコードを追加するクエリを順番に実行する内容が記述されています。
- マクロ名は「AutoExec」としましたが、ファイルを実行してもマクロが正常に起動されません。特に、追加クエリが実行されません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> Set DB = CurrentDb() > DB.Execute "DELETE T_MAIN.* FROM T_MAIN ;" > Set DB = Nothing ではなく、 > dbs.Execute "DELETE テーブル名" > dbs.Execute "INSERT INTO テーブル名 ~省略~" のように、Execute メソッドで続けて実行しても同じですか?
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
プロシージャの内容がわかりませんが テーブルをOpen レコードをDelete テーブルをClose になってますか? 開いたままだと追加クエリできないのでは?
- Gin_F
- ベストアンサー率63% (286/453)
> (1)「プロシージャの実行」 > (追加クエリで追加するテーブルの中身をDELする) > (2)「クエリを開く」 > (追加クエリでレコード追加) (1)の処理が終了する前に、(2)の処理を実行しようとしているのだと 思います。 プロシージャの実行の中で、以下のように記述してみてください。 Dim dbs As Database Set dbs = Currentdb dbs.Execute "DELETE テーブル名" dbs.Execute "INSERT INTO テーブル名 ~省略~" Set dbs = Nothing
補足
回答ありがとうございます。 一応コードは以下のようにしてみたのですが・・・。 Public Function tableDEL() Dim DB As Database Set DB = CurrentDb() DB.Execute "DELETE T_MAIN.* FROM T_MAIN ;" Set DB = Nothing End Function これでも動作してくれないのです。 これとは別に、削除クエリで同様のクエリを作成したのですが、マクロ上でも同様に削除クエリまでは動作してくれるのですが、以降の追加クエリが動作しませんのです。 削除を取り除いて実行すると追加クエリが動作するのですが・・・。 重ねがさねお願い致します。
お礼
返答遅れましてすみません。 続けて、コーディングした所、動作しました。 結果がとりあえず同じなので、以降は調べてみたいとおもいます。ありがとうございました。