Possible Duplicate:
Combine rows in Access 2007
Access 2007 - Concatenate fields from one column in one table into a single, comma delmited value in another tableKết nối nhiều hàng thành dòng trong MS Access
Hiện nay tôi có một cấu trúc bảng là hơi như thế này:
Tên --- Cát --- quyết - - đập lúa --- Perc --- Err --- BP
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- ADC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 2 ----- BAC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- RBE2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 8 ----- VBE2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 6 ----- AEC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- PBC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 1 ----- XBC4
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- AEC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- PBC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 3 ----- ADC2
Bob - ----- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- ADC2
Bob ---- --- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- BAC2
Joe ------ --C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- PBC2
Joe ---- ---- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- ZTM2
Joe-- ------ C1 ------- Inf --------- 7Per -------- 0.05 ------ 2 ----- QYC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- FLC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 1 ----- KSC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 --- --JYC2
Điều tôi muốn làm là có 1 dòng cho mỗi "Tên" và mỗi "Mèo", sẽ tổng hợp tất cả "Err" (theo "Tên" và "Mèo") và chỉ nối các trường "BP" vào một dòng. Chẳng hạn như:
Tên --- Cát --- quyết --- đập lúa --- Perc --- Err --- BP
Bob - ------ C1 ------- Inf -------- 7Per -------- 0.05 ----- 16 ----- BAC2, VBE2, AEC2
Bob ------- C2 ------ Com ------ 8Per -------- 0.45 ------ 4 ------ XBC4, ADC2
Joe -------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 3 ------ QYC2, KSC2
Đã có những câu hỏi tương tự được hỏi nhưng tôi dường như không thể áp dụng nó vì kiến thức về VBA của tôi là người mới bắt đầu. Có cách nào để làm tất cả điều này thông qua SQL? Nếu VBA scripting là lựa chọn duy nhất (tức là tạo một hàm), bất kỳ sự trợ giúp nào cũng sẽ được đánh giá cao. Cảm ơn bạn trước.
Câu hỏi phần 2:
Tôi đã tạo chức năng theo hướng dẫn của Allen Browne. Mô đun được lưu dưới dạng modConcatRelated. Bây giờ, tôi đã cố gắng để chạy truy vấn này (im không chắc chắn nếu điều này là SQL đúng để có được kết quả mà tôi đang tìm):.
SELECT
[Name],
[Cat],
[Desc],
[Thresh],
[Perc],
sum([Err]),
ConcatRelated("[BP]", "make_table_bp", "[Err] = " & [BP])
FROM make_table_bp
GROUP BY
[Name],
[Cat],
[Desc],
[Thresh],
[Perc],
[Err],
[BP];
Nó nói: "Lỗi 3061. Quá ít thông số dự kiến 1. " Ngoài ra nó nói "Undefined Function ConcatRelated". Tôi đang tìm hướng dẫn về cách tạo câu lệnh SQL đúng để tôi có thể gọi hàm ConcatRelated một cách chính xác và mang lại kết quả như được mô tả ở trên. Cảm ơn một lần nữa.
Câu hỏi tiếp theo:
gì nếu bảng đã có một trường ngày độc đáo được gắn thẻ trên như cột cuối cùng trong bảng. Một cái gì đó như thế này:
Tên --- Cát --- quyết --- đập lúa --- Perc --- Err --- BP --- Ngày
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0- ---- ADC2--12/02/2011
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05- ---- -2 ----- BAC2--09/05/2011
Bob ------- C1 ------- Inf -------- 7Per ------- -0.05 ------ 0 ----- RBE2--11/02/2011
Bob ------- C1 ------- Inf -------- 7Per -------- 0,05 ------ 8 ----- VBE2--08/14/2012
Bob ------- C1 ------- Inf-- ------ 7Per -------- 0.05 ------ 6 ----- AEC2--02/25/2009
Bob ------- C1 --- ---- Inf -------- 7Per -------- 0.05 ------ 0 ----- PBC2--07/02/2011
Bob ---- --- C2 ------- Com ------ 8Per -------- 0.45 ------ 1 ----- XBC4--09/05/2011
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- AEC2--02/02/2010
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- PBC2--08/14/2012
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 3 ----- ADC2-- 05/05/2001
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 --- --ADC2--08/02/2010
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ----- -0 ----- BAC2--06/17/2010
Joe -------- C1 ------- Inf --------- 7Per ----- --- 0,05 ------ 0 ----- PBC2--08/14/2012
Joe -------- C1 ------- Inf ------ --- 7Per -------- 0.05 ------ 0 ----- ZTM2--09/05/2011
Joe -------- C1 ----- --Inf --------- 7Per -------- 0.05 ------ 2 ----- QYC2--05/17/2010
Joe ----- --- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- FLC2--3/19/2010
Joe --- ----- C1 ------- Inf --------- 7Per -------- 0.05 ------ 1 ----- KSC2--09/05/2011
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- JYC2--08/14/2012
Hãy nói rằng tôi muốn xây dựng một truy vấn để nói điều gì đó như: chỉ cho tôi tất cả hồ sơ vẫn trong định dạng này giống nhau:
Tên --- Cát --- quyết --- đập lúa --- Perc --- Err --- BP
Bob ------ -C1 ------- Inf -------- 7Per -------- 0.05 ----- 16 ----- BAC2, VBE2, AEC2
Bob ------- C2 ------ Com ------ 8Per -------- 0.45 ------ 4 ------ XBC4, ADC2
Joe -------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 3 ----- -QYC2, KSC2
Nhưng cho một phạm vi ngày 01/01/2009 đến 09/31/2011
@HansUp bạn có thể giúp với điều này?
Bạn cần một chức năng người dùng định nghĩa VBA cho việc này. Allen Browne đã cung cấp một, cùng với một ví dụ chi tiết về cách sử dụng nó. http://allenbrowne.com/func-concat.html – HansUp
ive đã làm theo các bước biên dịch hàm nhưng bạn có thể giúp tôi tạo câu lệnh "chọn" dựa trên những gì tôi đang tìm kiếm ở trên không? – JT2013
@HansUp tôi đã sử dụng liên kết mà bạn đã đề cập đến – JT2013