2017-11-11 44 views
0

我從Excel 2016 VBA下面的代碼。對象如何與客戶斷開連接?

Private Sub useridno_AfterUpdate() 

    Dim strMsg As String 
    Dim ret_type As Integer 
    Dim strTitle As String 

    strTitle = "Wrong User ID Number!" 
    strMsg = " Would you like to try again?" 

    If Me.useridno.Value <> 1 Then 
     ret_type = MsgBox(strMsg, vbYesNo + vbCritical, strTitle) 

     Select Case ret_type 
      Case 6 
       Me.useridno.SetFocus 
       Me.useridno.Text = "" 
      Case 7 
       Unload Me 
     End Select 
    End If 

End Sub 

當我運行它,它返回以下錯誤:

Disconnected to its clients!

發生這種情況時,我選擇在消息框中的「否」按鈕。這是爲什麼?

+0

變化的數據類型與變種昏暗ret_type作爲整數變暗ret_type爲Variant – Sixthsense

+0

什麼樣的控制是'useridno'? –

+0

@RobinMackenzie,這是我的用戶表單中的文本框。 –

回答

1

某處在你的項目,你有一個Show命令,它顯示窗體。從那一刻起,用戶表單處於控制之中。當用戶窗體關閉時,將繼續執行Show命令後面的代碼。 @Storax指出的命令是Me.Hide

你的代碼有Unload Me代替。當其他過程試圖在Show命令之後引用用戶表單時發生此錯誤。您的代碼可能會嘗試從表單讀取一些數據,或者可能存在無害的Set UserForm = Nothing。它已經卸載,因此不能再提及。

正確的方法是在調用過程中卸載表單,然後執行Show命令,並從您想要使用的表單中檢索到所有數據。然後,如果你希望顯式地從內存中釋放窗體的對象變量,你可以這樣做。

+0

注意到先生。謝謝。我現在明白!:)也感謝Storax! –

相關問題