Lấy dữ liệu từ 2 file tính toán rồi gán lên listbox userform

Liên hệ QC

tranthemai

Thành viên mới
Tham gia
18/11/16
Bài viết
25
Được thích
4
Em chào các anh chị trên diễn đàn thân mến!
Em có một thắc mắc mà không nghĩ ra cách khắc phục, mong các anh chị chỉ dạy hướng đi:
Để tính toán đưa dữ liệu lên 1 listbox thì thường ta lấy dữ liệu trực tiếp của file đưa lên, để làm được điều đó thì ta phải load các dữ liệu từ các file data về các sheet (nhược điểm phải tạo khá nhiều sheet trong file thực thi rối mắt, file tăng dung lượng).
Vậy có cách nào bỏ qua bước load data về các sheet mà ta có thể tính toán rồi up trực tiếp lên listbox được không ạ
Mong anh chị chỉ bảo giúp em ạ!
em cám ơn
 
Bạn thử đưa code sau vào nơi nào đó bạn muốn nhé.

Mã:
Dim strSQL As String
    strSQL = ""
    strSQL = strSQL & "Select PDD, " & vbCrLf
    strSQL = strSQL & "       PO, " & vbCrLf
    strSQL = strSQL & "       SO, " & vbCrLf
    strSQL = strSQL & "       Styles, " & vbCrLf
    strSQL = strSQL & "       ten_styles, " & vbCrLf
    strSQL = strSQL & "       Color, " & vbCrLf
    strSQL = strSQL & "       size_, " & vbCrLf
    strSQL = strSQL & "       units, " & vbCrLf
    strSQL = strSQL & "       0       as [order], " & vbCrLf
    strSQL = strSQL & "       PLANQTY, " & vbCrLf
    strSQL = strSQL & "       -PLANQTY as outplan, " & vbCrLf
    strSQL = strSQL & "       buyer " & vbCrLf
    strSQL = strSQL & "From   [EXCEL 12.0;IMEX=1;Database=" & ThisWorkbook.Path & "\KHSX.xlsm].[AddKH$] " & vbCrLf
    strSQL = strSQL & "Union All " & vbCrLf
    strSQL = strSQL & "Select PDD, " & vbCrLf
    strSQL = strSQL & "       PO, " & vbCrLf
    strSQL = strSQL & "       SO, " & vbCrLf
    strSQL = strSQL & "       Styles, " & vbCrLf
    strSQL = strSQL & "       ten_styles, " & vbCrLf
    strSQL = strSQL & "       Color, " & vbCrLf
    strSQL = strSQL & "       size_, " & vbCrLf
    strSQL = strSQL & "       units, " & vbCrLf
    strSQL = strSQL & "       ORDERQTY  as [order], " & vbCrLf
    strSQL = strSQL & "       0         as PLANQTY, " & vbCrLf
    strSQL = strSQL & "       ORDERQTY as outplan, " & vbCrLf
    strSQL = strSQL & "       buyer " & vbCrLf
    strSQL = strSQL & "From " & vbCrLf
    strSQL = strSQL & "[EXCEL 12.0;IMEX=1;Database=" & ThisWorkbook.Path & "\Styles.xlsm].[AddStyles$]"
    With CreateObject("ADODB.Recordset")
         .Open ("Select PDD,PO,Styles,ten_styles,Color,size_,units,Sum([order]),Sum(PLANQTY),Sum(outplan),buyer From (" & strSQL & ") Group By PDD,PO,Styles,ten_styles,Color,size_,units,buyer Having Sum(outplan)>0"), "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0"""
        ListBoxKHST.ColumnCount = .Fields.Count
        ListBoxKHST.Column = .getrows
    End With
Thank bác @Hai Lúa Miền Tây , code bác chạy được tốt ạ. câu SQL rất dễ hiểu
Em cải biên thêm ít dữ liệu nữa thấy load cũng nhanh. nhưng do dữ liệu còn ít nên em sợ sau dữ liệu nhiều sẽ bị chậm.
Bác có thể giúp em xử lý bằng cách lấy 2 mảng để tính toán như ý tưởng của bác @batman1 được không ạ? em thấy mảng load nhanh nhưng không biết cách làm để ra kết quả giống như dùng SQL trên thế nào cả.
Cám ơn bác rất nhiều!
 

File đính kèm

  • lay du lieu.rar
    75.4 KB · Đọc: 9
  • Time.jpg
    Time.jpg
    7.9 KB · Đọc: 6
Upvote 0
Thank bác @Hai Lúa Miền Tây , code bác chạy được tốt ạ. câu SQL rất dễ hiểu
Em cải biên thêm ít dữ liệu nữa thấy load cũng nhanh. nhưng do dữ liệu còn ít nên em sợ sau dữ liệu nhiều sẽ bị chậm.
Bác có thể giúp em xử lý bằng cách lấy 2 mảng để tính toán như ý tưởng của bác @batman1 được không ạ? em thấy mảng load nhanh nhưng không biết cách làm để ra kết quả giống như dùng SQL trên thế nào cả.
Cám ơn bác rất nhiều!
Tùy biến sử dụng thôi bạn. Nếu bạn muốn theo cách dùng mảng ở trên thì ráng cố gắng chỉnh sửa theo ý nhé.
 
Upvote 0
em cần các anh chị hộ em code tính đơn hàng chưa tạo kế hoạch bằng mảng
em đã viết code nhưng gặp một số vấn đề không biết cách giải quyết:
1, Tổng số kế hoạch đã tạo theo từng mã PDD đang bị nối vào nhau:
VD 100 + 90 = 10090
2, chưa biết tính lượng hàng chưa tạo kế hoạch và loại bỏ những đơn đã tạo hết kế hoạch
VD đơn hàng cần 190 sp thì đã lên kế hoạch đủ 190 thì kết quả trả về không hiện trong list
Rất mong anh chị chỉ bảo cách khắc phục các vấn đề trên của em ạ
 

File đính kèm

  • laydulieu.rar
    114.9 KB · Đọc: 7
Upvote 0
Web KT
Back
Top Bottom