2013-07-05 1 views
0

필자는 테이블에 필요한 텍스트 필드가 item이고, 현재 사용자의 로그인 ID를 채우는 텍스트 필드가 userID입니다. 이 양식을 기반으로 서브 폼 TForm 인 양식 mainForm을 가지고 있습니다. 내가 mainForm을 열 때Form_Current 작업이 테이블 유효성 검사 오류를 트리거하는 것을 방지하려면 어떻게해야합니까?

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

, 나는 개방에 즉시 오류 메시지가 : 각 레코드 내가 TForm에 다음과 같은 이벤트를 추가 한 사용자의 ID가 있는지 확인하려면

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

내가 생각하는 무엇 여기서 form_current() 이벤트를 사용하면 Access에서 새로운 레코드의 입력을 완료하려고 시도했지만 여전히 필수 필드이므로 테이블 제약 조건을 위반하는 것으로 간주됩니다. 흥미롭게도, 이것은 내가 열 때만 발생합니다 mainForm; TForm을 열면이 오류 메시지가 표시되지 않습니다.

다른 이벤트를 사용하여 각 필드의 사용자 로그인 ID를 채워야합니까? 또는 이것을 위해 form_current()을 사용하는 더 좋은 방법이 있습니까?

답변

1

첫 번째 방법.

모듈에서 함수를 만듭니다

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

열기 속성 창을 귀하의 TForm을위한 선택 "userId를"필드, 속성 창에서 "데이터"탭을 선택, "기본 값"과 함께 행 찾기 다음 표현식 넣기 : = getUserName().

왜 나는 모르지만 Environ() 기능을 볼 수 없습니다.

두 번째 방법입니다. 이 같은

구현 OnLoad 이벤트 :

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

덕분에, 나는 두 번째 방법으로 가서이 문제를 해결했다. – sigil

관련 문제