今朝コードを更新しているときに、エラーが発生しました。関数を文字列に置き換えましたが、その後のかっこを削除するのを忘れたため、コードが実行されませんでした。
ただし、これはエラー処理コードをトリガーしなかったため、エラーは報告されず、コードをステップ実行してエラーを見つけるのに時間がかかりました。
以下のコード:
Private Sub Form_Close()
On Error GoTo ErrHandler
'Update to say the user is no longer logged in
DoCmd.SetWarnings False
DoCmd.OpenQuery "Last Logged Out"
'Backup data
If (strNameChecker <> "workshop.accdb") Then
strBackupUser = Nz(GetFullName(), "default")
strFriendlyNow = Replace(Now(), "/", "-")
strFriendlyNow = Replace(strFriendlyNow, ":", "-")
strNewFileName = "F:\Data\Central\Marketing\Databases\Prospects Database\Auto-Backups\TargetDBData - backed up by " & strBackupUser() & " on " & strFriendlyNow & ".mdb"
BackupProspects "F:\Data\Central\Marketing\Databases\Prospects Database\TargetDBData.mdb", "" & strNewFileName & ""
sSql = "INSERT INTO [Backup to Delete] ([Version Number]) SELECT '" & strNewFileName & "' AS Expr1;"
DoCmd.RunSQL sSql
'Delete the temporary version of the front end.
DoCmd.OpenQuery "Update - Version Shutdown"
DoCmd.SetWarnings True
Application.FollowHyperlink "F:\Data\Central\Marketing\Databases\Prospects Database\Prospects Database Shutdown.accdb"
End If
Exit Sub
ErrHandler:
DoCmd.SetWarnings True
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error"
End Sub
このエラーは、コードの途中にある strBackupUser の後の 2 つの括弧が原因で発生します。これらを削除すると、コードは正常に動作します。しかし、このエラーがエラー処理をトリガーしないのはなぜですか?