내가 올바르게 읽고 있어요 경우, 당신은 당신이 양식의 주요 부분으로 메인 부모 테이블을 가지고 말을하는지, 당신은 당신이 주위를 탐색 할 때 자식 레코드가 서브 형태로 표시합니다 . 기본적으로 액세스는이 방법으로 작동하며 코드를 전혀 작성하지 않아도됩니다.
하위 레코드에 하위 레코드를 추가하면 외래 키 값이 올바르게 설정됩니다. 다시 코드가 필요 없습니다.
따라서 기본 상위 테이블을 기반으로 표준 양식을 작성하십시오. 그런 다음 하위 테이블을 기반으로 연속 양식을 작성하여 위의 기본 양식에 드롭 할 수 있습니다.
그러면 데스윙 모드에서 기본 폼을 열고 하위 폼 속성 시트를 설정합니다. 이 속성 시트에서 링크 마스터 및 링크 하위 필드를 설정하기 만하면됩니다. 링크 마스터는 기본 양식의 기본 키로 설정되고 링크 하위는 하위 양식의 테이블에서 외래 키 필드로 설정됩니다.
위의 작업을 완료하면 코딩 작업없이 모든 작업이 완료됩니다. 아이 추가 오류 메시지에 대해서는
: 그들은 새로운 고객 레코드를 탐색 할 때까지
당신이 주요 고객 양식을 가정하면, 다음 사용자가 순서를 추가 할 수 없습니다. 새 고객 레코드로 이동하지 않으면이 주 폼에서 기존 고객을 편집하게됩니다. 따라서 모든 경우에 고객 주문을 입력하기 전에 주요 고객 기록이 항상 추가됩니다.
사용자가 빈 고객 레코드로 이동 한 다음 커서 (포커스)를 주문이있는 하위 양식으로 이동하고 입력을 시작한다고 가정합니다. 이 시나리오에서도 포커스가 주요 고객 양식에서 주문 하위 양식으로 이동하면 빈 고객 레코드가 추가됩니다. (따라서 기본 UI 기본 양식과 하위 양식 설정을 사용하는 경우 액세스 UI가 상위 레코드 추가를 처리합니다)
그래서 사용자 인터페이스 관점에서 볼 때 실제로 사용자는 불가능할 것입니다 이미 주요 고객 기록없이 주문을 입력 할 수 있습니다. 이 때문에 부모 고객 기록이 없다는 오류 메시지가 표시되지 않습니다. 그 사람이 비 (非) 하위 양식으로 주문 양식을 열고 새 주문 레코드를 추가하려고 시도하는 경우에만이 종류의 오류를 가져올 것입니다. 이 경우 오류 메시지가 나타납니다. 따라서이 오류 메시지를 잡아낼 필요가 없습니다. 사용자가 독립형으로 하위 양식을 열도록 허용하지 않습니다.이상한 이유로 하위 양식을 기본 양식과 분리하여 열 수있게하려면 additons = false를 사용하여 양식을 연다 (오류 메시지가 다시 필요하지 않도록).
사용자가 하위 양식이나 주문 양식을 별도로 열고 허용 추가 기능을 사용 중지하지 않은 경우 사용자가 새로운 빈 레코드로 이동할 수 있다고 가정합니다. 고객 레코드에 대한 FK가 올바르게 설정되지 않는다는 것을 의미합니다. 정말 오류 메시지를 트래핑되지 않은 의미에서 다시 한번
If isnull(foreign key field name goes here) = true then
Msgbox “ you must select a customer before you can enter an order”
Cancel = true
End if
을이 주문 조항이 고객을 선택하는 양식이 있다면, 당신은 가장 확실하게이 주문 양식의 업데이트 이벤트 전에 다음 코드를 넣을 수 있습니다 부모 레코드가 없으면 자식 레코드가 추가 될 것입니다. UI 인터페이스를 사용하여 사용자에게 오류 메시지가 처음부터 발생하지 않도록 조치를 취하도록 알려줍니다.
고마워요! 이전에이 작업을했는데 연습이 필요했습니다. 단일 고객 행이 없을 때 사용자가 레코드를 추가하지 못하도록하는 방법이 있습니까 (이 경우 Orders)? Access에서 오류가 발생했습니다 (세부 정보를 기억할 수 없음). 오류 메시지/상자에서 Access의 오류를 재정의 할 수 있습니까? – dotnetdev
테이블 B의 외래 키가 필요한 경우 데이터 베이 스 엔진이 오류를 발생시켜야합니다. 폼에는 Form_Error 이벤트가있어 모든 데이터 오류가 발생합니다. – Mark3308