2014-05-13 2 views
0

3 개의 다른 TextBox와 2 개의 단추 -> 저장 및 닫기가있는 양식이 있습니다. 2 개의 텍스트 상자가 보이지 않습니다. 이 보이지 않는 TextBox 중 1 개는 자동 증가 정수이고 두 번째 것은 양식의 onLoad 값을가집니다. 마지막 것은 채우기 위해 필요합니다.
내가 원하는 것 : 사용자가 "닫기"버튼을 클릭하면 보이는 TextBox가 비어 있어도 양식이 닫힙니다.
현재 내가 가지고있는 것 : 사용자가 "닫기"버튼을 클릭하면 "텍스트 상자가 비어 있습니다"라는 오류 메시지가 나타납니다.오류없이 양식을 닫으십시오.

답변

1

레코드 저장을 제어하려는 것처럼 들립니다. 그러나 동시에, 나는 당신이 무언가에 놓인 모양의 Record Source가다는 것을 생각한다. 아래는 기록의 저장을 제어 할 수있는 방법을 보여줍니다 자신 :

I 디자인 뷰에서 다음과 같은 형식이 있습니다

enter image description here

: 그것은 다음과 같은 일반보기에서

enter image description here

양식에 Record Source을 아무 것도 설정하지 않았습니다. 이 데모에 대한 3 개 텍스트 상자의

이름은 다음과 같습니다 양식 txtField2이 자동으로 주어 열어 때

Private Sub cmdSave_Click() 
    If (Len(txtField3 & "") <> 0) Then 
    DoCmd.SetWarnings False 
    DoCmd.RunSQL "INSERT INTO yyy (Field2, Field3) " & _ 
       "VALUES ('" & txtField2 & "', '" & txtField3 & "')" 
    DoCmd.SetWarnings True 

    MsgBox "You have successfully saved the record.", , "SUCCESS" 
    Else 
    MsgBox "You must provide a value for Field 3 " & _ 
      "before saving the record." & vbNewLine & vbNewLine & _ 
      "The record was not saved.", , "MISSING INFORMATION" 
    End If 
End Sub 


Private Sub Form_Load() 
    txtField2 = "test" 
End Sub 


Private Sub cmdClose_Click() 
    On Error GoTo Err_cmdClose_Click 
    DoCmd.Close 
Exit_cmdClose_Click: 
    Exit Sub 
Err_cmdClose_Click: 
    MsgBox Err.Description 
    Resume Exit_cmdClose_Click 
End Sub 

: txtField1, txtField2, 그리고 여기에

txtField3 양식 뒤에 코드 가치. 사용자가 Save 버튼을 클릭하면 코드에서 txtField3에 값을 입력했는지 확인합니다. 그럴 경우문이 실행되고 레코드를 나타내는 메시지가 성공적으로 저장되었습니다. txtField3에 값을 입력하지 않으면 값을 제공 할 때까지 레코드를 저장할 수 없다는 메시지가 표시됩니다.

양식의 Record Source이 설정되지 않았으므로 양식을 닫는 데 아무런 문제가 없습니다.

사실, AutoNumber 필드의 경우 텍스트 상자가 필요하지 않습니다. 위의 예에서 볼 수 있듯이 INSERT 문에이를 전달하지 않습니다. 데이터베이스가이를 처리합니다.

관련 문제