- 締切済み
フォームの連続操作でエラーが出てしまう。。。
おはようございます。 ご教授頂きたく、書き込み致しました。宜しくお願 い致します。 フォームにて抽出条件を指定後、クエリーを実行させ、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 どうしても分からないので、書き込みさせて頂きました。連続操作をしてもエラーが出ないようにするには、どのようにすれば宜しいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kikaida-
- ベストアンサー率69% (37/53)
やりたいことはこんな感じでしょうか? 1.フォームに条件を入力 2.コマンド1をクリックで入力された条件からデータを抽出しaaaaテーブルを作成。ここからexcelへエクスポート。 3.コマンド2をクリックでExcelを終了。 これだけならExcelを開くところは以下の部分だけでよく、objexcelなどを使用する必要はありません。 DoCmd.OutputTo acOutputTable, "aaaaa",acFormatXLS, "\aaaaa.XLS",True ただしこのやりかただと、コマンド2クリックではExcelは終了しないのでExcel側で終了させる必要があります。
- kikaida-
- ベストアンサー率69% (37/53)
Excelを開くところのソースに問題がありそうです。その部分を載せてもらわないとなんともいえません。 またobjexcel変数のスコープは?
補足
早速のご連絡、有難うございますm(__)m >Excelを開くところのソースに問題がありそうです。 EXCELは下記の様にセットしています。 Set objexcel = CreateObject("Excel.Application") objexcel.Visible = True DoCmd.OutputTo acOutputTable, "aaaaa",acFormatXLS, "\aaaaa.XLS",True >objexcel変数のスコープは? ごめんなさい、自分VB始めたばかりで、ここの意味がよく分かっていません。