Hỏi về cách truy xuất dữ liệu từ CSDL

Liên hệ QC
Update File hoàn chỉnh, chưa căn chỉnh được tiêu đề hạng mục công việc và tiêu đề VẬT LIỆU , NHÂN CÔNG, MÁY THI CÔNG
 

File đính kèm

  • CSDL hoi 4.10.2017 pa4 .xls
    102 KB · Đọc: 4

File đính kèm

  • CSDL hoi 4.10.2017 .xls
    106.5 KB · Đọc: 10
Bạn xem bài này của mình thế nào với. Mình truy xuất dữ liệu được rồi, nhưng còn vướng mắc 1 số vấn đề:
1/ chưa đánh được số thứ tự ở sheet xuat DL
2/ Sheet KHỐI LƯỢNG mình muốn tạo Form để nhập dữ liệu gồm mã hiệu, tên công việc, Đơn vị tính. Mình đã tạo được form nhưng đến phần truy xuất dữ liệu thì CODE báo lỗi over flow
CODE trong Form của mình nè:
Mã:
Private Sub cmdNhapLieu_Click()
Dim ApMH As Range
Dim x As Integer

    Set ApMH = Sheet1.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)   ' Chon o bat dau dien du lieu
   
    For x = 0 To Me.LBox_DATAtenCV.ListCount - 1                    ' LBox_DATAtenCV la ten cua list box ma chung ta chon trong form
                                                                    ' Cho x chay tu dong so 0 den dong so cuoi cung cua ListBox -1 (tuc la cho i chay tu dong dau den dong cuoi List Box)
                                                                   
        If Me.LBox_DATAtenCV.Selected(x) Then                       ' Neu lua chon dong thu x+1 thi
       
            ApMH = Me.LBox_DATAtenCV.List(x)                        ' Gan ApMh la vung du lieu cua dong thu x+1
            ApMH.Offset(0, 0) = Me.LBox_DATAtenCV.List(x, 1)        ' Gan ApMh dong 1 cot 1 là vung du lieu LIST BOX dong x+1 cot 1
            ApMH.Offset(0, 1) = Me.LBox_DATAtenCV.List(x, 2)        ' Gan ApMh dong 1 cot 2 là vung du lieu LIST BOX dong x+1 cot 2
            ApMH.Offset(0, 2) = Me.LBox_DATAtenCV.List(x, 3)        ' Gan ApMh dong 1 cot 3 là vung du lieu LIST BOX dong x+1 cot 3

            Set ApMH = ApMH.Offset(1, 0)                            ' Cho ApMh di chuyen xuong 1 dong
        End If
    Next x
    For x = 0 To Me.LBox_DATAtenCV.ListCount - 1
        If Me.LBox_DATAtenCV.Selected(x) Then Me.LBox_DATAtenCV.Selected(x) = False
    Next x
    Unload formTraMH
End Sub
 

File đính kèm

  • CSDL hoi 4.10.2017 pa5 .xls
    109 KB · Đọc: 8
Lần chỉnh sửa cuối:
Em chưa biết cái này thầy ạ

Thời buổi công nghệ thay đổi hằng ngày. Nhu cầu truy vấn dữ liệu cũng tăng theo.
Khi thấy nhu cầu tăng trên khả năng cổ điển của Excel thì quý vị bù đắp bằng cách code VBA, hoặc dùng những công thức mảng hết sức phức tạp.
Thực ra, hầu hết những cái rắc rối này Microsoft đã có cải tiến qua các phiên bản mới. Phiên bản 2016 và trên nữa là 365 có những tiện nghi truy vấn và phân tích dữ liệu lớn, dữ liệu trên mạng, dư liệu các CSDL khác. Đó là PowerQuery và PowerPivot.
Nếu tôi là bạn thì tôi bớt chút thì giờ đùa với VBA, học cách sử dụng 2 cái trên có lợi cho khả năng Excel (*) hơn.

(*) Tôi cẩn thận dùng hoạt cảnh Excel để phan biệt rõ là theo quan điểm của tôi khả năng Excel khác với khả năng lập trình (VBA), hay khả năng tạo công thức phức tạp.
 
Thời buổi công nghệ thay đổi hằng ngày. Nhu cầu truy vấn dữ liệu cũng tăng theo.
Khi thấy nhu cầu tăng trên khả năng cổ điển của Excel thì quý vị bù đắp bằng cách code VBA, hoặc dùng những công thức mảng hết sức phức tạp.
Thực ra, hầu hết những cái rắc rối này Microsoft đã có cải tiến qua các phiên bản mới. Phiên bản 2016 và trên nữa là 365 có những tiện nghi truy vấn và phân tích dữ liệu lớn, dữ liệu trên mạng, dư liệu các CSDL khác. Đó là PowerQuery và PowerPivot.
Nếu tôi là bạn thì tôi bớt chút thì giờ đùa với VBA, học cách sử dụng 2 cái trên có lợi cho khả năng Excel (*) hơn.

(*) Tôi cẩn thận dùng hoạt cảnh Excel để phan biệt rõ là theo quan điểm của tôi khả năng Excel khác với khả năng lập trình (VBA), hay khả năng tạo công thức phức tạp.
Cám ơn Thầy đã chỉ bảo. Để em tìm tài liệu xem thử. Có gì mong Thầy giúp đỡ ạ ./
 
Hic không hiểu sao càng ngày bị cuồng VBA rồi, nghĩ mãi không ra hướng giải quyết, mà cứ mò vào diễn đàn đăng bài hỏi xong và được mọi người gợi ý lại mò ra cách làm mới lạ chứ.
Có cao thủ nào check dùm em xem có bị lỗi gì không với. Mình đã làm xong phần worksheet_change, và form nhập dữ liệu đầu vào.

