Đối với crosstab query, nó tạo ra tên cột dạng động tức là khi khởi chạy mới tạo ra tên cột (column heading). Do vậy khi bạn gán điều kiện: 1 cột nào đó tham chiếu đến 1 textbox trong form thì Access có biết tên cột nào đâu mà tham chiếu (cho đến khi nó chạy xong mới có tên cột). ==> sẽ báo lỗi "....does not recognize field....".
Để khắc phục bạn phải khai báo điều kiện tham chiếu rõ ràng bằng cách khai báo thêm ở khung "Parameter".
Vào chế độ Design View, ở góc trên cùng bên phải thanh menu sẽ có nút "Parameters" -> sẽ xuất hiện hộp thoại "Query Parameters" -> nhập điều kiện vào khung này và chọn Data type cho dữ liệu tham chiếu -> OK.
==> khi bạn nhập điều kiện vào form, click chạy Query sẽ ko còn báo lỗi.
Riêng về cái Report, bạn dùng crosstab query là Record Source thì phức tạp hơn vì có biết nó sẽ xuất hiện bao nhiêu cột mà design số textbox tương ứng. Hơn nữa bạn biết tên cột là gì mà gán cho Control Source của textbox.
Muốn có tên cột cố định bạn phải làm thêm một số thủ thuật. Vd: cố định 12 cột tháng, bạn phải gán cột tháng [THANG] IN (Jan, Feb....,Dec) cho Column heading... Bạn tự tìm hiểu thêm nhé.
PS: cái report của bạn tôi chẳng biết muốn hiển thị cái gì? lấy cột số tiền làm Column heading thì nó ra cái gì?