街中で見かけて「グッときた人」の思い出

おはようございます。

ご教授頂きたく、書き込み致しました。宜しくお願
い致します。

フォームにて抽出条件を指定後、クエリーを実行させ、EXCELに出力させる処理を、VBにて行っています。


連続操作(出力したEXCELは閉じて、ACCESSは開いた
ままで、抽出条件を変えて再度実行させる)を行う
と「オブジェクト変数またはWithブロック変数が設
定されていません」とエラーメッセージが出てしま
います(この時、EXCELにデータだけは出力されてい
ます)

ACCESS及び出力されたEXCELを、一旦閉じて、再度ACCESSを起動し、条件指定後、抽出を行うと、エラ
ーも出力されず、問題なく処理が始まります。

VB上では下記の様に記述はしています。

Exit_コマンド2_Click:
Exit Sub

objexcel.ActiveWorkbook.Close True
objexcel.Quit
Set objexcel = Nothing

Err_コマンド2_Click:
MsgBox Err.Description
Resume Exit_コマンド2_Click

End Sub


どうしても分からないので、書き込みさせて頂きました。連続操作をしてもエラーが出ないようにするには、どのようにすれば宜しいでしょうか?

A 回答 (2件)

やりたいことはこんな感じでしょうか?



1.フォームに条件を入力
2.コマンド1をクリックで入力された条件からデータを抽出しaaaaテーブルを作成。ここからexcelへエクスポート。
3.コマンド2をクリックでExcelを終了。

これだけならExcelを開くところは以下の部分だけでよく、objexcelなどを使用する必要はありません。

DoCmd.OutputTo acOutputTable, "aaaaa",acFormatXLS, "\aaaaa.XLS",True

ただしこのやりかただと、コマンド2クリックではExcelは終了しないのでExcel側で終了させる必要があります。
    • good
    • 0

Excelを開くところのソースに問題がありそうです。

その部分を載せてもらわないとなんともいえません。
またobjexcel変数のスコープは?

この回答への補足

早速のご連絡、有難うございますm(__)m

>Excelを開くところのソースに問題がありそうです。

EXCELは下記の様にセットしています。

Set objexcel = CreateObject("Excel.Application")
objexcel.Visible = True

DoCmd.OutputTo acOutputTable, "aaaaa",acFormatXLS, "\aaaaa.XLS",True

>objexcel変数のスコープは?
ごめんなさい、自分VB始めたばかりで、ここの意味がよく分かっていません。

補足日時:2005/05/02 14:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報