Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1961 / 2272 ツリー ←次へ | 前へ→

【4435】Excelへエクスポートする時にError番号0と... EBI 05/2/19(土) 18:30 質問[未読]
【4436】Re:Excelへエクスポートする時にError番号0... かろちん 05/2/19(土) 21:22 回答[未読]
【4437】Re:Excelへエクスポートする時にError番号... EBI 05/2/20(日) 10:27 お礼[未読]
【4438】Re:Excelへエクスポートする時にError番号... かろちん 05/2/20(日) 11:38 回答[未読]
【4449】改めてお礼申します。 EBI 05/2/22(火) 20:47 発言[未読]

【4435】Excelへエクスポートする時にError番号0と...
質問  EBI E-MAIL  - 05/2/19(土) 18:30 -

引用なし
パスワード
   久しぶりに質問させてください。
Excelへエクスポートすることになり、以下のようにしてエクセルへは正常に出力されますが、
エラーのメッセージボックスが出ます。内容は・・・

Error番号:0
Error内容:  ←空白です。

エラー番号0とは何でしょうか。どう解決すればいいのでしょうか?

Access2000
Excel2000
WinXP
--------------------------------------------------------------------------

Private Sub cmd9_Click()
On Error GoTo エラー

Dim rs As Object
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim xlWt As Object
Dim xlWu As Object
'
'レコードセットを開く
Set rs = CurrentDb.OpenRecordset("tbl_顧客")
'
'オブジェクトの作成
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
'
'ファイルを開く
Set xlWb = xlApp.Workbooks.Open("F:\テスト.xls")
'
'シートをセット
Set xlWs = xlWb.Worksheets("管理用")
'
'既存のデータを消去
xlWs.Range("A4.N9999").ClearContents
'
'セルを指定してレコードセットを張り付け
xlWs.Range("A4").CopyFromRecordset rs
'
エラー:

  MsgBox "Error番号:" & Err.Number & vbNewLine & _
      "Error内容:" & Err.Description, 16, "管理者"
  End
  
End Sub
--------------------------------------------------------------------------

【4436】Re:Excelへエクスポートする時にError番号...
回答  かろちん  - 05/2/19(土) 21:22 -

引用なし
パスワード
   >Excelへエクスポートすることになり、以下のようにしてエクセルへは正常に出力されますが、
>エラーのメッセージボックスが出ます。内容は・・・
>
>Error番号:0
>Error内容:  ←空白です。
>
>エラー番号0とは何でしょうか。どう解決すればいいのでしょうか?

エラーが出ていないから、エラー番号は0です。
エラーが出ていないから、エラー内容は空白です。

プログラムを良く見てみましょう。
エラー処理の所は、正常に処理されても、エラーになっても通ります。

エラー処理はエラーの場合にのみ通す必要があります。


   〜 上部省略 〜
>'既存のデータを消去
>xlWs.Range("A4.N9999").ClearContents
>'
>'セルを指定してレコードセットを張り付け
>xlWs.Range("A4").CopyFromRecordset rs
>'
ここに
Exit Sub
が必要です。
>エラー:
>
>  MsgBox "Error番号:" & Err.Number & vbNewLine & _
>      "Error内容:" & Err.Description, 16, "管理者"
>  End
>  
>End Sub

【4437】Re:Excelへエクスポートする時にError番号...
お礼  EBI E-MAIL  - 05/2/20(日) 10:27 -

引用なし
パスワード
   ありがとうございました。
Exit Sub だけでよかったのですね。
でも、エラーが出ていないのですから、On Error GoTo ではなく
On Error Resume Next で済ますことにしました。

【4438】Re:Excelへエクスポートする時にError番号...
回答  かろちん  - 05/2/20(日) 11:38 -

引用なし
パスワード
   >でも、エラーが出ていないのですから、On Error GoTo ではなく
>On Error Resume Next で済ますことにしました。

 本当にこれでいいの?
 これでは、エラーが起こっても次のステップ行を実行するという
 意味ですよ。
 エラーが起こっても分からないってことですよ。
 それでいいならいいですが。

【4449】改めてお礼申します。
発言  EBI E-MAIL  - 05/2/22(火) 20:47 -

引用なし
パスワード
   ご注意いただきましたとおり、On Error GoTo でやることにしました。
実は、家でやっていたときは気がつかなかったのですが、会社のマシンへこのコードを書いた時に、間違いに気がつかずに実行していたのです。どうやってもExcelへエクスポートが出来ませんでした。
言われたとおり、On Error Goto にしてみると、「オブジェクトをサポートしていません」 と、エラーが出ました。
原因は CopyFromRecordset rs 
         ↓
        Form
になっていました。これだけのことでした。
改めてお礼申します。

1961 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078267
(SS)C-BOARD v3.8 is Free