2015-03-02 81 views
0

我在使用After Update事件填充文本框時遇到了一些問題。我的目標是使用After Update事件自動填充Access 2010中的幾個文本框,其中使用空字段或空字段,並插入字符串字段的NA或數字字段的0。到目前爲止我所做的是創建一個Handle事件,然後從After Update函數中調用這些事件。此外,我只試過這個文本框,而不是形式,但我不確定使用哪一個,因爲我是VBA新手。在Access 2010中更新後,填充文本框無法正常工作

代碼用於填充鏈接到代碼中的字段的表格,當我轉到文本框時使用「點擊」和「按鍵事件」,但是,當我使用After Update事件後,我的表格不會自動更新去另一行。如果我轉到文本框並點擊space_bar或刪除條目,我可以使其工作。如何讓我的表在不點擊文本框的情況下自動填充?

這是我的把手事件代碼:

Private Sub HandleEmptyStringEvent(object) 
    If IsNull(object.Value) Or object.Value = "" Then 
     object.Value = "NA" 
    End If 
End Sub 

Private Sub HandleEmptyNumberEvent(object) 
    If IsNull(object.Value) Or object.Value = "" Then 
     object.Value = 0 
    End If 
End Sub 

然後它被調用:

Private Sub Field1_AfterUpdate() 
    HandleEmptyStringEvent Me.Field1 
End Sub 

Private Sub Field2_AfterUpdate() 
    HandleEmptyNumberEvent Me.Field2 
End Sub 

感謝

+0

否字段只是一個通用的術語來保持我的真實數據的私密性。我修改了我的代碼以更改字段名稱。 – marion 2015-03-02 19:17:36

+0

沒有錯誤消息,它只是不按我希望的方式工作。我編輯了我的問題更多的信息和澄清。 – marion 2015-03-02 21:00:38

回答

0

只是看着這個我的第一反應是,「後更新」是不是觸發此代碼的好事件。 - 如果你正在尋找空字段,這將觸發的唯一方式是,如果字段中有東西,那麼你刪除它。更新後需要更改值才能觸發它(否則它不更新值)。在退出時,您可以更好地選擇觸發代碼。

+0

我將AfterUpdate更改爲退出(Cancel As Integer),保持代碼的其餘部分不變,但仍然無效。我在代碼中丟失了什麼嗎? – marion 2015-03-16 14:43:42

+0

我剛剛測試了你有的代碼,它工作正常。您將需要刪除更新後列出的以前的代碼。然後從屬性表中添加一個新事件並粘貼代碼,但我猜這就是你所做的。你也可以使用下面的方法來解決這個問題:If IsNull([Field1])然後 [Field1] =「NA」 End If,但是你的方法應該更容易。 – rmh 2015-03-16 21:04:50

+0

它現在使用On Exit。謝謝您的幫助。 – marion 2015-03-17 13:19:12

相關問題