2012-08-30 38 views
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電話。調試不會提供其他信息。訪問VBA 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 
+2

手動打開frmOtherOccurrence嗎?當你通過代碼時會發生什麼? Open事件中的任何代碼?你最近有反編譯嗎?壓實和修復? – Fionnuala

+0

緊湊和修復後,它的工作原理...我需要多久做一次?爲什麼會導致事情無法正常工作...... – Zamael

+2

當你正在開發和緊湊和修復清除它們時,事情會得到保持。在開發過程中,您需要定期進行備份,反編譯和緊湊修復。 – Fionnuala

回答

0

我不知道這可能是你的問題,但你不能傳遞到OpenArgs一個開放的形式,並通過開放我的意思是甚至不能在編輯模式下,應該完全關閉。

否則,窗體將打開(將其狀態從編輯模式更改爲正常),但不會傳遞OpenArgs,因此OpenArgs將爲空,並且會拋出異常。