- ベストアンサー
ACCESS_VBAでクエリのアップデートを自動化したい。
ACCESS2003を使用しております。 クエリ削除→クエリの追加を自動化したいと思っております。(ただし、MDBが保存してある場所は一定ではありません。) 1.仕組みは、更新用のMDBに置き換えたいクエリを作っておきます。 2.AotoExecなどで自動起動します。 3.WindowsAPIを使ってMDBを指定してもらいます。 4.クエリを入れ替えるマクロを起動します。 という流れにしたい場合、3.の作り方を教えてもらえませんでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
クエリを入れ替えるマクロとは? (1)マクロが既に存在し、それを実行? (2)そうじゃなく、新規SQL文を任意にアクセスに登録? よくわかりませんが、 (1)の場合はAccess.Application.Runを利用(もしこっちでわからなかったら、補足で再度質問してください。) (2)の場合はDAOで操作します。 Sub Main() Dim daoDB As DAO.Database Dim strSQL As String ' データベースを開く Set daoDB = DBEngine.Workspaces(0).OpenDatabase("C:\db2.mdb") '作成するクエリのSQL strSQL = "SELECT * FROM TABLE1" 'クエリ作成 Call QryCre(daoDB, "test", strSQL) daoDB.Close Set daoDB = Nothing End Sub 'クエリ作成 Private Function QryCre(inDaoDB As DAO.Database, ByVal inName As String, ByVal inSQL As String) As Boolean '問答無用でクエリ削除 Call QryDel(inDaoDB, inName) 'クエリを作成する inDaoDB.CreateQueryDef inName, inSQL End Function 'クエリ削除 Private Function QryDel(inDaoDB As DAO.Database, ByVal inName As String) As Boolean On Error Resume Next inDaoDB.QueryDefs.Delete inName QryDel = (Err.Number = 0&) End Function