2012-03-29 38 views

Trả lời

32

Bạn có thể làm điều đó theo cách sau:

DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit 

HOẶC

CurrentDb.OpenRecordset("yourQueryName") 
+1

Tôi không muốn chỉnh sửa. Điều này sẽ thực hiện cập nhật của tôi và chèn truy vấn? – tdjfdjdj

+0

Có, nó sẽ chạy các truy vấn Cập nhật và Chèn. – Taryn

+0

Truy vấn chắp thêm của nó hoạt động theo cách thủ công, nhưng không phải trong mã vba của tôi. Tôi không thể sử dụng truy vấn đã lưu nối thêm? – tdjfdjdj

7

Bạn nên điều tra tại sao VBA không thể tìm thấy queryname.

Tôi có truy vấn đã lưu có tên qryAddLoginfoRow. Nó chèn một hàng với thời gian hiện tại vào bảng loginfo của tôi. Truy vấn đó chạy thành công khi được gọi theo tên bởi CurrentDb.Execute.

CurrentDb.Execute "qryAddLoginfoRow" 

đoán của tôi là một trong hai queryname là một biến giữ tên của một truy vấn mà không tồn tại trong bộ sưu tập QueryDefs cơ sở dữ liệu hiện tại, hoặc queryname là tên đen của một truy vấn hiện nhưng bạn không kèm theo nó trong dấu ngoặc kép.

Sửa: Bạn cần phải tìm một cách để chấp nhận rằng queryname không tồn tại trong bộ sưu tập QueryDefs db hiện tại. Thêm 2 dòng này vào mã VBA của bạn ngay trước dòng CurrentDb.Execute.

Debug.Print "queryname = '" & queryname & "'" 
Debug.Print CurrentDb.QueryDefs(queryname).Name 

Thứ hai của những người 2 dòng sẽ kích hoạt thời gian chạy lỗi 3265, "Mục không tìm thấy trong bộ sưu tập này." Sau đó đi đến cửa sổ trước mắt để xác minh tên của truy vấn mà bạn đang yêu cầu CurrentDb đến Execute.

+0

Truy vấn chắp thêm của nó hoạt động theo cách thủ công, nhưng không phải trong mã vba của tôi. Tôi không thể sử dụng truy vấn đã lưu nối thêm? – tdjfdjdj

+0

Truy vấn tôi mô tả ** là ** một truy vấn chắp thêm ... nó thêm (nối thêm) một hàng vào bảng loginfo của tôi. – HansUp

2

Để sử dụng CurrentDb.Execute, truy vấn của bạn phải là truy vấn hành động VÀ trong dấu ngoặc kép.

CurrentDb.Execute "queryname" 
Các vấn đề liên quan