Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

Eval 함수를 사용하여 텍스트 문자열 또는 숫자 값을 생성하는 식 평가할 수 있습니다.

문자열을 생성한 다음 문자열이 실제 식인 것처럼 Eval 함수에 전달할 수 있습니다. Eval 함수는 문자열 식 평가하고 해당 값을 반환합니다. 예를 들어 Eval("1 + 1") 2를 반환합니다.

Eval 함수에 함수 이름이 포함된 문자열을 전달하면 Eval 함수는 함수의 반환 값을 반환합니다. 예를 들어 Eval("Chr$(65)") "A"를 반환합니다.

구문

Eval ( stringexpr )

stringexpr 인수는 영숫자 텍스트 문자열로 계산되는 식입니다. 예를 들어 stringexpr 은 문자열 또는 숫자 값을 반환하는 함수일 수 있습니다. 또는 폼의 컨트롤 대한 참조일 수 있습니다. stringexpr 인수는 문자열 또는 숫자 값으로 계산되어야 합니다. Microsoft Access 개체 계산할 수 없습니다.

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

참고: 함수의 이름을 Eval 함수에 전달하는 경우 stringexpr 인수에 함수 이름 다음에 괄호를 포함해야 합니다. 예를 들면 다음과 같습니다.

' ShowNames is user-defined function.Debug.Print Eval("ShowNames()")   

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

주의

폼이나 보고서의 계산된 컨트롤 또는 매크로 또는 모듈에서 Eval 함수를 사용할 수 있습니다. Eval 함수는 문자열 또는 숫자 형식인 Variant를 반환합니다.

stringexpr 인수는 문자열에 저장된 식이어야 합니다. Eval 함수에 숫자 식이나 함수 이름이 포함되지 않지만 간단한 텍스트 문자열만 포함된 문자열을 전달하면 런타임 오류 발생합니다. 예를 들어 Eval("Smith") 오류가 발생합니다.

Eval 함수를 사용하여 컨트롤의 Value 속성에 저장된 값을 확인할 수 있습니다. 다음 예제에서는 Eval 함수에 컨트롤에 대한 전체 참조가 포함된 문자열을 전달합니다. 그런 다음 대화 상자에 컨트롤의 현재 값을 표시합니다.

Dim ctl As ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "Forms!Employees!LastName"MsgBox ("The current value of " & ctl.Name & _    " is " & Eval(strCtl))

Eval 함수를 사용하여 VBA(Visual Basic for Applications) 모듈에서 일반적으로 사용할 수 없는 식 연산자에 액세스할 수 있습니다. 예를 들어 SQL 연산자 사이...를 사용할 수 없습니다 . 또는 코드에서 직접 In 을 사용하지만 Eval 함수에 전달된 식에서 사용할 수 있습니다.

다음 예제에서는 Orders 양식의 ShipRegion 컨트롤 값이 지정된 여러 상태 약어 중 하나인지 여부를 결정합니다. 필드에 약어 중 하나가 포함된 경우 intStateTrue (–1)가 됩니다. 작은따옴표(')를 사용하여 다른 문자열 내에 문자열을 포함합니다.

Dim intState As IntegerintState = Eval("Forms!Orders!ShipRegion In " _    & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

쿼리 예제

Expression

결과

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

문자열 값을 평가하고 결과를 계산합니다. 결과: 18.

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

문자열 값을 평가하고, 함수를 식별하고, 실행합니다. 결과: "NewDate" 열에 표시되는 현재 시스템 날짜 + 현재 월입니다.

VBA 예제

다음 예제에서는 A1, A2 등으로 정의된 50개의 함수가 있다고 가정합니다. 이 예제에서는 Eval 함수를 사용하여 계열의 각 함수를 호출합니다.

Sub CallSeries()    Dim intI As Integer    For intI = 1 To 50        Eval("A" & intI & "()")    Next intIEnd Sub

다음 예제에서는 사용자가 폼에서 단추를 클릭한 것처럼 Click 이벤트를 트리거합니다. 단추의 OnClick 속성 값이 함수의 이름임을 나타내는 등호(=)로 시작하는 경우 Eval 함수는 Click 이벤트를 트리거하는 것과 동일한 함수를 호출합니다. 값이 등호로 시작되지 않으면 값의 이름을 매크로로 지정해야 합니다. DoCmd 개체의 RunMacro 메서드는 명명된 매크로를 실행합니다.

Dim ctl As ControlDim varTemp As VariantSet ctl = Forms!Contacts!HelpButtonIf (Left(ctl.OnClick, 1) = "=") Then    varTemp = Eval(Mid(ctl.OnClick,2))Else    DoCmd.RunMacro ctl.OnClickEnd If

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

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