DMinDMax 함수를 사용하여 지정된 레코드 집합( 도메인 )의 최소값과 최대값을 확인할 수 있습니다. VBA(Visual Basic for Applications) 모듈, 매크로, 쿼리 식 또는 계산된 컨트롤DMinDMax 함수를 사용합니다.

예를 들어 보고서의 계산된 컨트롤에서 DMinDMax 함수를 사용하여 특정 고객에 대한 가장 작고 가장 큰 주문 금액을 표시할 수 있습니다. 또는 쿼리 식에서 DMin 함수를 사용하여 가능한 최소 할인보다 큰 할인으로 모든 주문을 표시할 수 있습니다.

구문

DMin ( expr , domain [, criteria] )

DMax ( expr , domain [, criteria] )

DMinDMax 함수에는 다음과 같은 인수가 있습니다.

인수

설명

expr

필수 요소입니다. 최소값 또는 최대값을 찾으려는 필드를 식별하는 식입니다. 테이블 또는 쿼리에서 필드를 식별하는 문자열 식 또는 해당 필드의 데이터에 대한 계산을 수행하는 식일 수 있습니다. expr에서 테이블의 필드 이름, 폼의 컨트롤, 상수 또는 함수를 포함할 수 있습니다. expr에 함수가 포함된 경우 기본 제공 또는 사용자 정의일 수 있지만 다른 도메인 집계 또는 SQL 집계 함수는 사용할 수 없습니다.

domain

필수 요소입니다. 도메인을 구성하는 레코드 집합을 식별하는 문자열 식입니다. 매개 변수가 필요하지 않은 쿼리의 테이블 이름 또는 쿼리 이름일 수 있습니다.

criteria

선택 요소입니다. DMin 또는 DMax 함수가 수행되는 데이터 범위를 제한하는 데 사용되는 문자열 식입니다. 예를 들어 criteria 는 WHERE라는 단어가 없는 SQL 식의 WHERE 절과 동일한 경우가 많습니다. 조건을 생략하면 DMinDMax 함수는 전체 도메인에 대해 expr을 평가합니다. 조건에 포함된 모든 필드는 도메인의 필드여야 합니다. 그렇지 않으면 DMinDMax 함수는 Null을 반환합니다.

주의

DMinDMax 함수는 조건을 충족하는 최소값과 최대값을 반환합니다. expr이 숫자 데이터를 식별하는 경우 DMinDMax 함수는 숫자 값을 반환합니다. expr이 문자열 데이터를 식별하는 경우 첫 번째 또는 마지막 문자열을 사전순으로 반환합니다.

DMinDMax 함수는 expr에서 참조하는 필드에서 Null 값을 무시합니다. 그러나 조건을 충족하는 레코드가 없거나 도메인 에 레코드가 없는 경우 DMinDMax 함수는 Null을 반환합니다.

매크로, 모듈, 쿼리 식 또는 계산된 컨트롤에서 DMin 또는 DMax 함수를 사용하든, criteria 인수가 올바르게 평가되도록 신중하게 구성해야 합니다.

DMinDMax 함수를 사용하여 쿼리의 Criteria 행, 쿼리의 계산된 필드 식 또는 업데이트 쿼리 의 Update To 행에 조건을 지정할 수 있습니다.

참고:  요약 쿼리 계산 필드 식에서 DMinDMax 함수 또는 MinMax 함수를 사용할 수 있습니다. DMin 또는 DMax 함수를 사용하는 경우 데이터가 그룹화되기 전에 값이 평가됩니다. Min 또는 Max 함수를 사용하는 경우 필드 식의 값이 평가되기 전에 데이터가 그룹화됩니다.

함수가 수행되는 데이터 범위를 제한하는 조건을 지정해야 하는 경우 계산된 컨트롤에서 DMin 또는 DMax 함수를 사용합니다. 예를 들어 캘리포니아로 배송되는 주문에 대해 청구되는 최대 화물을 표시하려면 텍스트 상자의 ControlSource 속성을 다음 식으로 설정합니다.

=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")

도메인 에 있는 모든 레코드의 최소 또는 최대값을 찾으려면 Min 또는 Max 함수를 사용합니다.

표시해야 하는 필드가 폼의 기반이 되는 레코드 원본에 없는 경우 모듈 또는 매크로 또는 폼의 계산된 컨트롤에서 DMin 또는 DMax 함수를 사용할 수 있습니다.

DMin 또는 DMax 함수를 사용하여 외래 테이블 필드의 최소값 또는 최대값을 찾을 수 있지만 테이블에서 필요한 필드가 포함된 쿼리를 만들고 해당 쿼리에 대한 폼이나 보고서를 기반으로 하는 쿼리를 만드는 것이 더 효율적일 수 있습니다.

참고: 이러한 함수를 사용할 때 는 도메인 의 레코드에 저장되지 않은 변경 내용이 포함되지 않습니다. DMax 또는 DMin 함수가 변경된 값을 기반으로 하려면 먼저 데이터 탭의 레코드 아래에서 레코드 저장을 클릭하거나 포커스를 다른 레코드로 이동하거나 Update 메서드를 사용하여 변경 내용을 저장해야 합니다.

예제

참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 사용에 대해 자세히 알아보려면 검색 옆의 드롭다운 목록에서 개발자 참고를 선택하고 검색 상자에 검색어를 하나 이상 입력하세요.

다음 예제에서는 영국으로 배송되는 주문에 대해 화물 필드에서 가장 낮은 값과 가장 높은 값을 반환합니다. 도메인은 Orders 테이블입니다. criteria 인수는 결과 레코드 집합을 ShipCountryRegion이 영국과 같은 레코드 집합으로 제한합니다.

Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

다음 예제에서 criteria 인수에는 OrderDate라는 텍스트 상자의 현재 값이 포함됩니다. 텍스트 상자는 Orders 테이블의 OrderDate 필드에 바인딩됩니다. 컨트롤에 대한 참조는 문자열을 나타내는 큰따옴표(")에 포함되지 않습니다. 이렇게 하면 DMax 함수가 호출 될 때마다 Access는 컨트롤에서 현재 값을 가져옵니다.

Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
    & Forms!Orders!OrderDate & "#")

다음 예제에서 criteria 식에는 변수 dteOrderDate포함됩니다. 숫자 기호(#)는 문자열 식에 포함되므로 문자열이 연결되면 날짜가 묶입니다.

Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
    "[OrderDate] = #" & dteOrderDate & "#")

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.