3
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

実行するたびに、エラーコード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
4

1 に答える 1

0

これがあなたの問題であるかどうかはわかりませんが、開いているフォームに OpenArgs を渡すことはできません。つまり、編集モードにすることはできず、完全に閉じる必要があります。

それ以外の場合、フォームは開きます (ステータスを編集モードから通常に変更します) が、OpenArgs が渡されないため、OpenArgs は null になり、例外がスローされます。

于 2012-09-20T06:30:23.593 に答える