ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

คุณสามารถใช้ฟังก์ชัน 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 เพื่อกําหนดค่าที่เก็บอยู่ในคุณสมบัติ Value ของตัวควบคุมได้ ตัวอย่างต่อไปนี้จะส่งสตริงที่มีการอ้างอิงแบบเต็มไปยังตัวควบคุมไปยังฟังก์ชัน 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 Between... และ หรือ ใน โค้ดของคุณโดยตรง แต่คุณสามารถใช้ในนิพจน์ที่ส่งผ่านไปยังฟังก์ชัน Eval ได้

ตัวอย่างถัดไปจะกําหนดว่าค่าของตัวควบคุม ShipRegion บนฟอร์ม Orders เป็นหนึ่งในตัวย่อสถานะที่ระบุหลายตัวหรือไม่ ถ้าฟิลด์มีตัวย่อตัวใดตัวหนึ่ง intState จะเป็น จริง (–1) โปรดสังเกตว่าคุณใช้เครื่องหมายอัญใบเดียว (') เพื่อรวมสตริงไว้ในสตริงอื่น

Dim intState As Integer
intState = 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())");

ประเมินค่าสตริง ระบุฟังก์ชันและดําเนินการ ผลลัพธ์: วันที่ของระบบปัจจุบัน + เดือนปัจจุบัน ซึ่งแสดงในคอลัมน์ "วันที่ใหม่"

ตัวอย่าง VBA

ตัวอย่างต่อไปนี้ถือว่าคุณมีชุดฟังก์ชัน 50 ฟังก์ชันที่กําหนดเป็น A1, A2 และอื่นๆ ตัวอย่างนี้ใช้ฟังก์ชัน Eval เพื่อเรียกใช้แต่ละฟังก์ชันในชุดข้อมูล

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

ตัวอย่างถัดไปจะทริกเกอร์เหตุการณ์ Click ราวกับว่าผู้ใช้คลิกปุ่มบนฟอร์ม ถ้าค่าของคุณสมบัติ OnClick ของปุ่มเริ่มต้นด้วยเครื่องหมายเท่ากับ (=) แสดงว่าเป็นชื่อของฟังก์ชัน ฟังก์ชัน Eval จะเรียกฟังก์ชันซึ่งจะเท่ากับการทริกเกอร์เหตุการณ์ Click ถ้าค่าไม่ได้เริ่มต้นด้วยเครื่องหมายเท่ากับ ค่านั้นจะต้องตั้งชื่อแมโคร เมธอด 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 ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×