2013-07-05 17 views
0

我有一個表T與所需的文本字段item,和一個文本字段userID,旨在填寫當前用戶的登錄ID。我有一個表格mainForm與基於此表的子表格TForm。爲了確保每個記錄用戶的ID我已經添加了以下事件TForm如何保持Form_Current操作觸發表驗證錯誤?

Sub form_current() 
Me.userID = Environ("username") 
End Sub 

當我打開mainForm,我立即收到此錯誤信息上的開口道:

You must enter a value in the 'T.item' field. 

我想什麼這裏發生的事情是,form_current()事件使Access認爲我試圖完成一個新記錄的輸入,而T.item仍然是空白的,這違反了表約束,因爲這是一個必填字段。奇怪的是,這隻發生在我打開mainForm;當我自己打開TForm時,打開時不會收到此錯誤消息。

我應該使用不同的事件來填寫每個字段的用戶登錄ID嗎?或者有沒有更好的方法來使用form_current()

回答

1

第一種方式。您TForm的

Public Function getUserName() As String 
    getUserName = Environ("Username") 
End Function 

然後打開屬性窗口,選擇「用戶id」文本框中,選擇屬性窗口中的「數據」選項卡,找到「默認值」和行:

一個模塊中創建一個函數放下一個表達式:= getUserName()。

我不知道爲什麼,但訪問沒有看到Environ()函數。

第二種方式。

實施OnLoad事件是這樣的:

Private Sub Form_Load() 
    Me.userID.DefaultValue = "=""" & Environ("username") & """" 
End Sub 
+0

謝謝,我去了第二種方法,它解決了這個問題。 – sigil