Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Lỗi] Lỗi khi chạy crosstab query
#11
Tôi xin lỗi vì chủ quan... nên không nghiên cứu kỹ, nay kiểm tra lại thì thấy mình trả lời sai. Giờ xin viết để tạ lỗi
Một vài ý riêng liên quan đến chủ đề CrosstabQuery và cách truyền tham số để tránh lỗi tham chiếu đến điều khiển trên form.
Một điều đáng tiếc là CrosstabQuery không cho phép chúng ta sử dụng tham chiếu trực tiếp đến điều khiển trên form. Ví dụ điển hình là trong bài tập của bạn Hoand.
Để vượt qua điều này, ta dùng thủ thuật truyền tham số từ form qua tham số của Query. Có lẽ không nhiều bạn sử dụng tiếp cận này, vì thế tôi xin giới thiệu cách sử dụng tham số trong câu lệnh truy vấn của Access.
Thông thường các câu truy vấn có điều kiện được đặt trực tiếp trong dòng lệnh sau các từ khóa như WHERE hoặc HAVING. Tuy nhiên, đôi khi ta muốn câu query có tính chất tương tác một chút. Người dùng sẽ phải nhập vào một giá trị, từ giá trị đó, query sẽ hiển thị kết quả mong đợi.
Trong trường hợp này ta gọi là định nghĩa tham số điều kiện cho Query. Để định nghĩa tham số, chọn nhấn phải chuột trên màn hình soạn thảo query, chọn Parameters. Màn hình soạn thảo Query sẽ hiện ra để bạn khai báo. Cột đầu tiên là tên Tham số và cột thứ 2 là kiểu số liệu.
Trong ví dụ của bạn Hoand thì ta đưa vào 2 tham số tham chiếu đến giá trị của form chọn thời gian F_Chonngay. Sau đó ta đưa điều kiện vào Câu lệnh truy vấn Crosstab với điều kiện chính là 2 tham số đã định nghĩa. Như vậy Query sẽ chạy mà không báo lỗi.

Query Crosstab trong Access có vấn đề đôi chút với truyền tham số tham chiếu trực tiếp từ form. Vì vậy, cho an toàn, nên định nghĩa tham số như thế này và tham chiếu dư lày sẽ ổn!
Mã PHP:
PARAMETERS [Forms]![F_ChonNgay]![TNDateTime, [Forms]![F_ChonNgay]![DNDateTime;
TRANSFORM Sum(b.SoLuong) AS SumOfSoLuong
SELECT b
.MaHangc.Tenhanghoa
FROM tblXuatHang 
AS a INNER JOIN (tblHangHoa AS c INNER JOIN tblXuatHangChiTiet AS b ON c.Mahang b.MaHangON a.MaSoXuat b.MaSoXuat
WHERE 
(((a.NgaylapBetween [Forms]![F_ChonNgay]![TN] And [Forms]![F_ChonNgay]![DN]))
GROUP BY b.MaHangc.Tenhanghoa
PIVOT a
.noinhan
Xin cáo lỗi các bạn vì ẩu quá
Đặng Đình Ngọc
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Noname , hoahd
#12
oh ho! Lý do chỉ vậy mà Mình cũng cứ loay hoay với cái Crosstab Query mất mấy buổi tối mà vẫn không hiểu tại sao. giờ thì ok rồi.Cảm ơn bạn Ngọc nhiều nhé!
Chữ ký của hoahd Xin chào, mình là hoahd, Tham gia http://thuthuataccess.com/forum từ ngày 08-06 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Hướng Dẫn Query cấp phát quần áo cho công nhân tieuho828 10 334 15-02-17, 10:36 AM
Bài mới nhất: tieuho828
  Hướng Dẫn hướng dẫn làm query theo cbobox tieuho828 3 118 03-01-17, 03:54 PM
Bài mới nhất: cpucloi
  [Hỏi] Câu lệnh để tìm max tại criteria trong query khongcodit 8 343 23-12-16, 12:05 AM
Bài mới nhất: ongke0711
  [Hỏi] Hỏi Query tính giá trị trung bình luonguct 2 100 17-12-16, 07:21 PM
Bài mới nhất: ongke0711
  Thiết lập Query sổ chi tiết slow2812 11 228 13-12-16, 07:44 PM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