2012-12-06 5 views
1

레코드를 사용하여 기본 폼의 단일 하위 폼을 채우는 코드가 있습니다. 문제는 레코드가 하위 폼에 표시되지 않는다는 것입니다. 나는 그것을 자신의 형태로 하위 폼을 열 경우 거의 동일한 코드로 완벽하게 작동합니다 :Microsoft Access Subform이 채워지지 않습니다.

Forms!frmCorrespondanceHolidays.RecordSource = strsql ' WORKS FINE 
Me.frmCorrespondanceHolidays.Form.RecordSource = strsql 'SHOWS NO RECORDS 

난 그냥 쿼리에 STRSQL의 값을 붙여 넣을 경우 올바른 레코드가 반환되는 것을 테스트했습니다. 나는 그것이 Access의 버그라고 생각하기 시작했습니다. 새 데이터베이스를 만들고 모든 개체를 가져 와서 데이터베이스를 다시 만들려고했습니다. 나는 또한 컴팩트 & 수리했습니다. 다른 무엇을 시도해야할지 확실하지 않습니다!

답변

2

하위 폼의 이름이 하위 보고서의 소스 이름과 다릅니다. 여기 VBA에서 참조 할 이름을 찾아야합니다. 부모 폼이 디자인보기에 있고 속성을 보면 하위 폼을 한 번 선택합니다. 내가 찾은 추가 조사 후

SubForm Name for VBA

+0

일반적으로 하위 폼 컨트롤의 이름을 자식 폼과 동일하게 지정할 수 있습니다. 이것이 문제라면 컨트롤을 찾을 수 없다는 오류가 발생하지만 코드가 제대로 실행되면 레코드가 표시되지 않습니다. 아이디어를 가져 주셔서 감사합니다. – awestrope

+0

Option Explicit를 사용하고 있습니다. – awestrope

0

은이 SQL이 아닌 하위 폼 관련이있다. sql에 상위 양식을 참조하지 않는 조회가 들어 있으면 레코드가 표시됩니다. sql이 양식을 참조하는 조회를 포함하면 레코드가 표시되지 않습니다. 이 한계를 극복해야 할 것 같네요. 포인터를 가져 주셔서 감사합니다.