• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのマクロに関しまして)

ACCESSのマクロで追加クエリを自動起動する方法

このQ&Aのポイント
  • ACCESS97で追加クエリを作成し、自動起動するためのマクロを作成しましたが、マクロが起動しない問題が発生しています。
  • マクロには、追加クエリでテーブルのレコードを削除するプロシージャの実行と、追加クエリでレコードを追加するクエリを順番に実行する内容が記述されています。
  • マクロ名は「AutoExec」としましたが、ファイルを実行してもマクロが正常に起動されません。特に、追加クエリが実行されません。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.3

> Set DB = CurrentDb() > DB.Execute "DELETE T_MAIN.* FROM T_MAIN ;" > Set DB = Nothing ではなく、 > dbs.Execute "DELETE テーブル名" > dbs.Execute "INSERT INTO テーブル名 ~省略~" のように、Execute メソッドで続けて実行しても同じですか?

mmbbol
質問者

お礼

返答遅れましてすみません。 続けて、コーディングした所、動作しました。 結果がとりあえず同じなので、以降は調べてみたいとおもいます。ありがとうございました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

プロシージャの内容がわかりませんが テーブルをOpen レコードをDelete テーブルをClose になってますか? 開いたままだと追加クエリできないのでは?

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

> (1)「プロシージャの実行」 >  (追加クエリで追加するテーブルの中身をDELする) > (2)「クエリを開く」 >  (追加クエリでレコード追加) (1)の処理が終了する前に、(2)の処理を実行しようとしているのだと 思います。 プロシージャの実行の中で、以下のように記述してみてください。 Dim dbs As Database Set dbs = Currentdb dbs.Execute "DELETE テーブル名" dbs.Execute "INSERT INTO テーブル名 ~省略~" Set dbs = Nothing

mmbbol
質問者

補足

回答ありがとうございます。 一応コードは以下のようにしてみたのですが・・・。 Public Function tableDEL() Dim DB As Database Set DB = CurrentDb() DB.Execute "DELETE T_MAIN.* FROM T_MAIN ;" Set DB = Nothing End Function これでも動作してくれないのです。 これとは別に、削除クエリで同様のクエリを作成したのですが、マクロ上でも同様に削除クエリまでは動作してくれるのですが、以降の追加クエリが動作しませんのです。 削除を取り除いて実行すると追加クエリが動作するのですが・・・。 重ねがさねお願い致します。

関連するQ&A