Hàm eval

Bạn có thể sử dụng hàm eval để đánh giá biểu thức kết quả trong chuỗi văn bản hoặc giá trị số.

Bạn có thể xây dựng một chuỗi và sau đó chuyển nó thành hàm eval như thể hiện chuỗi là một biểu thức thực tế. Hàm eval đánh giá biểu thức chuỗi và trả về giá trị của nó. Ví dụ, Eval("1 + 1") trả về 2.

Nếu bạn chuyển sang hàm eval một chuỗi có chứa tên của hàm, hàm eval trả về giá trị trả về của hàm. Ví dụ, Eval("Chr$(65)") trả về "A".

Cú pháp

Eval ( stringexpr )

Tham đối stringexpr là một biểu thức đánh giá vào một chuỗi văn bản chữ số. Ví dụ, stringexpr có thể là một hàm trả về một chuỗi hoặc một giá trị số. Hoặc nó có thể là một tham chiếu đến một điều khiển trên biểu mẫu. Đối số stringexpr phải đánh giá một chuỗi hoặc giá trị số; nó không thể đánh giá được Đối tượng Microsoft Access.

Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Lưu ý: Nếu bạn đang đi qua tên của một hàm vào hàm eval , bạn phải bao gồm dấu ngoặc đơn sau tên của hàm trong đối số stringexpr . Ví dụ:

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

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

Debug.Print Eval("Date()")

Chú thích

Bạn có thể sử dụng hàm eval trong một điều khiển được tính toán trên một biểu mẫu hoặc báo cáo hoặc trong một macro hoặc mô-đun. Hàm eval trả về một biến thể là một chuỗi hoặc kiểu số.

Stringexpr đối số phải là một biểu thức được lưu trữ trong một chuỗi. Nếu bạn chuyển sang hàm eval một chuỗi không chứa một biểu thức số hoặc tên hàm nhưng chỉ một chuỗi văn bản đơn giản, một lỗi thời gian chạy xảy ra. Ví dụ, Eval("Smith") kết quả trong một lỗi.

Bạn có thể sử dụng hàm eval để xác định giá trị được lưu trữ trong thuộc tính giá trị của điều khiển. Ví dụ sau đây sẽ chuyển một chuỗi chứa đầy đủ tham chiếu đến một điều khiển cho hàm eval . Sau đó hiển thị giá trị hiện tại của điều khiển trong hộp thoại.

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

Bạn có thể sử dụng hàm eval để truy nhập các toán tử biểu thức không thường sẵn dùng trong mô-đun Visual Basic for APPLICATIONS (VBA). Ví dụ, bạn không thể sử dụng toán tử SQL giữa... Và hoặc trực tiếp trong mã của bạn, nhưng bạn có thể sử dụng chúng trong một biểu thức được chuyển sang hàm eval .

Ví dụ tiếp theo sẽ xác định giá trị của điều khiển ShipRegion trên một biểu mẫu đơn _ hàng là một trong số các chữ viết tắt của tiểu bang đã xác định. Nếu trường chứa một trong các chữ viết tắt, intState sẽ là True (– 1). Lưu ý rằng bạn sử dụng dấu nháy đơn (') để bao gồm một chuỗi trong một chuỗi khác.

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

Ví dụ về truy vấn

Biểu thức

Kết quả

CHỌN eval ("15 + 3") là Expr1 từ nhóm ProductSales theo eval ("15 + 3");

Đánh giá giá trị chuỗi và tính toán kết quả. Kết quả: 18.

CHỌN eval ("Date () + month (Date ()) là NewDate từ nhóm ProductSales theo eval (" Date () + month (Date ());

Đánh giá giá trị chuỗi, xác định các hàm và thực hiện chúng. Kết quả: ngày hiện tại của hệ thống + tháng hiện tại, được hiển thị trong cột "NewDate".

Ví dụ về VBA

Ví dụ sau đây giả định rằng bạn có một chuỗi các hàm 50 được định nghĩa là A1, A2, v.v. Ví dụ này sử dụng hàm eval để gọi từng hàm trong chuỗi.

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

Ví dụ tiếp theo gây ra sự kiện Bấm vào như thể người dùng đã bấm vào một nút trên biểu mẫu. Nếu giá trị của thuộc tính OnClick của nút bắt đầu bằng dấu bằng (=), hãy biểu thị rằng nó là tên của hàm, hàm eval gọi hàm, tương đương với việc kích hoạt sự kiện Bấm vào . Nếu giá trị không bắt đầu bằng dấu bằng, thì giá trị phải đặt tên cho macro. Phương pháp Runmacro của đối tượng DoCmd chạy macro có tên.

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

Lưu ý:  Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Cho chúng tôi biết thông tin này có hữu ích hay không? Dưới đây là bài viết bằng tiếng Anh để bạn tham khảo..​

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×