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 런타임.
는 마이크 포수 레 우스, 스페인
하위 양식은 MS Access에서이 사용 사례를 처리하는 가장 좋은 방법입니다. – mwolfe02
하위 폼은 훌륭하지만 많은 제어가 필요할 때 레코드를 추가하는 데 그리 좋지 않습니다. – Fionnuala
@Remou : 먼저 하위 폼이 팝업 폼을 사용하기 전에 작동하지 않는 이유에 대한 설명을보고 싶습니다. –