Access 데스크톱 데이터베이스에서는 이 DLookup 함수를 사용하여 지정된 레코드 집합(도메인)에서 특정 필드의 값을 가져올 수 있습니다. VBA(Visual Basic for Applications) 모듈, 매크로, 쿼리 식 또는 폼이나 보고서의 계산된 컨트롤에서 사용할 DLookup 수 있습니다.
이 DLookup 함수를 사용하여 폼이나 보고서의 레코드 원본에 없는 필드의 값을 표시할 수 있습니다. 예를 들어, 주문 정보 테이블을 기반으로 하는 폼이 있다고 가정해 보겠습니다. 폼에는 , , UnitPriceProductID, Quantity, 및 Discount 필드가 OrderID표시됩니다. 그러나 필드는 ProductName 다른 테이블인 테이블에 있습니다.Products 계산된 컨트롤의 함수를 사용하여 DLookup 동일한 폼에 표시 ProductName 할 수 있습니다.
구문
DLookup(expr, domain [, criteria])
함수에는 DLookup 다음과 같은 인수가 있습니다.
| 인수 | 설명 |
|---|---|
expr |
필수 요소입니다. 반환할 값이 있는 필드를 식별하는 식입니다. 테이블 또는 쿼리의 필드를 식별하는 문자열 식이거나 해당 필드의 데이터에 대해 계산을 수행하는 식일 수 있습니다.
expr에서는 테이블의 필드 이름, 폼의 컨트롤, 상수 또는 함수를 포함할 수 있습니다. 함수를 포함하는 경우 expr 기본 제공되거나 사용자 정의될 수 있지만 다른 도메인 집계 또는 SQL 집계 함수는 사용할 수 없습니다. |
domain |
필수 요소입니다. 도메인을 구성하는 레코드 집합을 식별하는 문자열 식입니다. 테이블 이름이거나 매개 변수가 필요하지 않은 쿼리의 쿼리 이름일 수 있습니다. |
criteria |
선택 요소입니다. 함수가 실행되는 데이터의 범위를 제한하는 데 사용되는 문자열 식입니다 DLookup . 예를 들어, criteria 는 단어가 없는 WHERE식의 SQL 절과 WHERE 동일한 경우가 많습니다. 을 생 criteria략하면 함수는 DLookup 전체 도메인에 대해 평가됩니다 expr . 에 criteria 포함된 필드는 의 필드 domain이기도 합니다. 그렇지 않으면 함수는 DLookup 를 반환 Null합니다. |
주의
이 함수는 DLookup 에 지정된 정보를 기반으로 단일 필드 값을 반환합니다.criteria 선택 사항이지만 criteria 값을 제공하지 않으면 함수는 DLookup 도메인에서 임의의 값을 반환합니다.
를 만족하는 criteria레코드가 없거나 레코드가 없으면 domain 함수는 DLookup 를 반환 Null합니다.
두 개 이상의 필드가 충족되면 criteria함수는 DLookup 첫 번째 항목을 반환합니다. 반환된 필드 값이 고유한지 확인하는 조건을 지정해야 합니다.DLookup 고유 값을 반환하도록 DLookup 다음 예제와 같이 [EmployeeID] 조건에 기본 키 값을 사용할 수 있습니다.
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
함수를 DLookup 매크로나 모듈, 쿼리 식 또는 계산된 컨트롤에서 사용하든 관계없이 Access에서 올바르게 계산할 수 있도록 신중하게 인수를 구성 criteria 하세요.
이 DLookup 함수를 사용하여 쿼리의 조건 행, 쿼리의 계산된 필드 식 내에서, 또는 업데이트 쿼리의 업데이트 대상 행에서 조건을 지정할 수 있습니다.
표시해야 하는 필드가 폼이나 보고서의 기반이 되는 레코드 원본에 없는 경우 폼이나 보고서의 계산된 컨트롤에 있는 식에 이 함수를 사용할 DLookup 수도 있습니다. 예를 들어 필드를 표시 ProductID 하는 텍스트 상자 ProductID 가 있는 주문 정보 테이블을 기반으로 하는 주문 정보 폼이 있다고 가정해 보겠습니다. 텍스트 상자의 값을 기준으로 테이블에서 Products 조회 ProductName 하려면 다른 텍스트 상자를 만들고 해당 ControlSource 속성을 다음 식으로 설정합니다.
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
팁
- DLookup 함수를 사용하여 외부 테이블의 필드에 있는 값을 표시할 수 있지만 두 테이블 모두에서 필요한 필드가 포함된 쿼리를 만든 다음 해당 쿼리를 기반으로 양식이나 보고서를 작성하는 것이 더 효율적일 수 있습니다.
- 조회 마법사를 사용하여 외래 테이블의 값을 찾을 수도 있습니다.
참고
이 함수를 사용할 때 레코드에 대한 domain 저장되지 않은 변경 내용은 포함되지 않습니다.
DLookup 변경된 값을 사용하려면 먼저 데이터 탭의 레코드 아래에 있는 레코드 저장을 클릭하거나 포커스를 다른 레코드로 옮기거나 메서드를 사용하여 변경 내용을 저장합니다.Update
예제
참고
VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 작업에 대한 자세한 내용은 Access VBA 참조를 참조하세요.
다음 예제에서는 를 충족하는 레코드의 필드에서 CompanyName 이름 정보를 반환합니다.criteria 도메인이 테이블입니다 Shippers .
criteria 이 인수는 레코드의 결과 집합을 다음과 같은 레코드 ShipperID 로 제한합니다1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
표의 Shippers 다음 예제에서는 폼 컨트롤 ShipperID 을 사용하여 함수에 대한 DLookup 조건을 제공합니다. 컨트롤에 대한 참조는 문자열을 나타내는 따옴표 안에 포함되지 않습니다. 이렇게 하면 실행할 때마다 DLookup 컨트롤에서 현재 값을 가져옵니다.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
다음 예제에서는 변수 intSearch를 사용하여 값을 가져옵니다.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)