Microsoft Access에서 QBF(양식별 쿼리) 기술을 사용하는 방법

원래 KB 번호: 304428

참고

기본 매크로, 코딩 및 상호 운용성 기술이 필요합니다. 이 문서는 Microsoft Access 데이터베이스(.accdb 및 .mdb)에만 적용됩니다.

요약

이 문서에서는 폼을 사용하여 쿼리 조건을 지정하는 방법을 보여 줍니다. 이 기술을 QBF(양식별 쿼리)라고 합니다.

추가 정보

QBF 기술에서는 쿼리 조건을 입력하는 양식을 만듭니다. 이 양식에는 빈 텍스트 상자가 포함되어 있습니다. 각 텍스트 상자는 쿼리하려는 테이블의 필드를 나타냅니다. 검색 조건을 지정하려는 텍스트 상자에만 항목을 만듭니다.

QBF 양식은 테이블의 필드와 일치하는 필드가 있는 데이터 입력 양식과 유사합니다. 이름, 주소, 도시, 주 및 우편 번호에 대한 필드가 있는 테이블에는 해당 필드가 있는 QBF 양식이 있을 수 있습니다. 특정 레코드를 선택하려면 양식에 검색 조건 조합을 입력할 수 있습니다. 도시만 지정하거나 도시 및 주 또는 우편 번호만 지정하거나 다른 조합을 지정할 수 있습니다. 비워 두는 필드는 무시됩니다. 폼에서 명령 단추를 클릭하면 Access에서 양식의 검색 조건을 사용하는 쿼리를 실행합니다.

QBF 기술을 사용하려면 다음 단계를 수행합니다.

  1. 샘플 데이터베이스 Northwind.mdb 엽니다.

  2. 테이블이나 쿼리를 기반으로 하지 않는 새 양식을 만들고 QBF_Form 저장합니다.

  3. 새 양식에서 다음 속성이 있는 두 개의 텍스트 상자와 하나의 명령 단추를 만듭니다. 그런 다음 양식을 저장합니다.

    Text box 1
    ------------------
    Name: WhatCustomer
    
    Text box 2
    ------------------
    Name: WhatEmployee
    
    Command button 1:
    ------------------
    Caption: Search
    OnClick: QBF_Macro
    
  4. 다음 새 매크로를 만든 다음 QBF_Macro 저장합니다.

    Action: OpenQuery
    Query Name: QBF_Query
    View: Datasheet
    Data Mode: Edit
    
  5. Orders 테이블을 기반으로 하는 다음 새 쿼리를 만든 다음 QBF_Query 저장합니다.

    Field: CustomerID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null
    
    Field: EmployeeID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null
    
    NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row.  
    
    Field: OrderID
    Field: OrderDate
    
  6. 양식 보기에서 QBF_Form 엽니다. 조건의 다음 조합을 입력합니다. 각 조합 후 검색을 클릭합니다.

    Customer ID   Employee ID  Result
    -------------------------------------------------------
    <blank>       <blank>      All 830 orders
    
    AROUT         <blank>      13 orders
    
    AROUT         4            4 AROUT orders for employee 4
    
    <blank>       4            156 orders for employee 4
    

각 쿼리에 대한 결과 집합을 확인한 후 데이터시트 창을 닫습니다. 그런 다음, 다음 검색을 시작합니다. 검색 단추를 클릭할 때마다 QBF 쿼리의 매개 변수는 QBF 쿼리 양식에 지정한 검색 조건에 따라 데이터를 필터링합니다.

QBF 매개 변수 조건에 대한 참고 사항

이 문서의 샘플 QBF 쿼리는 쿼리의 조건을 다음과 같이 구현합니다.

양식! FormName! ControlName또는 양식! FormName! ControlNameNull인 경우

을 사용하여 데이터를 필터링합니다. 이러한 조건은 일치하는 모든 레코드를 반환합니다. 조건 값이 null이면 지정된 필드에 대한 모든 레코드가 반환됩니다.

다음과 같은 대체 조건을 지정하여 약간 다른 결과를 반환할 수 있습니다.

참고

다음 샘플 기준에서는 밑줄(_)을 줄 연속 문자로 사용합니다. 이러한 조건을 다시 만들 때 줄 끝에서 밑줄을 제거합니다.

  • 폼처럼! FormName! ControlName& "*" Or _ Forms! FormName! ControlNameNull인 경우

    이 criteria 문은 와일드카드를 사용하여 쿼리할 수 있다는 점을 제외하고 위의 QBF 샘플과 동일합니다. 예를 들어 이 criteria 문을 사용하여 필드에 "Jo"를 입력하면 쿼리는 "Jo"로 시작하는 필드의 모든 레코드를 반환합니다. 여기에는 존슨, 존스, 요한나 등이 포함됩니다.

  • 양식 사이! FormName! StartDate 및 Forms! FormName! EndDate Or _ Forms! FormName! StartDate가 Null인 경우

    이 조건 문을 사용하여 쿼리 양식의 시작 날짜 및 종료 날짜 텍스트 상자를 사용하여 날짜 필드를 쿼리할 수 있습니다. 쿼리 양식에서 지정한 값 사이에 시작 날짜와 종료 날짜가 속하는 레코드가 반환됩니다. 그러나 폼에서 시작 날짜 값을 생략하면 쿼리는 종료 날짜 값에 관계없이 모든 레코드를 반환합니다.

  • 폼처럼! FormName! ControlName& "*" 또는 Null임

    이 criteria 문은 조건과 일치하는 레코드와 null인 레코드를 모두 반환합니다. 조건이 null이면 모든 레코드가 반환됩니다. 별표(*)는 더 큰 Like 식의 일부이기 때문에 매개 변수로 간주됩니다. 별표는 하드 코딩된 조건 값(예: "*"처럼)이므로 null 값이 있는 레코드가 반환됩니다.

  • IIf(IsNull(Forms!FormName! [ControlName]), _ "*",[Forms]! [FormName]! [ControlName])

    이 criteria 문은 조건과 일치하는 모든 레코드를 반환합니다. 쿼리 양식에 조건이 지정되지 않으면 null이 아닌 모든 레코드가 반환됩니다.

  • IIf(IsNull(Forms!FormName! [ControlName]), _ [FieldName],[Forms]! [FormName]! [ControlName])

    그러면 조건과 일치하는 모든 레코드가 반환됩니다. 쿼리 양식에 조건이 지정되지 않은 경우 null이 아닌 모든 레코드가 반환됩니다(위의 예제와 동일한 결과).