Funkcja Eval

Za pomocą funkcji eval można ocenić TE000127001, w wyniku których powstaje ciąg tekstowy lub wartość liczbowa.

Możesz utworzyć ciąg, a następnie przekazać go do funkcji eval , tak jakby ciąg był wyrażeniem rzeczywistym. Funkcja eval ocenia TE000127596 i zwraca wartość. Na przykład Eval("1 + 1") zwraca wartość 2.

Jeśli przejdziesz do funkcji eval składającej się z ciągu zawierającego nazwę funkcji, funkcja eval zwraca wartość zwracaną w funkcji. Na przykład Eval("Chr$(65)") zwraca "A".

Składnia

Eval ( stringexpr )

Argument stringexpr to wyrażenie, którego wynikiem jest alfanumeryczny ciąg tekstowy. Na przykład stringexpr może być funkcją zwracającą ciąg lub wartość liczbową. Może to też być odwołanie do TE000127312 w formularzu. Argument stringexpr musi dawać w wyniku ciąg lub wartość liczbową; nie może ona wyznaczać TE000126686.

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 przepuszczasz nazwę funkcji do funkcji eval , musisz uwzględnić nawiasy po nazwie funkcji w argumencie stringexpr . Przykłady:

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

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

Debug.Print Eval("Date()")

Spostrzeżenia

Funkcji eval można używać w TE000126578 w formularzu lub raporcie albo w makrze lub module. Funkcja eval zwraca wartość typu Variant, która jest ciągiem lub typem liczbowym.

Argument stringexpr musi być wyrażeniem przechowywanym w ciągu. Jeśli przejdziesz do funkcji eval , która nie zawiera wyrażenia liczbowego lub nazwy funkcji, ale tylko prosty ciąg tekstowy, występuje TE000127555. Na przykład Eval("Smith") powoduje błąd.

Za pomocą funkcji eval można określić wartość przechowywaną we właściwości Value formantu. W poniższym przykładzie następuje przekazanie ciągu zawierającego pełne odwołanie do kontrolki w funkcji eval . Następnie wyświetlana jest bieżąca 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 nie są zwykle dostępne w module języka Visual Basic for Applications (VBA). Na przykład nie można używać operatorów SQL między... Oraz lub bezpośrednio w kodzie, ale można ich użyć w wyrażeniu przekazanym do funkcji eval .

W następnym przykładzie określa, czy wartość kontrolki RegionOdbiorcy w formularzu Orders jest jednym z kilku określonych skrótów Stanów. Jeśli pole zawiera jeden z skrótów, intState będzie prawdziwy (– 1). Zwróć uwagę, że w celu uwzględnienia ciągu w innym ciągu należy wpisać znak apostrofu (').

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

Przykłady zapytań

Wyrażenie

Wyniki

Wybierz pozycję eval ("15 + 3") jako Wyr1 z ProductSales GROUP BY eval ("15 + 3");

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

Wybierz pozycję eval ("Date () + month (Date ())") jako NewDate z 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świetlane w kolumnie "NewDate".

Przykłady języka VBA

W poniższym przykładzie przyjęto założenie, że masz serię funkcji programu 50 zdefiniowanych jako a1, a2 itd. W tym przykładzie użyto funkcji eval w celu połączenia każdej funkcji w serii.

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

W następnym przykładzie wyzwalane jest 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 tę opcję, co jest równoważne z wyzwalaniem zdarzenia Click . Jeśli wartość nie zaczyna się znakiem równości, to wartość musi nadać makro nazwę. Metoda UruchomMakro 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:  Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Czy możesz dać nam znać, czy te informacje były pomocne? Oto angielskojęzyczny artykuł do wglądu.

Rozwijaj umiejętności związane z pakietem Office
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.

×