2011-01-07 6 views
1

MS Access 데이터베이스에 페이지 당 하나의 주문으로 주문 번호가있는 주문이있는 양식이 있습니다. 양식 하단에는 다른 양식을 열어 주문 항목을 추가하는 버튼이 있습니다.MS Access - 새 레코드로 양식 열기 및 이전 양식에서 값 삽입

MS Access에서 vb를 사용하여 주문 번호를 받아 자동으로 새 항목의 세부 정보 양식 필드에 넣으려고합니다. 다른 방법을 시도했지만 OpenArgs를 사용하는 것이 좋습니다. 그러나 세부 양식이 열리지 않고 런타임 오류가 발생합니다.

양식을하고 해당 필드는 다음과 같습니다 : - 가 여기에 문제의 세부 사항입니다 조언을 많이 이해할 수있을 것이다 주문과 양식이 하나 개의 주문에 대한 주문 라인 frmPedidoAvifiFind 양식입니다 frmPedidoAvifi - dtlAdd (별도의 양식입니다 세부 정보는 추가하지만 기존 정보는 표시하지 않음). 주문 번호에 대한 두 양식 모두의 필드는 PedidoAvifiNo입니다. 이 필드를 통해 일대 다 관계로 연결된 두 테이블의 숫자 필드입니다.

기본 양식 : 버튼 세부 양식을 가지고, 코드는 다음과 같이

코드를 기본 폼 버튼 :

Sub AddDetails_Click() 
    Dim strDocName As String 

    strDocName = "frmPedidoAvifi-dtlAdd" 

    ' Open frmPedidoAvifi-dtl form in data entry mode and store PedidoAvifiNo in the form's OpenArgs property. 

    DoCmd.OpenForm strDocName, , , , acFormAdd, , [frmPedidoAvifiFind]![PedidoAvifiNo] 

End Sub 

상세 양식 : 오픈 재산에

Private Sub Form_Open() 
If Me.OpenArgs <> vbNullString Then 
    Me.PedidoAvifiNo = Me.OpenArgs 
End If 

End Sub 

테스트 1 : 레코드가 표시되도록 기본 폼의 주문 번호를 선택하십시오. 버튼을 눌러 주문을 추가하십시오. 런타임 오류 '2465'필드를 찾을 수 없습니다 "|" 언급했다. 디버그는 DoCmd 행을 강조 표시합니다.

테스트 2 :에 변경하는 OpenForm 라인 : DoCmd.OpenForm strDocName,,,, acFormAdd, Me.PedidoAvifiNo 결과 : -하는 OpenForm 조치가 취소되었습니다 오류 2501 런타임.

는 마이크 포수 레 우스, 스페인

+2

하위 양식은 MS Access에서이 사용 사례를 처리하는 가장 좋은 방법입니다. – mwolfe02

+0

하위 폼은 훌륭하지만 많은 제어가 필요할 때 레코드를 추가하는 데 그리 좋지 않습니다. – Fionnuala

+0

@Remou : 먼저 하위 폼이 팝업 폼을 사용하기 전에 작동하지 않는 이유에 대한 설명을보고 싶습니다. –

답변

1

당신이 제어 PedidoAvifiNo의 이름 철자가 수단을 받고 오류를 주셔서 감사합니다.

입력 할 때 Me. intellisense는 사용 가능한 필드 목록을 제공하고 사용자가 가지고있는 것을 PedidoAvifiNo과 유사하게 보이거나 속성을 확인합니다. 한 글자 만 바꿀 수 있고 예고하지 않을 수 있습니다.

두 번째 부분에서는 Open 이벤트에서 컨트롤을 아직 사용할 수 없으므로 frmPedidoAvifi-dtlAdd의 Open 이벤트 대신 Load 이벤트를 사용해야합니다.