2012-12-02 5 views
2

에 성공하면, 나는 테이블에 새 연락처를 추가하는 형태가 있습니다메시지 박스 레코드 업데이트 액세스 2007 년

RecSet.AddNew 
RecSet![Code_Personal] = Me.txtCodePersonal.Value 
RecSet![FName] = Me.TxtFName.Value 
RecSet![LName] = Me.txtLName.Value 
RecSet![Tel Natel] = Me.txtNatTel.Value 
RecSet![Tel Home] = Me.txtHomeTel.Value 
RecSet![Email] = Me.txtEmail.Value 
RecSet.Update 

이 지금까지 근무하고있다, 그리고 접촉이 성공적으로 aded되었습니다. 하지만 두 가지 문제에 봉착 : 연락처가 성공적으로 추가되지 않은 경우 나 연락처가 성공적으로

  • 를 추가 된 사용자에게 알려줄 수있는 메시지 박스를 표시 할

      1. 이미 같은 이름의 접촉 때문에 존재 함
      2. 다른 문제
        그런 다음 "이미있는 연락처"또는 "오류가 발생했습니다"라는 메시지 상자를 표시하십시오.

    이 일을 내 생각은 다음과 같습니다

    If recSet.Update = true Then 
    MsgBox "Paolo Bernasconi was successfully added" 
    Else if RecSet![FName] & RecSet![LName] 'already exist in table 
    MsgBox "Contact already exists" 
    Else 
    MsgBox "An unknown error occured" 
    

    이 코드가 작동하지 않습니다 분명히 잘못하고 알고 있지만, 그것은 당신에게 난 어떤 아이디어를주고 그냥 성취하려고 노력한다. 모든 도움을 미리 보내 주셔서 감사합니다.

  • 답변

    1

    오류 처리기를 프로 시저에 추가하십시오.

    On Error GoTo ErrorHandler 
    

    그런 다음 레코드 집합을 업데이트 한 후 즉시 "성공"알림을 표시하십시오.

    RecSet.Update 
    MsgBox RecSet![FName] & " " & RecSet![FName] & _ 
        " was successfully added" 
    

    업데이트 시도가 실패하면 흐름 제어가 ErrorHandler 섹션으로 전달됩니다.

    ErrorHandler: 
        MsgBox "Oops!" 
    

    의심 할 여지없이 "웁스!" 메시지. 매끄러운 접근법은 Select Case 블록을 사용하여 오류 번호를 기반으로 응답을 사용자 정의하는 것입니다.

    연락처를 추가하기 전에 이미 있는지 여부를 확인하십시오. strCriteria을 구축 할 때

    strCriteria = "Fname = '" & RecSet![FName] & "' AND LName = '" & _ 
        RecSet![LName] & "'" 
    Debug.Print strCriteria 
    If DCount("*", "YourTable", strCriteria) > 0 Then 
        ' do not attempt to add it again 
        MsgBox "Contact already exists" 
    Else 
        RecSet.AddNew 
        ' and so forth 
    End If 
    

    점검 경우에 Debug.Print 출력은 내가 실수를했다.

    여기서 의도하는 것은 존재하지 않는 연락처 만 추가하여 중복 오류 조건을 방지하는 것입니다. 따라서이 오류는 발생하지 않아야하며 기타 오류는 오류 처리기에서 처리됩니다.

    관련 문제