Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Bạn có thể sử dụng hàm Eval để đánh giá kết quả biểu thức 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ó đến hàm Eval như thể chuỗi đó là một biểu thức thực tế. Hàm Eval định trị giá trị biểu thức chuỗi trả về giá trị của nó. Ví dụ: hàm Eval("1 + 1") trả về 2.

Nếu bạn truyền đến hàm Eval một chuỗi có chứa tên 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 )

Đối số stringexpr là một biểu thức định trị chuỗi văn bản chữ và 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á thành giá trị Đố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 truyền tên hàm tới hàm Eval , bạn phải đưa dấu ngoặc đơn vào sau tên 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 biểu mẫu hoặc báo cáo hay trong macro hay mô-đun. Hàm Eval trả về một Biến_thể là một chuỗi hoặc kiểu số.

Chuỗi đối sốc phải là một biểu thức được lưu trữ trong một chuỗi. Nếu bạn truyền đến hàm Eval một chuỗi không chứa biểu thức số hoặc tên hàm mà chỉ có một chuỗi văn bản đơn giản, một chuỗi lỗi thời gian chạy sẽ xảy ra. Ví dụ: Eval("Smith") dẫn đến 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 Value của điều khiển. Ví dụ sau đây truyền một chuỗi chứa tham chiếu đầy đủ tới một điều khiển tới hàm Eval . Sau đó, nó sẽ 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 thường khô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 Between... Và hoặc In 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 đến hàm Eval .

Ví dụ tiếp theo xác định xem giá trị của điều khiển Khu vực Vận chuyển trên biểu mẫu Đơn hàng có phải là một trong một vài chữ viết tắt trạng thái đã xác định hay không. Nếu trường có chứa một trong các từ viết tắt, intState sẽ là True (–1). Lưu ý rằng bạn sử dụng dấu nháy đơn (') để đưa một chuỗi vào 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ả

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

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

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Đánh giá giá trị chuỗi, xác định các hàm và thực thi 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 "Ngày_Mới".

Ví dụ về VBA

Ví dụ sau đây giả định rằng bạn có một chuỗi 50 hàm được xác định là A1, A2, v.v. Ví dụ này sử dụng hàm Eval để gọi mỗi 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 kích hoạt sự kiện Click như thể người dùng đã bấm vào một nút trên biểu mẫu. Nếu giá trị thuộc tính OnClick của nút bắt đầu bằng dấu bằng (=), nghĩa là nó là tên của một hàm, hàm Eval sẽ gọi hàm, hàm này tương đương với việc kích hoạt sự kiện Click . 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 sẽ 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

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

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

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

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

×