Funkcja Eval

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Funkcja Eval ma być obliczona wyrażenie, którego wynikiem jest ciąg tekstowy lub wartość liczbową.

Można skonstruować ciąg i przekazać je do funkcji Eval tak, jakby były ciąg rzeczywistym wyrażeniu. Funkcja Eval oblicza wyrażenie tekstowe i zwraca wartość. Na przykład Eval("1 + 1") zwraca wartość 2.

W przypadku przekazania do funkcji Eval ciąg, który zawiera nazwę funkcji, funkcja Eval zwraca wartość zwróconą przez funkcję. Na przykład Eval("Chr$(65)") zwraca wartość "A".

Składnia

Eval ( wyrażenie_tekstowe )

Argument wyrażenie_tekstowe to wyrażenie, którego wynikiem jest alfanumeryczny ciąg tekstowy. Na przykład wyrażenie_tekstowe może być funkcją zwracającą ciąg lub wartość liczbową. Lub może być odwołaniem do kontrolka w formularzu. Argument wyrażenie_tekstowe musi być ciągiem lub wartością liczbową; nie może być obiekt programu Microsoft Access.

Uwaga : Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.

Uwaga : Jeśli nazwa funkcji do funkcji Eval , należy dołączyć nawiasy po nazwie funkcji w argumencie wyrażenie_tekstowe . Na przykład:

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

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

Debug.Print Eval("Date()")

Spostrzeżenia

Funkcja Eval w kontrolka obliczeniowa w formularzu lub raporcie albo makra lub modułu. Funkcja Evalwariant ciągu lub typu liczbowego.

Argument wyrażenie_tekstowe musi być wyrażenia, który jest przechowywany w ciągu. Jeśli możesz przekazać do funkcji Eval ciąg, który nie zawiera wyrażenie liczbowe lub nazwę funkcji, ale ciąg tekstowy, występuje błąd czasu wykonania. Na przykład Eval("Smith") powoduje wystąpienie błędu.

Funkcja Eval do określenia wartości przechowywanej w polu wartość właściwości formantu. Poniższy przykład przekazuje ciąg zawierający pełne odwołanie do formantu do funkcji Eval . Następnie wyświetla bieżącą wartość formantu w oknie dialogowym.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Funkcja Eval umożliwia dostęp do operatorów wyrażeń, które są niedostępne w module Visual Basic for Applications (VBA). Na przykład nie można używać operatorów SQL między... I lub w bezpośrednio w kodzie, ale można ich używać w wyrażeniu przekazane do funkcji Eval .

Następny przykład określa, czy wartość formantu ShipRegion w formularzu zamówienia jest jedną z kilku określonych skrótów nazw stanów. Jeśli pole zawiera jeden ze skrótów, intState jest PRAWDA (-1). Należy zauważyć, że przy dołączaniu ciągu w innym ciągu za pomocą pojedynczy cudzysłów (').

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

Przykład

W poniższym przykładzie założono, że masz seria 50 funkcji zdefiniowanych jako A1, A2 i tak dalej. W tym przykładzie użyto funkcji Eval do wywołania wszystkich funkcji w serii.

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

Następny przykład uaktywnia zdarzenie kliknij przycisk tak, jakby były kliknięciu przycisku w formularzu. Jeżeli wartość argumentu właściwość OnClick przycisku rozpoczyna się znakiem równości (=), co oznacza, że jest to nazwa funkcji, Eval funkcja wywołuje funkcję, która odpowiada powodujące kliknij zdarzenie. Jeśli wartość nie zaczyna się od znaku równości, wartość musi nazwę makra. Metody RunMacro obiektu DoCmd uruchamia nazwane makro.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×