INSERT dữ liệu vào file access bằng ADO và mảng.

Liên hệ QC

darknightno007

Thành viên hoạt động
Tham gia
26/11/15
Bài viết
180
Được thích
54
Nghề nghiệp
Kế toán
Chào các anh chị trong diễn đàn,
Em gặp vấn đề thế này.
khi insert dữ liệu mới vào file access bằng ADO, nếu dữ liệu đó trên sheet thì add vô bình thường, còn nếu em chuyển về mảng thì add vô lại không được. Em không rõ có cách nào để làm được không.
Mong mọi người giúp đỡ.
 

File đính kèm

  • DuaDL_Acc-v1.rar
    30.1 KB · Đọc: 18
Chào các anh chị trong diễn đàn,
Em gặp vấn đề thế này.
khi insert dữ liệu mới vào file access bằng ADO, nếu dữ liệu đó trên sheet thì add vô bình thường, còn nếu em chuyển về mảng thì add vô lại không được. Em không rõ có cách nào để làm được không.
Mong mọi người giúp đỡ.
Nhìn code trong file thấy quen quen.
 
Nhìn code trong file thấy quen quen.
Cái này Anh làm mà. nhưng mà lâu rồi, em search bữa giờ nhưng chưa tìm ra giải pháp, Nhập liệu trên userform rồi in xuống sheet, sau đó insert vô data thì chạy ổn. Nhưng em muốn nhập trên form sau đó đưa nó vô 1 mảng, có trên các trường đầy đủ, sau đó insert vô data thì nó cứ bị lỗi hoài. Mong Anh chỉ giáo thêm cho em chút ít.
 
Cái này Anh làm mà. nhưng mà lâu rồi, em search bữa giờ nhưng chưa tìm ra giải pháp, Nhập liệu trên userform rồi in xuống sheet, sau đó insert vô data thì chạy ổn. Nhưng em muốn nhập trên form sau đó đưa nó vô 1 mảng, có trên các trường đầy đủ, sau đó insert vô data thì nó cứ bị lỗi hoài. Mong Anh chỉ giáo thêm cho em chút ít.
Bạn thử duyệt từng Item trong mảng, mỗi lần qua 1 item, nhét nó vào là được nhé.
 
Bạn thử duyệt từng Item trong mảng, mỗi lần qua 1 item, nhét nó vào là được nhé.
cùng Add new thì em dùng ok rồi. Vô CSDL bình thường, nhưng Anh cho em hỏi có cách nào để đưa nguyên 1 mảng vô luôn được không, k dùng vòng lặp để dò từng item trong mảng.
 
cùng Add new thì em dùng ok rồi. Vô CSDL bình thường, nhưng Anh cho em hỏi có cách nào để đưa nguyên 1 mảng vô luôn được không, k dùng vòng lặp để dò từng item trong mảng.
Dùng vòng lặp dò từng item trong mảng tốc độ cũng chấp nhận được mà bạn.
Tôi đã thử thêm vào 65.500 dòng mà chỉ mất có 4 giây thôi.
 
Dùng vòng lặp dò từng item trong mảng tốc độ cũng chấp nhận được mà bạn.
Tôi đã thử thêm vào 65.500 dòng mà chỉ mất có 4 giây thôi.
Em cũng test thử, tốc độ thì chấp nhận nhưng mà code thì thấy thêm 1 cái vòng lặp để dò từng cái. Em thấy chưa hài lòng lắm.
 
Em cũng test thử, tốc độ thì chấp nhận nhưng mà code thì thấy thêm 1 cái vòng lặp để dò từng cái. Em thấy chưa hài lòng lắm.
Vòng lặp để duyệt mảng thì đâu ảnh hưởng gì nhiều, nhiều khi nó còn có tác dụng hơn khi không dùng vòng lặp. Đâu phải lúc nào code không có vòng lặp là code đã được tối ưu đâu bạn.
 
