2012-02-05 2 views
1

두 개의 테이블, tblAtblB이 1 : n 관계를 갖고 있다고 가정 해 봅시다. 즉, tblA의 주어진 레코드에 대해 tblB에 많은 레코드가있을 수 있습니다.MS Access : 현재 레코드를 기반으로 명령 단추를 통해 양식을 여는 방법은 무엇입니까?

이제 tblA를 기반으로하는 양식 frmA이 있습니다. 이 양식에는 tblB을 기반으로하는 두 번째 양식 인 frmB을 여는 명령 단추가 있습니다. 이제 그 두 번째 양식 frmBtblB의 레코드가 tblA의 현재 레코드와 일치하도록 표시하려고합니다. tblB의 데이터를 필터링하는 기본 제공 방법 (Access 2010 사용)이 있음을 발견했습니다. 하지만 frmB 내에서 현재 레코드를 기반으로 좀 더 많은 작업을 수행해야하므로 충분하지 않습니다. 어떻게하면 되나요?

내부 조인을 수행하고 tblA에서 특정 레코드를 선택하는 매개 변수가있는 qryAB이라는 쿼리를 만들려고했습니다. 하지만 내 명령 단추에 대한 클릭 매크로 (또는 vba)에서 매개 변수로 사용할이 쿼리에 뭔가를 전달할 수 있습니까?

답변

2

OpenForm method의 Where 인수를 사용하여 OpenArgs를 OpenForm에 추가 할 수 있으며 코드에서 이미 열려있는 양식을 참조 할 수 있습니다. 그것은 모두 당신이 다음에하고 싶은 것에 달려 있습니다.

+0

자세한 설명을 드리겠습니다. 표 A에는 비즈니스 파트너에 대한 데이터가 포함되어 있습니다. 양식 A는 이들을 표시합니다 (연락 담당자의 하위 양식과 함께). 이제 테이블 AI의 각 레코드에 대해 A의 현재 레코드에 해당하는 테이블 B의 항목 (계약) 만 나열하는 새 양식 (팝업)을 여는 명령 단추가 필요합니다.이 양식에는 추가적으로 콤보 상자가 필요합니다. 상자는 현재 선택 항목을 기반으로하며 양식 B에 표시된 레코드의 탐색에 사용됩니다 (예 : 비즈니스 파트너와 계약을 맺은 모든 연도의 콤보 박스). – janitor048

+0

formA에서 항상 formB가 열리면 콤보의 rowsource를 'SELECT FROM Table WHERE AField = Forms! formA! SomeControl'로 설정할 수 있습니다. 그러나 폼을 전혀 참조 할 필요가 없을 수도 있습니다. 결국 폼은 id가 formA와 일치하는 레코드 만 표시하므로 rowsource가 formB ID를 참조 할 수 있습니다. 마지막으로 OpenArg로 참조를 전달하고 코드로 콤보를 빌드 할 수 있습니다. 일반적으로 독립형으로 작동하지 않는 양식을 피하려고하며 현재 양식에서 사용할 수있는 정보를 기반으로 작동하는 콤보를 작성하려고합니다. – Fionnuala

+0

OpenForm 메서드와 적절한 select 문을 함께 사용하면 효과가있는 것 같습니다. 그런 다음 양식 B의 콤보 상자를 해당 양식에서 사용할 수있는 정보를 기반으로 만들 수 있습니다. 나는 Access에 익숙하지 않고 때로는 약간의 일을 할 수있는 방법에 대해 잃어 버렸습니다 ... 당신의 도움에 감사드립니다! – janitor048

1

frmb를 frma의 하위 형식으로 만들고 상위 하위 관계를 사용하는 것으로 생각해 봤습니까?

+0

나는 그것을 고려했다. 그러나 나는 나의 시나리오에서 (Remou의 대답에 대한 내 의견을 보아라.) 이것이 내가 원하는 것이 아니라고 생각한다. – janitor048

관련 문제