• Tạo report từ kết quả của nhiều querry
  • Tạo report từ kết quả của nhiều querry

    killitmore > 30-10-17, 11:47 AM

    Hiện tại mình đang muốn tổng hợp kết quả từ 1 số querry vào chung trong 1 báo cáo của Access.
    Số lượng querry dựa trên số record của 1 bảng (bảng này có thể thay đổi số record).

    Mình đã đọc và tham khảo 1 số bài viết thì phương án tối ưu như sau (mình chưa biết phải Implement vào code như thế nào):
    1. Tạo 1 báo cáo main để tổng hợp tất cả kết quả (có thể tạo trong giao diện hoặc bằng VBA code)
    2. Với mỗi querry thì dùng VBA code để tạo 1 subreport (mình chưa biết VBA syntax để tạo subreport cho 1 báo cáo đã tồn tại) vào báo cáo Main ở bước 1
    3. Chỉnh sửa record source của subreport thành querry tương ứng
    4. Căn chỉnh lề, kích thước của báo cáo (tham khảo tại http://thuthuataccess.com/forum/thread-9558.html)

    Mong các cao thủ trên diễn đang dành chút thời gian góp ý cho phương án mình làm.
    Hoặc có thể chỉ giúp mình xem có bài nào tương tự như vấn đề của mình trên diễn đàn ko?
  • RE: Tạo report từ kết quả của nhiều querry

    ongke0711 > 30-10-17, 12:03 PM

    (30-10-17, 11:47 AM)killitmore Đã viết: Hiện tại mình đang muốn tổng hợp kết quả từ 1 số querry vào chung trong 1 báo cáo của Access.
    Số lượng querry dựa trên số record của 1 bảng (bảng này có thể thay đổi số record).

    Vụ này lạ, bảng mà có nhiều records thì có một đống query theo luôn à!
    Bạn nên có CSDL mẫu chứ nói chung chung kiểu này ai hiểu mà góp ý cho được. Query cái gì mà cần phải nhiều query, report về cái gì ...
  • RE: Tạo report từ kết quả của nhiều querry

    killitmore > 30-10-17, 03:00 PM

    (30-10-17, 12:03 PM)ongke0711 Đã viết:
    (30-10-17, 11:47 AM)killitmore Đã viết: Hiện tại mình đang muốn tổng hợp kết quả từ 1 số querry vào chung trong 1 báo cáo của Access.
    Số lượng querry dựa trên số record của 1 bảng (bảng này có thể thay đổi số record).

    Vụ này lạ, bảng mà có nhiều records thì có một đống query theo luôn à!
    Bạn nên có CSDL mẫu chứ nói chung chung kiểu này ai hiểu mà góp ý cho được. Query cái gì mà cần phải nhiều query, report về cái gì ...

    Em cảm ơn bác đã dành thời gian xem và nhắc nhở.
    File access: https://vpb-my.sharepoint.com/personal/g...PjwoOkTxRI
    Hiện tại em muốn tạo 1 subform trong  report  bằng code VBA và subform này hiển thị kết quả của 1 query. 
    Cụ thể là trong module  SingleInstrumentTest
    Mã:
    Sub test_sub_report()
        Dim rpt_test As Report
        Dim subform_check_change_report As Control
        
        DoCmd.OpenReport "reportCheckNoChange", acViewDesign
        Set subform_check_change_report = CreateReportControl("reportCheckNoChange", acSubform, acDetail, , , 100, 100)
        subform_check_change_report.Form.RecordSource = "SELECT * FROM MKT_INT_RATE"
    End Sub

    báo lỗi tại dòng
    Mã:
    subform_check_change_report.Form.RecordSource = "SELECT * FROM MKT_INT_RATE"

    Mong được bác chỉ giáo
  • RE: Tạo report từ kết quả của nhiều querry

    ongke0711 > 30-10-17, 08:57 PM

    Không hiểu ý đồ của bạn như thế nào mà bạn lại muốn tạo Subreport bằng code như vậy? Bạn có thể chia sẻ trong trường hợp của bạn nó có thuận lợi gì hơn là tạo sẳn không?

    Nói về lỗi code trước. 
    - Bạn tạo 1 cái “Subreport control” (CreateReportControl) sau đó gắn RecordSource cho nó => cái này sai vì Subreport làm gì có RecordSource mà chỉ có “Source Object”. Phải code là:
    subform_check_change_report.SourceObject = “Tên Report đã tạo sẳn”Khi đó bạn muốn set RecordSource thì sẽ gán cho “Tên Report đã tạo sẳn”.
    - Về lệnh tạo Subreport, mỗi khi bạn chạy cái “test_sub_report” thì nó lại tạo thêm 1 cái subreport mới nằm đè lên cái đã tạo trước đó và cứ tiếp diễn như vậy -> sai mục đích thiết kế.
    Nói về Report, nó là nhưng báo cáo được thiết kế, bố cục trước theo ý đồ. Bây giờ bạn lại muốn dùng code để thiết kế từng label, từng textbox nằm ở đâu, font, size, bold hay regular v.v..Lãng phí một rừng code cho việc thiết kế thay vì chỉ cần dùng công cụ thiết kế có sẳn làm 1 lần nhanh hơn gấp nhiều lần.
    Tôi nghĩ đối với Main Report của bạn,chỉ nên thay đổi Source Object cho đối tượng Subreport. Source Object là các Report (report dùng làm subreport) được thiết kế sẳn trước theo ý đồ. 
     
  • RE: Tạo report từ kết quả của nhiều querry

    killitmore > 31-10-17, 12:06 AM

    (30-10-17, 08:57 PM)ongke0711 Đã viết: Không hiểu ý đồ của bạn như thế nào mà bạn lại muốn tạo Subreport bằng code như vậy? Bạn có thể chia sẻ trong trường hợp của bạn nó có thuận lợi gì hơn là tạo sẳn không?

    Nói về lỗi code trước. 
    - Bạn tạo 1 cái “Subreport control” (CreateReportControl) sau đó gắn RecordSource cho nó => cái này sai vì Subreport làm gì có RecordSource mà chỉ có “Source Object”. Phải code là:
    subform_check_change_report.SourceObject = “Tên Report đã tạo sẳn”Khi đó bạn muốn set RecordSource thì sẽ gán cho “Tên Report đã tạo sẳn”.
    - Về lệnh tạo Subreport, mỗi khi bạn chạy cái “test_sub_report” thì nó lại tạo thêm 1 cái subreport mới nằm đè lên cái đã tạo trước đó và cứ tiếp diễn như vậy -> sai mục đích thiết kế.
    Nói về Report, nó là nhưng báo cáo được thiết kế, bố cục trước theo ý đồ. Bây giờ bạn lại muốn dùng code để thiết kế từng label, từng textbox nằm ở đâu, font, size, bold hay regular v.v..Lãng phí một rừng code cho việc thiết kế thay vì chỉ cần dùng công cụ thiết kế có sẳn làm 1 lần nhanh hơn gấp nhiều lần.
    Tôi nghĩ đối với Main Report của bạn,chỉ nên thay đổi Source Object cho đối tượng Subreport. Source Object là các Report (report dùng làm subreport) được thiết kế sẳn trước theo ý đồ. 
     

    Em cảm ơn bác đã góp ý cho em, sau khi đọc phân tích của bác em thấy phương án của em đúng là có vấn đề nên chắc sẽ bỏ đi làm lại theo cách khác.
    Cảm ơn bác ongke0711 đã nhiệt tình giúp đỡ  013