Nhờ mọi người hướng dẫn dùm cách nào link tự động từng mã hiệu công việc ở cột B của sheet XuatDL từ sheet KHỐI LƯỢNG sang. Chứ không lẽ cứ ngồi nhập tay từng cái mã hiệu cho nó nhày ra dữ liệu thì thấy thủ công quá
 

File đính kèm

  • CSDL hoi 5.10.2017 so3 .xls
    110 KB · Đọc: 4
  • Hoi auto MHCV.jpg
    Hoi auto MHCV.jpg
    326.8 KB · Đọc: 10
Hic không hiểu sao càng ngày bị cuồng VBA rồi, nghĩ mãi không ra hướng giải quyết, mà cứ mò vào diễn đàn đăng bài hỏi xong và được mọi người gợi ý lại mò ra cách làm mới lạ chứ.
Có cao thủ nào check dùm em xem có bị lỗi gì không với. Mình đã làm xong phần worksheet_change, và form nhập dữ liệu đầu vào.

Nhờ mọi người hướng dẫn dùm cách nào link tự động từng mã hiệu công việc ở cột B của sheet XuatDL từ sheet KHỐI LƯỢNG sang. Chứ không lẽ cứ ngồi nhập tay từng cái mã hiệu cho nó nhày ra dữ liệu thì thấy thủ công quá
Anh gì ấy ở Đắk Lắc ơi. Anh chỉ đọc Code thất hoàng mang. Chứ như bọn em nhìn vào CSDL của anh cứ thấy đổi như vậy thì người giúp thì có đau đầu không anh ?
 
Anh gì ấy ở Đắk Lắc ơi. Anh chỉ đọc Code thất hoàng mang. Chứ như bọn em nhìn vào CSDL của anh cứ thấy đổi như vậy thì người giúp thì có đau đầu không anh ?
Mình xin lỗi bạn nha, vì mình thấy sai sót nên chỉnh lại đó thôi.
Nhờ những góp ý của bạn mà mình đã làm được gần như toàn bộ cái mà mình mong muốn rồi.
Giúp mình vấn đề này với. Mình đã tạo được Form rồi nhưng mà không biết tạo Text Box tìm kiếm cho nhanh. Có cách nào giúp mình không? Hoặc là gợi mở cho 1 mình chỗ để nghiên cứu cũng được.
 

File đính kèm

  • CSDL hoi 5.10.2017 so6 .xls
    132 KB · Đọc: 8
Mình xin lỗi bạn nha, vì mình thấy sai sót nên chỉnh lại đó thôi.
Nhờ những góp ý của bạn mà mình đã làm được gần như toàn bộ cái mà mình mong muốn rồi.
Giúp mình vấn đề này với. Mình đã tạo được Form rồi nhưng mà không biết tạo Text Box tìm kiếm cho nhanh. Có cách nào giúp mình không? Hoặc là gợi mở cho 1 mình chỗ để nghiên cứu cũng được.
Ngày xưa em cũng tập làm file dự toán(Để nghiên cứu về VBA). Nhưng về sau thấy nản quá vì có nhiều vấn đề... Nếu anh muốn theo đuổi vấn đề này thì anh phải bố trí CSDL chuẩn rồi mới tiếp tục đươc.
 
Ngày xưa em cũng tập làm file dự toán(Để nghiên cứu về VBA). Nhưng về sau thấy nản quá vì có nhiều vấn đề... Nếu anh muốn theo đuổi vấn đề này thì anh phải bố trí CSDL chuẩn rồi mới tiếp tục đươc.
Mình đã viết được ok rồi bạn, cơ bản là giờ chạy ra số liệu vô tư rồi, còn thiếu cái tìm kiếm này và copy dữ liệu từ File Excel này sang Excel khác thôi. Mình sẽ gửi bạn xem thử sớm nhất có thể.
Bây giờ thì giúp mình chỗ này với?
Mã:
    Dim start_R As Long
    Dim lrDATA As Long

start_R = 7
lrDATA = Sheet5.Range("D" & Rows.Count).End(xlUp).Row '


Sheet5.Range("A" & start_R & ":E " & lrDATA).Select

Vậy mà sao VBA lại báo lỗi mới lạ chứ ? Nó báo lỗi này ""Method 'Range' of Object '_Worksheet' Failed"
Viết vầy thì chạy vô tư
Sheet5.Range("G" & 7 & ":G" & 79).Select
 
Mình đã viết được ok rồi bạn, cơ bản là giờ chạy ra số liệu vô tư rồi, còn thiếu cái tìm kiếm này và copy dữ liệu từ File Excel này sang Excel khác thôi. Mình sẽ gửi bạn xem thử sớm nhất có thể.
Bây giờ thì giúp mình chỗ này với?
Mã:
Sheet5.Range("A" & start_R & ":E " & lrDATA).Select

Vậy mà sao VBA lại báo lỗi mới lạ chứ ? Nó báo lỗi này ""Method 'Range' of Object '_Worksheet' Failed"
Viết vầy thì chạy vô tư
Sheet5.Range("G" & 7 & ":G" & 79).Select

Nhai vội quá nên bị hóc đấy thôi. Bi giờ thì khoan hãy làm cái phần đỏ đỏ trên.
Cái phần màu xanh đáng lẽ ngừoi viết code 1 tuần lễ là phải biết tự tìm ra. Bạn vẫn phải hỏi tức là quá trình học của bạn thiếu thốn nhiều.

Bỏ ra ít nhất 1 ngày tập cái kỹ thuật gọi là DEBUG.
Nếu chưa thành thạo kỹ thuật này thì bất cứ đoạn code nào cỡ 15-20 dòng là bạn lại phải đem lên đây hỏi.
 
Web KT

Bài viết mới nhất

Back
Top Bottom