Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Funkcji Eval można użyć do oceny wyrażenie powodującego ciąg tekstowy lub wartość liczbową.

Można skonstruować ciąg, a następnie przekazać go do funkcji Eval , tak jakby był rzeczywistym wyrażeniem. Funkcja Eval oblicza wyrażenie tekstowe i zwraca jej wartość. Na przykład Eval("1 + 1") zwraca wartość 2.

Jeśli przejdziesz do funkcji Eval jako ciąg zawierający nazwę funkcji, funkcja Eval zwróci wartość zwracaną przez funkcję. Na przykład Eval("Chr$(65)") zwraca wartość "A".

Składnia

Eval ( stringexpr )

Argument wyrażenie_ciągu jest wyrażeniem obliczającym ciąg tekstowy alfanumeryczny. Na przykład wyrażenieexpr może być funkcją zwracającą ciąg lub wartość liczbową. Może też to być odwołanie do kontrolka w formularzu. Argument wyrażenie_ciągu musi być szacowany jako ciąg lub wartość liczbowa; nie można oszacować na 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: W przypadku przekazywania nazwy funkcji do funkcji Eval należy dołączyć nawiasy po nazwie funkcji do argumentu stringexpr . Na przykład:

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

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

Debug.Print Eval("Date()")

Uwagi

Funkcji Eval można używać w kontrolka obliczeniowa w formularzu lub raporcie albo w makrze lub module. Funkcja Eval zwraca wartość typu wariant będącego ciągiem lub typem liczbowym.

Ciąg argumentu musi być wyrażeniem przechowywanym w ciągu. Jeśli przejdziesz do funkcji Eval jako ciąg, który nie zawiera wyrażenia liczbowego ani nazwy funkcji, ale tylko prosty ciąg tekstowy, występuje błąd czasu wykonania. Na przykład Eval("Smith") powoduje błąd.

Za pomocą funkcji Eval można określić wartość przechowywaną we właściwości Value kontrolki. W poniższym przykładzie jest przekazywany ciąg zawierający pełne odwołanie do kontrolki funkcji Eval . Następnie wyświetla bieżącą wartość kontrolki 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))

Za pomocą funkcji Eval można uzyskać dostęp do operatorów wyrażeń, które zwykle nie są dostępne w module Visual Basic for Applications (VBA). Na przykład nie można używać operatorów SQL Between... Oraz lub In bezpośrednio w kodzie, ale można ich używać w wyrażeniu przekazanym do funkcji Eval .

Następny przykład określa, czy wartość kontrolki ShipRegion w formularzu Zamówienia jest jednym z kilku określonych skrótów stanu. Jeśli pole zawiera jeden ze skrótów, intState będzie mieć wartość Prawda (–1). Należy pamiętać, że do dołączania ciągu w innym ciągu używa się cudzysłowów pojedynczych (').

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

Przykłady zapytań

Expression

Wyniki

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

Oblicza wartość ciągu i oblicza wynik. Wynik: 18.

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

Oblicza wartość ciągu, identyfikuje funkcje i wykonuje je. Wynik: bieżąca data systemowa + bieżący miesiąc wyświetlana w kolumnie "NewDate".

Przykłady języka VBA

W poniższym przykładzie założono, że masz serię 50 funkcji zdefiniowanych jako A1, A2 i tak dalej. W tym przykładzie funkcja Eval jest używana do wywoływania każdej 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 wyzwala zdarzenie Click , tak jakby użytkownik kliknął przycisk w formularzu. Jeśli wartość właściwości OnClick przycisku zaczyna się od znaku równości (=), co oznacza, że jest to nazwa funkcji, funkcja Eval wywołuje funkcję, co odpowiada wyzwalaniu zdarzenia Click . Jeśli wartość nie zaczyna się od znaku równości, wartość musi nazywać makro. Metoda 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

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×