2014-09-16 8 views
0

검색 양식 인 양식이 있습니다. 이 양식에는 필드 이름 목록과 검색 키워드를 입력 할 수있는 텍스트 상자가 있습니다. 각 검색 필드/값에 대해 부울 목록의 드롭 다운 목록이 있습니다 (및 또는 아님). 사용자가 검색 버튼을 명중 할 때, 선택 후 실행되는 쿼리 문자열을 생성합니다데이터 시트가있는 검색 양식

Set qdf = CurrentDb.QueryDefs("temp_query") 
qdf.SQL = SQL_query_string 

DoCmd.Close acQuery, "temp_query" 
DoCmd.OpenQuery "temp_query", acViewNormal, acReadOnly 

SQL_query string하면 필드/값 조합을 기반으로 생성됩니다.

위의 코드는 인 temp_query이라는 새 쿼리를 만듭니다. 새 쿼리 창을 여는 대신 쿼리 결과를 데이터 시트 (테이블) 형식으로 표시하려고합니다. 하위 폼이 답일 수 있다고 생각했지만 데이터 시트 형식이 아닌 것 같습니다. 어떻게해야합니까?

이 방법이 가장 좋은 방법 인 것처럼 보이지만 실제 데이터 시트와 비슷한 모양을하고 싶습니다.

enter image description here

+0

현재 양식은 어떻게됩니까? 분할 양식으로 사용할 수 없습니까? –

+0

좋은 생각입니다. 그런 다음 검색 입력 폼에서 생성 된 쿼리 문자열에서 데이터 시트 양식을 채우려면 어떻게해야합니까? – abalter

+0

여기에서 해결책을 시도했지만 'Me! DatasheetView.Form'에는'RecordSource' 속성이없는 것 같습니다. – abalter

답변

0

아하! 올바른 구문은 다음과 같습니다.

Me.DatasheetView.Form.RecordSource = "temp_query" 

나는 얻었습니다! 어딘가에서 온라인으로, 그러나 명확하게 점은 정확한 방법이다.

은 이미 주요 검색 양식 (위 이미지 참조)했다 : 여기

은 내가 한 것입니다. DatasheetView라는 새로운 양식을 만들었습니다. 그런 다음 새 검색 폼에 연결된 마법사를 사용하여 기본 검색 양식에 하위 폼을 추가했습니다. 그런 다음 사용자가 "검색"버튼을 클릭하면 VBA 콜백이 실행되어 검색 양식 입력을 기반으로 쿼리 문자열을 함께 만듭니다. 함께 쿼리 문자열 (SQL_query_string)를 조립할 후, 나는이 :

CurrentDb.QueryDefs("temp_query").SQL = SQL_query_string 
Me.DatasheetView.Form.RecordSource = "temp_query" 

내가 명시 적으로 생성 된 SQL과 DatasheetView 쿼리를 업데이트해야 할 것이라고 생각했을 것이다, 그러나 SQL을 설정하여 단지 일어날 것으로 보인다.

기본적으로 DatasheetView 양식은 더미 양식으로 작동하며 하위 양식을 통하는 경우를 제외하고는 본 적이 없습니다.