엑세스 쿼리 디자인에서는 간단한 함수들을 제공하지만 엑셀과 같은 풍부한 함수들에 미치지는 못합니다. 이럴경우 엑세스 VBA를 이용하여 엑셀 함수를 사용할 수 있습니다.

아래의 경로로가서 모듈을 클릭합니다. 간단히 ALT + F11 로 실행 할 수 도 있습니다.
Creat - Class Module - Module
사용자 삽입 이미지

아래와 같은 VBA코드창이 나타납니다. 코드창에서 아래의 경로로 갑니다.
Tools - References
사용자 삽입 이미지

레퍼런스 창이 나타나면, Microsoft Excel xx.x Object Library 를 추가하고 확인(OK)버튼을 누릅니다. 참고로 버전 숫자는 오피스버전에 따라 달라집니다. 12는 오피스 2007용입니다.
사용자 삽입 이미지

코드창으로 다시 돌아오면, 이제 여기에서 엑셀함수를 정의할 수 있습니다.
아래 그림은 NORMSDIST란 함수를 정의한 예제입니다. 코드는 아래와 같습니다.

 Public Function xlNORMSDIST(a As Double) As Double

     Dim xl As Object

     Set xl = CreateObject("Excel.Application")

     xlNORMSDIST = xl.WorksheetFunction.NormSDist(a)

     Set xl = Nothing

End Function


사용자 삽입 이미지

엑셀에서 가져올 수 있는 함수들의 리스트를 보고싶으시다면 코드창에서 F2 (Object Browser)를 실행하세요. 아래와 같은 창이 나타나는데, 중간 상단의 콤보박스에 엑셀로 선택을 하고 중간 아래부분의 Classes 박스에서 WorksheetFunction을 선택하시면 왼쪽에 사용할 수 있는 함수 목록이 나타납니다.
사용자 삽입 이미지

자, 이제 작성한 코드를 저장하고 엑셀 메인 윈도우에서 쿼리 디자인을 실행합니다. 정당한 테이블을 선택하시고, 새로운 컬럼의 Field에 Equation Builder로 내용을 넣습니다. 이때 우리가 코드창에서 만든 함수는 Functions에서 불러오실 수 있습니다.

 Expr1: xlNORMSDIST([Table1]![Field1])

사용자 삽입 이미지

Posted by leeyongwan
,