- ベストアンサー
Access VBAにおけるon error gotoの機能不良について
bonaronの回答
問題のPCで VBE の [ツール] - [オプション] - [全般]タブ で 「エラートラップ」 が 「エラー発生時に中断」になっていませんか?
関連するQ&A
- アクセスのVBAについて、フォームの On Error Goto についておしえてください。
Private Sub cmd次_Click() On Error GoTo Err DoCmd.GoToRecord , , acNext Exit_Click: Exit Sub Err: MsgBox "この先にレコードがなくなると、ここをつうかするのだろうか。" Resume Exit_Click End Sub 一連の流れについて,ご解説ください。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- On Error GoTo でエラーが発生する
Sub Macro1() On Error GoTo ErrorTrap1 '-エラーの発生するコード 1 ErrorTrap1: On Error GoTo 0 Do On Error GoTo ErrorTrap2 '-エラーの発生するコード 2 On Error GoTo 0 Loop ErrorTrap2: End Sub しかし、以下のようにSubで二つに分けるとエラーは出ません。 Sub Macro1() On Error GoTo ErrorTrap1 '-エラーの発生するコード 1 ErrorTrap1: On Error GoTo 0 Call Macro2 End Sub Sub Macro2() Do On Error GoTo ErrorTrap2 '-エラーの発生するコード 2 On Error GoTo 0 Loop ErrorTrap2: End Sub 「On Error GoTo 0」がうまく解除できていないのかと思い、いろいろ試してみました。 しかし、どういった理由かはわかりませんでした。 「On Error GoTo」は、Subでは、ひとつしか使えないのでしょうか。
- ベストアンサー
- オフィス系ソフト
- GoToRecordで実行時エラー '2105'
教えてください。Access2000です。 Private Sub 次へ_Click() On Error GoTo Err_次へ_Click On Error Resume Next DoCmd.GoToRecord , , acNext Exit_次へ_Click: Exit Sub Err_次へ_Click: MsgBox ERR.Description Resume Exit_次へ_Click End Sub って書いたのですが、最後のレコードまで行った後 「次へ」をクリックすると実行時エラーになってしまいます。 移動できませんとかメッセージで逃げたいのですがどうすればいいのでしょうか? お願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスVBAのエラーについて
フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?
- 締切済み
- Access(アクセス)
- On ErrorでエラーNoが0
On ErrorでエラーをトラップしてエラーNOとエラー内容をダイアログに表示させています。 Private Sub pv_sample() Dim errno as Long On Error GoTo ERR_END ' 処理内容略 Exit Sub ERR_END: errno = Err.Number MsgBox "システムエラー エラーNO(" & errno & ") 内容(" & Err.Description & ")" End Sub エラーが発生した場合はErr.Numberには0以外がセットされるはずですが 「システムエラー エラーNO(0) 内容()」 というメッセージが表示されることがあります。 On Eroorで飛んできたときにエラーNoが0になってしまうことはありえるのでしょうか。
- ベストアンサー
- Visual Basic
- VBでのエラー処理(On Error)
VBで以下のようなプログラムを書いています。 sub On Error goto Err 処理1 Err: 処理2 End sub 処理1でエラーが発生した場合、Err:の処理に入ってくるのですが、もしErr:の中の処理2でもエラーが発生した場合、どうすればよいのでしょうか? Err:の中でもエラー処理ができるのでしょうか、それともロジックで回避しなければならないのでしょうか? ご存知の方がいらっしゃいましたら宜しくお願いします。
- ベストアンサー
- Visual Basic
- 二つのエラーを発生させたい
ひとつのプロシージャー内で、 二つのエラートラップを仕掛ける事は出来ないのでしょうか? Sub エラーが発生した時にエラーが発生したら() Dim i As Long On Error GoTo Err1 i = "a" Exit Sub Err1: MsgBox "Err1のエラー: " & Err.Description On Error GoTo Err2 i = "b" Exit Sub Err2: MsgBox "Err2のエラー: " & Err.Description End Sub を行うと、 i = "b" で2回目のエラーが発生した時は、 実行時エラーになってしまいます。 i = "b" で2回目のエラーが発生した時に、 「Err2のエラー: 型が一致しません。」 と表示させるにはどうすればいいでしょう? Sub エラーが発生した時にエラーが発生したら() Dim i As Long On Error GoTo Err1 On Error GoTo Err2 i = "a" Exit Sub Err1: MsgBox "Err1のエラー: " & Err.Description i = "b" Exit Sub Err2: MsgBox "Err2のエラー: " & Err.Description End Sub にすると、 i = "a" のエラーで、 「Err2のエラー: 型が一致しません。」 へ移動してしまいます。
- ベストアンサー
- オフィス系ソフト
- access vba 構文の解読
access vba 構文の解読 はじめまして先ほどaccess2003について質問させていただいたものです。以下の構文が先ほどの続きです。こちらも皆様のお力で構文を解読していただけないでしょうか。 すみません解読とは、構文の一行一行が何を示しているのか教えていただけると助かります。 よろしくお願いいたします。 ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument] ' Any other command is unrecognized. Case Else MsgBox "不明なオプションです。" End Select ' Close the recordset and the database. rs.Close HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "コマンド実行中のエラーです。", vbCritical Resume HandleButtonClick_Exit End If End Function Private Sub メニュー終了_Click() On Error GoTo Err_メニュー終了_Click DoCmd.Close Exit_メニュー終了_Click: Exit Sub Err_メニュー終了_Click: MsgBox Err.Description Resume Exit_メニュー終了_Click End Sub Private Sub 終了_Click() On Error GoTo Err_終了_Click DoCmd.Quit Exit_終了_Click: Exit Sub Err_終了_Click: MsgBox Err.Description Resume Exit_終了_Click End Sub
- 締切済み
- その他(データベース)
- [Excel2003] On Error GoTo について教えてください。
エラー処理について教えてください。 以下の様なマクロで、インプットボックスに 数字以外を入力した場合のエラー処理ですが、 次のような手順で進めると 「型が一致しません」とエラー表示されてしまいます。 どこがいけないのでしょうか? 【手順】 ・マクロ実行 ・インプットボックスへ数字以外の文字を入力 ・「OK」クリック ・再びインプットボックス出現 ・もう一度数字以外の文字を入力 ・「OK」クリック←ここでエラー表示! Sub TEST() Dim Tuki As Integer On Error GoTo INPT INPT: Tuki = InputBox("何月分ですか?" & vbCrLf & _ "数字を入力してください。", "集計月入力", 1) If Tuki = 0 Or Tuki > 12 Then MsgBox "1から12の数字を入力してください。" GoTo INPT End If On Error GoTo 0 End Sub
- ベストアンサー
- オフィス系ソフト
- Access VBAで行ラベルが定義されていないというエラーが出ます
VBA初心者です。 下記のソースで行ラベルを定義しているつもりなのですが、 なぜか行ラベルが定義されていませんというコンパイルエラーがでます。 よろしくお願いします。 Private Sub cmd_Click() On Error GoTo Err_cmd_Click <---ここ Dim inp As String Dim cnt As Integer inp = Forms![フォーム1]![日付] 'フォームの非連結テキストボックスと連動 For cnt = 1 To 31 'インポート・フルパス名作成 If (cnt) < 9 Then strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & "0" & cnt + 1 & ".csv" DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False Else strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & cnt + 1 & ".csv" DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False End If Next cnt '正常終了 Exit_cmd_Click: End Sub 'エラー処理 Err_cmd_Click: Beep Select Case Err.Number Case Else MsgBox Err.Number & ":" & Err.Description End Select Resume Next End Sub
- ベストアンサー
- オフィス系ソフト
お礼
5891615さん 早速ためして見ました まさに、コレでした。 本当にありがとうございました