DAOでクエリを作成する
Sub クエリ作成3() 'DAOでクエリ作成 Dim myDB As DAO.Database, DBName As String '接続するデータベース DBName = ThisWorkbook.Path & "\mdb\newDB.mdb" Set myDB = OpenDatabase(DBName) 'クエリを作成 myDB.CreateQueryDef "Q_サンプルクエリ_DAO", "SELECT * FROM 商品マスタ;" myDB.Close: Set myDB = Nothing End Sub
教材には「ADOXで追加したクエリは、Accessのユーザーインターフェースの画面からは認識されず、見えない状態になってしまう。混乱を避けるために、ADOXでクエリを作成しない方が無難でしょう。」とあるが、実際に試すと、Accessの画面からも確認、操作できる。
(Excel、Accessともにバージョンは同じようであるが・・・。)
上記の理由からDAOの「CreateQueryDef」メソッドおよび「CREATE
VIEW」命令でクエリを作成する方法が紹介されている
実行結果
同名クエリを作成しようとした時のエラーメッセージ
CREATE VIEW 命令でクエリを作成する
Sub クエリ作成4() Dim myCon As New ADODB.Connection Dim conStr As String, DBName As String, mySQL As String '接続するデータベースと接続文字列 DBName = ThisWorkbook.Path & "\mdb\newDB.mdb" conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName '新規ビュー(選択クエリ)を作成するSQL文 mySQL = "CREATE VIEW Q_商品マスタ_CV AS SELECT * FROM 商品マスタ;" With myCon .Open conStr .Execute mySQL .Close End With End Sub
実行結果
同名クエリを作成しようとした時のエラーメッセージ