2014-04-08 1 views
0

검색 양식을 만들면서 하위 폼에서 검색 결과를 볼 수 없습니다. 쿼리가 제대로 실행되고 하위 폼 레코드 원본을 쿼리로 설정했습니다. 나는 어떤 오류도 가지지 않는다. 검색 버튼을 클릭하면 쿼리가 실행되고 레코드 선택기에서 하위 폼의 아래쪽에있는 행 수가 표시되지만 행은 볼 수 없습니다.양식에 대한 레코드 원본을 변경하려면 Access VBA를 사용하십시오.

Private Sub cmdSearch_Click() 

Dim tableName As String 
Dim colName As String 
Dim keyword As String 
Dim strSQL As String 

tableName = Me.cmbTableNames.Value 
colName = Me.cmbColumnNames.Value 
keyword = Me.txtKeyword.Value 
strSQL = "Select * from [" & [tableName] & "] where [" & [colName] & "] like '*" & [keyword] & "*';" 
Debug.Print strSQL 
Me.searchResultsForm.Visible = True 

Forms![F_SearchForm]![searchResultsForm].Form.RecordSource = "Select * from [" & [tableName] & "] where [" & [colName] & "] like '*" & [keyword] & "*';" 
Forms![F_SearchForm]![searchResultsForm].Form.Requery 
End Sub 

누군가가 내가 뭘 잘못 말해 줄 수 :

다음은 단추의 OnClick 이벤트에 대한 내 코드입니다.

이것은을 Debug.Print

위해 직접 실행 창에 표시 무엇

감사

Select * from [dbo_Internal Contacts] where [First Name] like '*Amy*'; 
내 폼은 폼보기에서 다음과 같습니다

:

enter image description here

I 내 하위 양식 (약 35)에 일부 텍스트 상자를 추가했습니다. 이제 쿼리를 실행하면 양식이 다음과 같이 보입니다. enter image description here

vba를 사용하여 하위 폼의 텍스트 상자를 레코드 소스의 열에 어떻게 연결할 수 있습니까?

도와주세요

+0

네이티브 쿼리 작성기 및 디자인 모드 속성을 사용하여 폼의 레코드 원본을 설정하지 않는 이유가 있습니까? 코드에 SQL을 포함시키는 것은 나쁜 습관이며 디버깅을 더 어렵게 만듭니다. – Tim

+0

@Tim 검색 양식을 만들려고하는데 테이블 이름과 열 이름은 사용자가 선택한 콤보 상자의 값입니다. 나는이 쿼리 (strSQL)를 그대로 사용하려고 시도했다. 하지만 액세스 쿼리를 저장하게하지 않습니다, 그것은 내게 tablename에 잘못된 브라케팅 오류를 제공합니다. 그게 내가 이쪽으로 가기로 결심 한 이유야. – ksagar

+0

해당 코드를 쿼리에 붙여 넣을 수 없습니다. 쿼리 작성기의 디자인 모드에서 처음부터 시작한 다음 필요한 테이블을 선택하고 필요에 따라 필드 사이에 조인을 만듭니다. – Tim

답변

0

알아 냈습니다. 여기에 내가

않았다 내가

Select * into tmpSearchResults from [" & [tableName] & "] where [" & [colName] & "] like '*" & [keyword] & "*'; 

에 쿼리를 수정 그리고 내 하위 폼 레코드 원본으로 tmpSearchResults를 준거야.

테이블 이름 콤보 박스가 업데이트 될 때마다 tmpSearchResults 테이블을 삭제합니다.

내가 원했던 것처럼 작동합니다.

관련 문제