Доступ vba DoCmd.OpenForm "Действие отменено"

Private Sub OccurrenceName_AfterUpdate()
If OccurrenceName.Value = "Other" Then
 Dim strTechID As String
 Dim strOccurrenceCt As String
 Dim strOccurrenceDate As String
 strTechID = Me.Parent.tbxTechID.Value
 strOccurrenceCt = Forms![frmEmployeeOccurrenceInput]![tbxOccurrence].Value
 strOccurrenceDate = Me.OccurrenceDate.Value
 Dim strOpenArgs As String
 strOpenArgs = strTechID & "|" & strOccurrenceCt & "|" & strOccurrenceDate
 DoCmd.OpenForm "frmOtherOccurrence", , , , , , strOpenArgs
Else
 Me.OccurrenceAmt = Me.OccurrenceName.Column(1)
 Me.Type = Me.OccurrenceName.Column(2)
End If
End Sub

Каждый раз, когда он запускается, я получаю "Действие Open Form было отменено" с кодом ошибки 2501. Линией, на которую он попадает, является вызов DoCmd.OpenForm. Отладка не дает дополнительной информации.

Здесь OpenArgs передается:

Private Sub Form_Load()
Dim aryOA As Variant
aryOA = Split(Me.OpenArgs, "|")
Me.lblTechID.Caption = aryOA(0)
Me.lblOccurrenceCt.Caption = aryOA(1)
Me.lblOccurrenceDate.Caption = aryOA(2)
End Sub
1 ответ

Я не знаю, может ли это быть вашей проблемой, но вы не можете передавать OpenArgs в открытую форму и, открыв, я имею в виду, что она не может быть даже в режиме редактирования, должна быть полностью закрыта.

В противном случае форма откроется (измените ее статус из режима редактирования в нормальное состояние), но никакие OpenArgs не будут переданы, поэтому OpenArgs будет пустым и будет выведено исключение.

licensed under cc by-sa 3.0 with attribution.