Applies ToAccess של Microsoft 365 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.

הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications‏ (VBA). לקבלת מידע נוסף אודות עבודה עם 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 מחזירה משתנה שהוא מחרוזת או סוג מספרי.

הארגומנט stringexpr חייב להיות ביטוי המאוחסן במחרוזת. אם אתה מעביר לפונקציית ה- Eval מחרוזת שאינה מכילה ביטוי מספרי או שם פונקציה אך רק מחרוזת טקסט פשוטה, מתרחשת שגיאת זמן ריצה. לדוגמה, Eval("Smith") התוצאה היא שגיאה.

באפשרותך להשתמש בפונקציה Eval כדי לקבוע את הערך המאוחסן במאפיין ערך של פקד. הדוגמה הבאה מעבירה מחרוזת המכילה הפניה מלאה לפקד לפונקציית ה- 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 כדי לגשת לאופרטורים של ביטויים שאינם זמינים בדרך כלל במודול Visual Basic for Applications (VBA). לדוגמה, לא ניתן להשתמש באופרטורים של SQL Between... לחלופין, ישירות בקוד, אך באפשרותך להשתמש בהם בביטוי שהועבר לפונקציית ה- Eval.

הדוגמה הבאה קובעת אם הערך של פקד ShipRegion בטופס Orders הוא אחד ממספר קיצורים של מצבים שצוינו. אם השדה מכיל אחד מהקיצורים, intState יהיה True (–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

הדוגמה הבאה מניחה שיש לך סידרה של 50 פונקציות המוגדרות כ- A1, A2 וכן הלאה. דוגמה זו משתמשת בפונקציה Eval כדי לקרוא לכל פונקציה בסידרה.

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

הדוגמה הבאה מפעילה אירוע Click כאילו המשתמש לחץ על לחצן בטופס. אם הערך של המאפיין OnClick של הלחצן מתחיל בסימן שוויון (=), המציין שזהו השם של פונקציה, הפונקציה Eval קוראת לפונקציה, שקולה להפעלת האירוע Click . אם הערך אינו מתחיל בסימן שוויון, הערך חייב לכלול שם למאקרו. פעולת השירות RunMacro של האובייקט DoCmd מפעילה את המאקרו בעל השם.

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

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.