2013-03-21 2 views
0

일부 VB6 코드를 사용하여 데이터베이스에 연결하여 특정 데이터 하위 집합을 반환합니다. 필요한 모든 정보가 한 테이블에 있지만 다른 쿼리의 결과를 기반으로 내 결과를 선택하는 올바른 방법을 설정하는 데 약간의 문제가 있습니다. 다음은 VB6 SQL 다른 쿼리의 결과를 기반으로 결과 선택

내가 거기 내 쿼리를 생성하지만 난 내 VB6 응용 프로그램에서 사용할 수 있도록 변환려고 할 때 액세스에 의해 생성 된 SQL입니다 :

'* 편집 -

" & Chr(34) & lstAb.Text & Chr(34) & " 

위를 데이비드 덕택에 올바른 방향으로이 규범을 이끌어 냈습니다. 거기에서, 나는 정말 훌륭한 경험이었던 Access에서 나의 선택을 확인하기 위해 디버그 창을 사용했습니다. 내 별칭을 조금 조정 해줘야했지만 Access에서 이미 선언 된 다른 값을 입력하도록 요청할 때 모든 것이 매우 분명 해졌습니다.

다시 David에게 감사드립니다.

답변

1

하위 쿼리를 지정하는 대신 두 테이블간에 적절한 조인을 수행하는 것이 훨씬 나을 수도 있습니다. 그러나 그건 문제가 아니에요. 나는 생각하지 않습니다.

코드를 보면 기준을 둘러싼 인용 부호가 누락 된 것으로 보입니다. 당신 말 :

"...clone_id = " & lstAb.Text & ") ORDER..." 

이 아마해야합니다 :

"...clone_id = " & Chr(34) & lstAb.Text & Chr(34) & ") ORDER..." 

당신에게 lstAb.Text에있는 텍스트 주위에 따옴표를 제공 할 수 있습니다.

이러한 종류의 기능을 테스트하는 쉬운 방법은 Debug.Print(sSql)이며 Debug 창에서 SQL의 모양을 확인하십시오. 해당 SQL의 사본을 가져 와서 MSAccess의 새 쿼리에 드롭합니다 (쿼리에서 "View SQL"로 말할 수 있음). 그러면 잘못 될 위치를 파악하려고 시도합니다.

쿼리 디자이너가 볼 수 있으므로 쿼리에 중첩 쿼리가없는 경우 훨씬 쉽게 볼 수 있습니다.

+0

팁 주셔서 감사합니다! VB6에서 작업 한 이래로 그 10 년이 넘었으며 그 중 많은 부분이 나를 피했습니다. 여기에서는 메시지 상자를 통해 연기 신호를 보내고 디버그 창은이 문제를 해결하는 데 완벽합니다. 내가 해결 한 후에 내 글을 다시 편집 할 것입니다! 다 도와 줘서 고마워 데이빗! – Bernard

+0

이러한 VB6 기술을 편리하게 사용하십시오. 미래의 COBOL입니다 (저는 Y2K를 기억하고 있습니다. 그 사람들이 은퇴에서 벗어 났고 작은 돈을 내었습니다). –

+0

David에게 감사드립니다. 당신의 도움은 나를 다시 궤도에 올려 놓았고 당신의 팁은 하루 동안 내 얼굴에 미소를 되돌 렸습니다. 다소 VB6의 시야에 찡그린했지만 모든 언어와 응용 프로그램은 내가 생각하기에 목적을 달성 할 수 있습니다. – Bernard

0

Details.func_ID) Like "Simp_*"을 지정하십시오. 데이터 샘플에 Simp_ 문자열이 포함 된 레코드가 없습니다.

+0

제 사과 조지. 샘플 모형은 Access에서 나오는 것과 실제로 일치하지 않습니다. 실제 데이터와 처리중인 문을 반영하도록 내 게시물을 수정합니다! – Bernard

관련 문제