TransferSpreadsheetのエラー処理について
ご教授お願いします。
TransferSpreadsheetで、エクセルファイルをインポートします。
その際、エクセルにシート保護(ブック保護)がかかっている
場合、読み取りができません。ここをエラー処理を表示させたいです。
現状では
If MyName <> "." And MyName <> ".." Then
' ビット単位の比較で、MyName がファイルであるかどうか
pu_strImfilename = MyName
DoCmd.SetWarnings False
'★★★ファイルインポートする
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, _
"wrk_Excelファイルインポート", sBuffer & "\" & MyName, True, "インポートの範囲"
DoCmd.SetWarnings True
End If
としています。
実行すると、保護状態のエクセルブックのみ、
'3161'が表示されます。どうぞよろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Select Case Err.Number
Case 3161
MsgBox Err.Number & Err.Description & MyName
End If
ImportCancel = True
End Select
上記記載の「End If」はどこに由来するものですか?
また
>実行すると、保護状態のエクセルブックのみ、'3161'が表示されます。
とありますが、「MsgBox Err.Number & Err.Description & MyName」と指定しているのでメッセージが出ますよね。そのメッセージが出ないということなのでしょうか?
Select Case Err.Number
Case 3161
MsgBox Err.Number & Err.Description & MyName
Exit Sub
End Select
とでもしておけば、3161のエラーが発生したときに終了させることもできるでしょうし、スキップさせて指定したエラー時の処理まで飛ばすように指定すれば保護エラー発生後の処理ができるのではないですか?
現状保護エラー発生時にどのような現象が発生しているかをまず書かないと。
この回答への補足
すみません、説明がかなり不足しておりました。
本日エラー処理について私自身、再度、調査と勉強をしております。
もう一度経緯と、詳細など発生事象をまとめて
質問させていただきます。
回答者のお二方、まことにありがとうございました。
No.2
- 回答日時:
>On Error GoTo ImportFile
>・インポート処理
>・クエリ実行
>ImportFile_Err:
とありますが
On Error GoTo で指定しているラベル ImportFileがないからでは?
ImportFile_Err と書くべきではないでしょうか?
この回答への補足
たびたび本当に申し訳ありません。
少しコードを伏せてここに記入したため、
記入ミスしてしまいました・・・
仰るとおり、以下で実装しています。
On Error GoTo ImportFile_Err
・処理
・クエリ実行・
ImportFile_Err:
No.1
- 回答日時:
「エラー処理を表示させる」とは、エラーメッセージを表示すると解釈してよろしいのでしょうか?
そうだと仮定して、書きます。
まず 環境はVisual Basic6.0以下ということでよいのでしょうか?
だとすれば On Errorステートメントを使用すればよいのではないでしょうか? あとはErrオブジェクトのNumberプロパティでエラーの原因を判別すれば良いと思います。
.NETならば Try Catchを使用しエラー情報を拾えばよいと思います。
この回答への補足
早速のお答えありがとうございます。
説明不足でごめんなさい。
環境は、ACCESSVBAです。
On Error GoTo ・・・でエラー処理を
走らせているはずなのですがエラー処理に行く前に
デバッグのダイアログメッセージが表示されてしまいます。
On Error GoTo ImportFile
・インポート処理
・クエリ実行
ImportFile_Err:
Select Case Err.Number
Case 3161
MsgBox Err.Number & Err.Description & MyName
End If
ImportCancel = True
End Select
とい感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Accessにインポートしようとするとエラーに
Access(アクセス)
-
エクセルからアクセスにインポートする際のエラーについて
Access(アクセス)
-
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
-
4
ACCESS VBAでのインポート
Access(アクセス)
-
5
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
6
エラー3011
Visual Basic(VBA)
-
7
データベースの最適化をマクロでしたい
その他(データベース)
-
8
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
9
アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
エクセル関数を教えてください
-
String""から型'Double'への変...
-
ApplicationとWorksheetFunctio...
-
エクセルVBAでApplication.Sum...
-
VBでSQL文のUPDATE構文を使った...
-
マクロの「SaveAs」でエラーが...
-
Filter関数を用いた結果、何も...
-
実行時エラー 438 の解決策をお...
-
VBA データ(特定値)のある最...
-
数式は残し値をクリアするマク...
-
エクセルVBAで#N/Aのようなエ...
-
マクロで"#N/A"のエラー行を削...
-
ACCESS VBAのSplit()関数の使用...
-
ACCESS2007 VBA 「INSERT INTO...
-
文字列内で括弧を使うには
-
【VBA】ワークブックを開く時に...
-
C言語のエラーについて。
-
オブジェクト型の変数にフォー...
-
Excel vbaについての質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
エクセルVBA 「On Error GoTo...
-
VBA データ(特定値)のある最...
-
実行時エラー'-2147467259(8000...
-
【VBA】ワークブックを開く時に...
-
VBでSQL文のUPDATE構文を使った...
-
ACCESSで値を代入できないとは?
-
マクロの「SaveAs」でエラーが...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
「実行時エラー '3167' レコー...
-
バッチファイルで、あるスクリ...
おすすめ情報