2012-02-21 55 views
8

Tôi hiện đang muốn nhận giá trị từ biểu mẫu để đặt giá trị trong truy vấn SQL mà tôi tạo trong mô-đun trong Access bằng VBA. Tôi đã cố gắng sử dụngNhận giá trị văn bản từ biểu mẫu trong Access bằng mô-đun VBA

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....." 

Nó tạo ra lỗi (2450) nói rằng nó không thể tìm thấy biểu mẫu được chỉ định. Làm cách nào tôi có thể nhận được giá trị của hộp văn bản này để tôi có thể sử dụng nó trong mô-đun của mình?

Thx

+0

Biểu mẫu có mở khi bạn thử không? – Fionnuala

Trả lời

6

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.

Các vấn đề liên quan