두 개의 테이블, tblA
및 tblB
이 1 : n 관계를 갖고 있다고 가정 해 봅시다. 즉, tblA의 주어진 레코드에 대해 tblB에 많은 레코드가있을 수 있습니다.MS Access : 현재 레코드를 기반으로 명령 단추를 통해 양식을 여는 방법은 무엇입니까?
이제 tblA를 기반으로하는 양식 frmA
이 있습니다. 이 양식에는 tblB
을 기반으로하는 두 번째 양식 인 frmB
을 여는 명령 단추가 있습니다. 이제 그 두 번째 양식 frmB
에 tblB
의 레코드가 tblA
의 현재 레코드와 일치하도록 표시하려고합니다. tblB
의 데이터를 필터링하는 기본 제공 방법 (Access 2010 사용)이 있음을 발견했습니다. 하지만 frmB
내에서 현재 레코드를 기반으로 좀 더 많은 작업을 수행해야하므로 충분하지 않습니다. 어떻게하면 되나요?
내부 조인을 수행하고 tblA
에서 특정 레코드를 선택하는 매개 변수가있는 qryAB
이라는 쿼리를 만들려고했습니다. 하지만 내 명령 단추에 대한 클릭 매크로 (또는 vba)에서 매개 변수로 사용할이 쿼리에 뭔가를 전달할 수 있습니까?
자세한 설명을 드리겠습니다. 표 A에는 비즈니스 파트너에 대한 데이터가 포함되어 있습니다. 양식 A는 이들을 표시합니다 (연락 담당자의 하위 양식과 함께). 이제 테이블 AI의 각 레코드에 대해 A의 현재 레코드에 해당하는 테이블 B의 항목 (계약) 만 나열하는 새 양식 (팝업)을 여는 명령 단추가 필요합니다.이 양식에는 추가적으로 콤보 상자가 필요합니다. 상자는 현재 선택 항목을 기반으로하며 양식 B에 표시된 레코드의 탐색에 사용됩니다 (예 : 비즈니스 파트너와 계약을 맺은 모든 연도의 콤보 박스). – janitor048
formA에서 항상 formB가 열리면 콤보의 rowsource를 'SELECT FROM Table WHERE AField = Forms! formA! SomeControl'로 설정할 수 있습니다. 그러나 폼을 전혀 참조 할 필요가 없을 수도 있습니다. 결국 폼은 id가 formA와 일치하는 레코드 만 표시하므로 rowsource가 formB ID를 참조 할 수 있습니다. 마지막으로 OpenArg로 참조를 전달하고 코드로 콤보를 빌드 할 수 있습니다. 일반적으로 독립형으로 작동하지 않는 양식을 피하려고하며 현재 양식에서 사용할 수있는 정보를 기반으로 작동하는 콤보를 작성하려고합니다. – Fionnuala
OpenForm 메서드와 적절한 select 문을 함께 사용하면 효과가있는 것 같습니다. 그런 다음 양식 B의 콤보 상자를 해당 양식에서 사용할 수있는 정보를 기반으로 만들 수 있습니다. 나는 Access에 익숙하지 않고 때로는 약간의 일을 할 수있는 방법에 대해 잃어 버렸습니다 ... 당신의 도움에 감사드립니다! – janitor048