2012-04-27 8 views
2

다음 쿼리에서 이해할 수 있습니다. 어떤 종류의 테이블과 테이블 열을 사용하고 계십니까? 나는 그것의 아주 혼란스럽게 접근하는 MS에 익숙하다. 나는 모양을 가지고있다. 다음과 같다. 테이블/컬럼이 사용되고 있는가?msaccess 쿼리

테이블 이름 || 테이블 컬럼 com020 (.t_nama, .t_namb) mcs031 (.t_suno, .t_dsca)

우측 테이블 com020의 열 t_cbrn 조인.

그리고 왜 & ContryCode &이 항상 사용되고 있는지 이해할 수 없습니다.

Sub VSearch(Letter,Name,Vcode,LPage,CurrentPage) 
dim countryCode 
countryCode = readfromRegistry("HKEY_LOCAL_MACHINE\SOFTWARE\HR\DSN\mkCountryCode") 

dim oRs2,Query2,i,colourcount 
Set oRs2 = Server.CreateObject("ADODB.Recordset") 

Query2 = "SELECT com020" & countryCode & ".t_nama, com020" & countryCode & ".t_namb, ttccom020" 
& countryCode & ".t_suno, mcs031" & countryCode & ".t_dsca FROM mcs031" & countryCode 
& " RIGHT JOIN com020" & countryCode & " ON mcs031" & countryCode & ".t_cbrn = com020" & countryCode & ".t_cbrn " 

if letter <> "" then 
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_nama) Like '" & QueryFix(Letter) &  "%' escape '\' ORDER BY com020" & countryCode & ".t_nama" 
elseif name <> "" then 
Query2 = Query2 & "WHERE LOWERCASE((com020" & countryCode & ".t_nama)) Like '%" & LCase(Name) & "%' ORDER BY com020" & countryCode & ".t_nama" 
elseif Vcode <> "" then 
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_suno) Like '%" & UCase(Vcode) & "%' ORDER BY com020" & countryCode & ".t_nama" 
elseif LPage <> "" then 
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_cbrn) = '" & LPage & "' ORDER BY com020" & countryCode & ".t_nama" 
end if 
+0

디버깅 해 보셨습니까? – Arion

+3

열은 ** t_nama **, ** t_namb **, ** t_suno **, ** t_dsca ** 입니다. 그러나 모든 테이블의 이름은 countryCode로 지정됩니다. CountryCode가 ** ABC ** 인 경우 테이블 이름은 ** msc031ABC **, ** com020ABC ** – Nick

+0

입니다. 감사합니다. Nick! 나는 그것을 지금 이해한다. –

답변

0

countryCode는 데이터베이스에서 사용되는 변수 테이블이있는 경우 추가 노드 쿼리를 구성하는 데 사용됩니다. 이렇게하면 각 테이블을 처리하기 위해 쿼리를 업데이트 할 필요가 없습니다.

컬럼의 이름

은 다음과 같습니다 t_nama t_namb t_suno t_dsca

나는 그것이 유용한 쿼리가 생성되는 시점에서 디버그 모드에서보기를 깨고으로 SQL을 잡고 변수를 복사 만나세요 ' 즉시 '창을 사용하여 쿼리가 형성된 후 쿼리 결과를 확인합니다.

관련 문제