2012-02-21 3 views
8

VBA를 사용하여 Access 아래에있는 모듈에서 작성한 SQL 쿼리에서 양식의 값을 가져 오려고합니다. 사용하려고 시도했습니다VBA 모듈을 사용하여 Access에서 폼의 텍스트 값 가져 오기

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....." 

오류가 발생했습니다 (2450). 지정한 양식을 찾을 수 없다는 오류가 발생했습니다. 모듈에서 사용할 수 있도록이 텍스트 상자의 값을 어떻게 얻을 수 있습니까?

Thx

+0

시도 할 때 양식이 열려 있습니까? – Fionnuala

답변

6

양식이 열려 있는지 확인하기 위해 VBA 코드를 수정하십시오.

DoCmd.OpenForm "NameOfForm" 

오류 # 2450을 방지해야합니다.

그런 다음 [NameOfTextbox] 값을 변수에 저장 한 다음 해당 변수를 사용하여 SQL 문을 작성하지 않아도됩니다. 그 값을 직접 사용할 수 있습니다.

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';" 

또는 텍스트 상자 자체에 대한 참조 (텍스트 상자 값 대신)를 쿼리에 포함 시키십시오.

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];" 

some_field는 텍스트 데이터 유형 필드이므로 첫 번째 쿼리 예제에서 작은 따옴표로 텍스트 상자 값을 묶었습니다. 두 번째 예제에서는 값보다는 텍스트 상자를 참조하므로 따옴표가 필요하지 않습니다.

그러나 원래의 방법 (텍스트 상자 값을 변수에 저장)을 계속 사용하면 값이 많은 개체의 속성과 혼동 될 수 있으므로 변수의 이름을 "값"으로 지정하지 마십시오.

관련 문제