2013-06-30 5 views
0

VBA가 아닌 액세스 쿼리로 쿼리 결과를 채우려는 목록 상자가있는 양식이 있습니다. 이 쿼리에는 기본 키를 기반으로하는 Where 절이 있습니다. 컨셉을 낮추기 위해서, 나는 (쿼리의 기준에서) PK의 값을 하드 코딩했습니다. 그리고 그것은 효과적이었습니다. 필자가해야 할 일은 앱에서 발생하는 일에 값이 종속되도록 변수를 만드는 것입니다. 감사!Where 절에서 변수를 사용하여 쿼리

답변

1

쿼리의 WHERE 절에서 전역 함수를 호출 할 수 있습니다.

예를 들어 VBA에 함수를 작성합니다. 쿼리에서

Public Function ValueForQuery() as Long 
    ValueForQuery = x 'x will be the value you want to pass from the app 
End Function 

:

SELECT * FROM SomeTable WHERE PK = ValueForQuery() 
+0

감사합니다 - 나는 그것을 시도 할 것이다. 나는 VBA의 외부에서 완전히 할 수있는 방법이 있었지만. – DaveL

+0

조금 문제가 있습니다. 내가 이해하고 있는지 확인하십시오. 위의 쿼리에서 '액세스 쿼리'의 기준에 해당 할 수 있습니까? 즉, VBA에 내장 된 SQL이 아닙니다. 왜냐하면 내가 그걸 실행하고 실행하면 '매개 변수 값 입력'상자와 필드 (함수) 이름 상자에 값을 넣으라는 메시지가 표시되기 때문입니다. – DaveL

+0

조금만 조정 해 보았습니다.하지만 지금 문제는 쿼리가 함수를 인식하지 못하는 것입니다. 쿼리를 열 때 msg가 나타납니다 : "식의 xyz '에서 정의되지 않은 함수. 하지만 쿼리 자체를 열 때 의미가 있습니다. 이 기능이 '글로벌'이 아닐 수도 있다는 표시 일 수 있습니까? – DaveL

관련 문제