2013-08-09 4 views
1

두 개의 콤보 상자가 포함 된 양식 (fCen1-20)이 있습니다. 첫 번째 콤보 상자는 조회 값이라고하고 드롭 다운에는 데이터베이스의 모든 테이블에 대한 기본 키로 사용되는 Lookup_Value 필드가 있습니다. 두 번째 콤보 상자는 Category라고하며 드롭 다운에는 Category, Code 및 Table 필드가 있습니다.MS 액세스 문의 양식

사용자가 조회 값 및 범주를 선택하고 선택한 조회 값에 대해 선택한 범주 값을 반환하는 쿼리를 알려주고 싶습니다. 복잡한 요소는 각 조회 값이 고유 한 코드가 할당 된 1500 가지 이상의 고유 정보 범주와 관련되어 있다는 것입니다.이 코드는 필드 이름 역할을합니다.

SELECT [Forms]![fCen1-20]![Category 1].Code 
' Rationale: Get the value for the Code associated with a given category 

FROM [Forms]![fCen1-20]![Category 1].Table 
' Rationale: Reference the Table where the selected Category/Code is housed 

ON [Forms]![fCen1-20]![Category 1].Table.Lookup_Value = _ 
     [Forms]![fCen1-20].[Lookup Value]; 
' Rationale: Select only those records in the table 
' for which the Lookup_Value field matches the Lookup Value 
' selected in the form 

나는이 코드를 실행

, 나는 오류는 "FROM 절에 구문 오류"를 제공하고 있습니다 : 참고로

, 나는 아래, 내 근거와 함께, 내 코드를 붙여 넣은. 이 작품을 만드는 방법에 대한 제안? 추가 세부 정보 나 설명을 원하면 알려 주시기 바랍니다. 감사!

답변

1

쿼리에서이 값을 사용하면 폼보기에서 fCen1-20 양식이 열려 있다고 가정하면 작동합니다. 현재 선택된 콤보 상자의 행의 바운드 열에서 돌려 주어집니다

SELECT [Forms]![fCen1-20]![Category 1] 

값. [Category 1]에 3 개의 열이 포함되어 있다는 사실은 중요하지 않습니다. db 엔진은 "바인딩 된"열만 봅니다. (콤보의 속성 시트 데이터 탭에서 콤보의 바운드 열 속성을 확인하십시오.) 바운드 값은 쿼리에서 사용할 수있는 유일한 콤보 값입니다.

당신은 그 열에서 값을 검색 할 콤보 이름에 열 이름을 추가 할 수 없습니다, 그래서 이들은 모두가 실패합니다 : 나는 당신의 접근 방식이 작동하지 않는 생각하는 이유에 대한 내 설명을했다

[Forms]![fCen1-20]![Category 1].Code 
[Forms]![fCen1-20]![Category 1].Table 

. 그러나, 나는 대신 무엇을 제안해야할지 모른다. 일반적으로 테이블의 기본 키를 콤보의 바운드 값으로 사용하는 경우 해당 바운드 값을 쿼리의 DLookup 식과 함께 사용할 수 있습니다. 예를 들어,
SELECT fld1, fld2, etc 
FROM YourTable 
WHERE some_field = DLookup(
    "lookup_field", 
    "AnotherTable", 
    "pkey_field = " & [Forms]![fCen1-20]![Category 1] 
    ); 

불행하게도 나는 분명히 당신이 달성하려고하는지 이해하지 않기 때문에 그 제안은 상황에 유용 여부를 알 수없는 ... 모든 값이 숫자입니다 가정.