الدالة Eval

هام: تمت ترجمة هذه المقالة ترجمة آلية، راجع إقرار إخلاء المسؤولية. يرجى الاطلاع على النسخة الإنجليزية من هذه المقالة. هنا للرجوع إليها.

يمكنك استخدام الداله Eval ل# تقييم تعبير الذي ينتج في سلسله نصيه او قيمه رقميه.

يمكنك انشاء سلسله و# قم ب# تمريره ل# الداله Eval كما لو السلسله تعبير الفعلي. الداله Eval تقييم تعبير السلسلة و# ارجاع قيمتها. علي سبيل المثال، ترجع Eval("1 + 1") 2.

اذا قمت ب# تمرير ل# الداله Eval سلسله تحتوي علي اسم الداله، ترجع الداله Eval قيمه الارجاع ل# الداله. علي سبيل المثال، ترجع Eval("Chr$(65)") "ا".

بناء الجملة

Eval ( سترينجيكسبر )

الوسيطه سترينجيكسبر هي تعبير يتم تقييمه الي سلسله نصيه ابجديه رقميه. علي سبيل المثال، يمكن سترينجيكسبر داله ترجع سلسله او قيمه رقميه. او قد يكون من مرجع الي عنصر تحكم في نموذج. يجب ان يتم تقييم وسيطه سترينجيكسبر ل# سلسله او قيمه رقميه؛ لا يتم تقييم ل عنصر Microsoft Access.

ملاحظة: توضح الامثله التاليه استخدام هذه الداله في Visual Basic for Applications (VBA) الوحده النمطيه. ل# الحصول علي مزيد من المعلومات حول العمل ب# استخدام VBA، حدد مرجع المطور في القائمه المنسدله الموجود ب# جانب بحث و# ادخل شروط واحد او اكثر في مربع البحث.

ملاحظة: اذا كان يتم تمرير اسم داله ل# الداله Eval ، يجب ان يتضمن الاقواس بعد اسم الداله في الوسيطه سترينجيكسبر . على سبيل المثال:

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

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

Debug.Print Eval("Date()")

ملاحظات

يمكنك استخدام الداله Eval في عنصر تحكم محسوب علي نموذج او تقرير، او في الماكرو او الوحده النمطيه. ترجع الداله Evalمتغير سلسله او نوع رقمي.

يجب ان تكون الوسيطه سترينجيكسبر تعبير المخزنه في سلسله. اذا قمت ب# تمرير ل# الداله Eval سلسله لا يحتوي علي تعبير رقمي او اسم داله و# لكن فقط سلسله نصيه بسيطه، يحدث خطأ أثناء التشغيل. علي سبيل المثال، ينتج Eval("Smith") خطا.

يمكنك استخدام الداله Eval ل# تحديد القيمه المخزنه في خاصيه " القيمه " ل# عنصر تحكم. يقوم المثال التالي ب# تمرير سلسله تحتوي علي مرجع كامل الي عنصر تحكم ل# الداله Eval . يعرض القيمه الحاليه ل# عنصر التحكم ثم في مربع حوار.

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))

يمكنك استخدام الداله Eval ل# الوصول الي عوامل التعبير غير عاده المتوفره في Visual Basic for Applications (VBA) الوحده النمطيه. علي سبيل المثال، لا يمكنك استخدام عوامل تشغيل SQL بين... و او في مباشره في التعليمات البرمجيه الخاصه بك، و# لكن يمكنك استخدامها في تعبير تمريرها الي الداله Eval .

المثال التالي يحدد ما اذا كانت القيمه ل# عنصر تحكم ShipRegion علي نموذج طلبات احد اختصارات الولايه المحدد في عده. يحتوي الحقل علي احد الاختصارات، سيتم intStateTrue (1-). لاحظ انه يمكنك استخدام علامات اقتباس مفرده (') ل# تضمين سلسله ضمن سلسله اخري.

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

مثال

المثال التالي يفترض ان لديك سلسله من 50 الدالات المعرفه من قبل ك A1 و A2 وما الي ذلك. يستخدم هذا المثال الداله Eval ل# كل الداله call في السلسله.

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

المثال التالي تفعل حدثا انقر فوق كما لو كان المستخدم ب# النقر فوق زر علي نموذج. اذا كانت قيمه الخاصيه عند _ النقر علي الزر يبدا ب# علامه التساوي (=)، تشير الي انها اسم الداله، Eval الداله استدعاء الداله، و# مكافئا ل# تشغيل الحدث انقر فوق . اذا لم يبدا القيمه ب# علامه التساوي، يجب علي قيمه من تسميه ماكرو. يعمل الاسلوب RunMacro ل# الكائن DoCmd ماكرو مسمي.

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

ملاحظة: إقرار إخلاء المسؤولية للترجمة الآلية: تمت ترجمة هذه المقالة بواسطة نظام كمبيوتر دون تدخل العامل البشري. توفر Microsoft هذه الترجمات الآلية لمساعدة المستخدمين الذين لا يتحدثون الإنجليزية على استخدام منتجات Microsoft، وخدماتها، وتقنياتها والاستمتاع بها. قد تحتوي هذه المقالة على أخطاء في المفردات، أو بناء الجملة، أو القواعد نظرًا لترجمتها آليًا.

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×