Lần chỉnh sửa cuối:
@Hai Lúa Miền Tây Anh cho em hỏi, câu lệnh Update trong vba ado như thế này thì bị syntax:
"UPDATE [Data$] " & _
"SET [Thanh_toan] = [Thanh_tien_VAT] * " & DotTT(k, 2) & _
" WHERE [So_hop_dong] = '" & Arr_Vat_Tu(i, 18) & _
"' AND [Ten_doi_tuong_cong_no] = '" & Arr_Vat_Tu(i, 4) & _
"' AND [Ten_doi_tuong_cung_cap] = '" & Arr_Vat_Tu(i, 5) & _
"' AND [Hang_muc] = '" & Arr_Vat_Tu(i, 10) & _
"' AND [Dot] = '" & Arr_Vat_Tu(i, 16) & "'"
Mò miết mấy bữa nay, k biết e bị sai chỗ nào nữa
 
@Hai Lúa Miền Tây Anh cho em hỏi, câu lệnh Update trong vba ado như thế này thì bị syntax:
"UPDATE [Data$] " & _
"SET [Thanh_toan] = [Thanh_tien_VAT] * " & DotTT(k, 2) & _
" WHERE [So_hop_dong] = '" & Arr_Vat_Tu(i, 18) & _
"' AND [Ten_doi_tuong_cong_no] = '" & Arr_Vat_Tu(i, 4) & _
"' AND [Ten_doi_tuong_cung_cap] = '" & Arr_Vat_Tu(i, 5) & _
"' AND [Hang_muc] = '" & Arr_Vat_Tu(i, 10) & _
"' AND [Dot] = '" & Arr_Vat_Tu(i, 16) & "'"
Mò miết mấy bữa nay, k biết e bị sai chỗ nào nữa
Gửi file lên xem thử nhé bạn
 
Gửi file lên xem thử nhé bạn
Em gửi a file.
Xử lý dữ liệu trên file Main.
Mục đích của em sẽ dò các đợt thanh toán trong file tonghop, sheet thanh toan. trong cột đợt, vật tư nào thanh toán đợt 1 = 80% giá trị vật tư, đợt 2 = 20%, nếu trống thì 100%.
Sau đó cập nhật lại file Vat_tu cột thanh toán.
Mong anh xem thử code e có vấn đề gì k.
 

File đính kèm

  • Test.rar
    154.6 KB · Đọc: 3
Em gửi a file.
Xử lý dữ liệu trên file Main.
Mục đích của em sẽ dò các đợt thanh toán trong file tonghop, sheet thanh toan. trong cột đợt, vật tư nào thanh toán đợt 1 = 80% giá trị vật tư, đợt 2 = 20%, nếu trống thì 100%.
Sau đó cập nhật lại file Vat_tu cột thanh toán.
Mong anh xem thử code e có vấn đề gì k.
Thử với code sau nhé:

Mã:
lrsSQL = "UPDATE [Data$] " & _
                        "SET Thanh_toan = Thanh_tien_VAT * " & DotTT(k, 2) & _
                        " WHERE So_hop_dong = '" & Arr_Vat_Tu(i, 18) & _
                        "' AND Ten_doi_tuong_cong_no = '" & Arr_Vat_Tu(i, 4) & _
                        "' AND Ten_doi_tuong_cung_cap = '" & Arr_Vat_Tu(i, 5) & _
                        "' AND Hang_muc = '" & Arr_Vat_Tu(i, 10) & _
                        "' AND Dot = '" & Arr_Vat_Tu(i, 16) & "' "
 

File đính kèm

  • Test.rar
    152.4 KB · Đọc: 11
Thử với code sau nhé:

Mã:
lrsSQL = "UPDATE [Data$] " & _
                        "SET Thanh_toan = Thanh_tien_VAT * " & DotTT(k, 2) & _
                        " WHERE So_hop_dong = '" & Arr_Vat_Tu(i, 18) & _
                        "' AND Ten_doi_tuong_cong_no = '" & Arr_Vat_Tu(i, 4) & _
                        "' AND Ten_doi_tuong_cung_cap = '" & Arr_Vat_Tu(i, 5) & _
                        "' AND Hang_muc = '" & Arr_Vat_Tu(i, 10) & _
                        "' AND Dot = '" & Arr_Vat_Tu(i, 16) & "' "
upload_2017-10-3_13-18-30.png

Nó báo lỗi như cũ anh ơi.
 
Web KT
Back
Top Bottom