2010-04-15 1 views
0

보고서를 열 때 SQL을 실행하려고합니다. 이것은 정수로 정수형 열을 일치 시키려고 할 때 잘 동작하지만, "text"열과 일치 시키려고하면 필터링 대상을 묻는 대화 상자가 계속 나타납니다.Access 2007 : 보고서를 열 때 실행할 동적 SQL

는 여기 somple 쿼리입니다 :

select person_phone_numbers.person_id from person_phone_numbers where phone_number = '444-444-4444' 
이 실제로 내가 사용하려고 해요 하위 쿼리입니다

하지만, 문제가있는 곳입니다.

select person_phone_numbers.person_id from person_phone_numbers where phone_id = 2 

내가의 OnOpen 이벤트에 넣고 나는 그 차이를 만드는 경우가 Me.RecordSource을 할당하고 있습니다 :이 그것을 변경하는 경우 그것을 잘 작동합니다. 내 목표는 폼에서 쿼리 매개 변수를 수락하고 결과가 포함 된 보고서를 열도록하는 것입니다.

편집 : 전체 코드 :

Private Sub Report_Open(Cancel As Integer) 
    Me.RecordSource = "SELECT person.original_name, person.normalized_name, phone_number.full_number, phone_number.type, person.person_id " _ 
       & "FROM phone_number INNER JOIN (person INNER JOIN person_phone_numbers ON person.person_id = person_phone_numbers.person_id) " _ 
       & "ON phone_number.full_number = person_phone_numbers.full_number where person.person_id IN " _ 
       & "(select person_phone_numbers.person_id from person_phone_numbers where phone_number = '444-444-4444')" 
End Sub 

그냥 쿼리 내가이 방법을 실행하는 매개 변수 대를 요청하고자하는 이유에 대해 어떤 생각?

+0

전화 번호 필드 텍스트인가를 게시하시기 바랍니다? 또한 나타나는 매개 변수는 무엇입니까? –

+0

예, 전화 번호 필드는 텍스트이고 계속 올라 오는 매개 변수는 "phone_number"입니다. – blockcipher

+0

Nevermind ... 분명히 열 이름을 잘못 지정했는데 열이 잘못되었음을 알리는 대신 프롬프트를 표시하기로 결정했습니다. – blockcipher

답변

0

은 실제로 해시 표시를 저장하는 전화 번호 필드입니까? 당신이 코드를 제공 한 것을, 내가 매개 변수 프롬프트를 야기 아무것도 표시되지 않습니다에서

- 전체 쿼리

+0

번호. 그냥 대시로 숫자를 저장합니다. 예 : 444-444-4444. 원본 게시물을 편집하여 실행하려는 전체 코드 조각을 갖습니다. 내 목표는 '444-444-4444'라고하는 부분을 보고서 또는 나중에 변수의 양식 컨트롤에 대한 참조로 바꾸는 것입니다. 이것은 정확히 어떻게해야하는지 정확히 알기 위해 사용하고있는 테스트 코드 일뿐입니다. – blockcipher

+0

나는 모든 폼 컨트롤 참조를 SQL에 hardwiring하는 것을 권장합니다. 대신 보고서의 OnOpen 이벤트에서 리터럴 값으로 SQL 문자열을 동적으로 구성한 다음 보고서의 Recordsource로 할당합니다. 우리가 아직 당신의 기존 문제를 아직 풀지 않았기 때문에 스스로 앞서 가고 있습니다. 그러나 그것은 우리가 아직 충분한 정보를 가지고 있지 않기 때문입니다. (원래의 질문에 대한 저의 의견을보십시오). –

+0

글쎄, 그건 내가 생각하기에, 내가 쏘고있는 것. 이 문제가 해결되면 '444-444-4444'를 대신 사용하여 양식 요소에 대한 참조를 얻을 수 있기를 바랍니다. – blockcipher