人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CreateQueryDefにて生成したクエリをDoCmdでエクスポート可能でしょうか?

VB6で下記のプログラムを書きました。メインのロジックの部分だけ掲載します。VBでACCESSの「A.mdb」接続し、CreateQueryDefで「テストクエリ」というクエリを生成し、そのクエリをエクセルファイルとしてエクスポートすることが目標です。

結果は「テストクエリ」は生成されますが、エクスポートされません。エラーメッセージなどは出ませんが、DoCmd.TransferSpreadsheetが実行されないようです。

もし「A.mdb」を立ち上げていると成功します。「A.mdb」を立ち上げずに行うことはできますでしょうか?

Dim DB As Database
Dim qdf As QueryDef
Dim strSQL As String

Set DB = OpenDatabase("C:\A.mdb")
strSQL = "SELECT ○○○;"

Set qdf = DB.CreateQueryDef("テストクエリ", strSQL)
DoCmd.TransferSpreadsheet acExport, 8, "テストクエリ", "C:\テストクエリ.xls", False, ""



●質問者: qwst
●カテゴリ:コンピュータ
✍キーワード:access AS dB MDB SELECT
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● fester
●60ポイント

DoCmdはAccessアプリケーションのオブジェクトだからです。



Option Explicit

Const acExport = 1
Dim objAccess
Dim qdf
Dim strSQL

'Accessオブジェクトを作成します
Set objAccess = CreateObject("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase("C:\A.mdb")

'DBオブジェクトを作ります
Set objDB = objAccess.CurrentDb

strSQL = "SELECT ○○○;"
Set qdf = objDB.CreateQueryDef("テストクエリ", strSQL)

objAccess.DoCmd.TransferSpreadsheet acExport, 8, "テストクエリ", "C:\テストクエリ.xls", False, ""

'MDBファイルを閉じます
objAccess.CloseCurrentDatabase

'Accessオブジェクトの破棄
Set objAccess = Nothing

http://www.happy2-island.com/vbs/cafe02/capter00506.shtml

◎質問者からの返答

うすうす何か次元の違うところではまっている気がしていました。

「DoCmdはAccessアプリケーションのオブジェクト」で目が覚める思いです。

また完全なコードで感謝します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