Sửa đổi mã VBA của bạn để đảm bảo biểu mẫu đang mở.
DoCmd.OpenForm "NameOfForm"
Điều đó sẽ ngăn lỗi # 2450.
Sau đó, bạn không cần lưu trữ giá trị của [NameOfTextbox] thành biến, sau đó sử dụng biến đó để tạo câu lệnh SQL của bạn. Bạn có thể sử dụng trực tiếp giá trị của nó.
sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';"
Hoặc nhúng tham chiếu tới hộp văn bản (thay vì giá trị của hộp văn bản) trong truy vấn.
sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];"
Tôi giả định some_field là trường kiểu dữ liệu văn bản, vì vậy hãy đính kèm giá trị hộp văn bản với dấu nháy đơn trong ví dụ truy vấn đầu tiên. Lưu ý ví dụ thứ hai không cần dấu ngoặc kép vì nó đề cập đến hộp văn bản theo tên chứ không phải giá trị của nó. Tuy nhiên, bạn nên tiếp tục với cách tiếp cận ban đầu của bạn (lưu trữ giá trị hộp văn bản thành một biến), không đặt tên biến "giá trị" của bạn bởi vì giá trị có thể bị nhầm lẫn với thuộc tính của nhiều đối tượng.
Biểu mẫu có mở khi bạn thử không? – Fionnuala