frmSearchEmployeeWorksheetsからクエリを実行するfrmStatsCorr(qryStatsCorr)にデータを送信しています。frmStatsCorrで、クエリがレコードを返すことを確認しています。そうでない場合は、ユーザーにメッセージを送信して検索フォームに戻ります。私の問題は、 Stackoverflowでここで学んだDoCmd.OpenForm( "frmStatsCorr")によって引き起こされた2501を「無視」する問題が発生していることです...
私が大きなAccessVBAフラストレーションを引き起こしているのは何が間違っているのですか?
これは、検索フォーム(frmSearchEmployeeWorksheets)のサブです。
Private Sub btnSearch_Click()
' I only change focus to force the updated data to submit to query
Me.[txtEmployee].SetFocus
Me.txtShift.SetFocus
If txtUnit = "7" Then
'First close the form in order to update
DoCmd.Close acForm, "frmStatsCorr"
' Open Stats form
On Error GoTo myErr
**DoCmd.OpenForm ("frmStatsCorr") 'causes error**
End If
myExit:
Exit Sub
myErr:
Echo True
If Err.Number = 2501 Then GoTo myExit
MsgBox Err.Description
GoTo myExit
End Sub
frmStatsCorrでは、クエリがレコードを返すことを確認するだけです。そうでない場合は、ユーザーに通知し、フォームを閉じて、frmSearchEmployeeWorksheetsに戻ります。
Private Sub Form_Load()
If strFormStatus = "view" Then
If DCount("*", "qryStatsCorr") = 0 Then
MsgBox "Your search does not produce any results. Try a different search.", vbOKOnly
DoCmd.Close
DoCmd.OpenForm ("frmSearchEmployeeWorksheets")
Exit Sub
End If
txtDay = WeekdayName(Weekday(Me.WorkDate)) 'This line returns an error so I check for an empty query and return to the search form.
Me.[WorkDate].SetFocus
Me.txtUnit.Enabled = False...