Truy vấn dữ liệu từ excel trong table access bằng VB6 (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thang314

Thành viên thường trực
Tham gia
10/1/11
Bài viết
324
Được thích
122
Nghề nghiệp
lại thất nghiệp
Dim XL As New Excel.Application
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database.mdb"
Rs.ActiveConnection = Cn
Set XL = CreateObject("excel.application")
Set XL = GetObject(, "excel.application")
Set Wb = XL.ActiveWorkbook
Set Ws = Wb.ActiveSheet
For i = 2 To Ws.[a2].End(xlUp).Row
Rs.Open "select*from goc where account_id='" & ws.range("a"&i).value & "'"
Ws.Range("e" & i).Value = Rs.Fields("cr_name")
Next
End Sub
em đang làm chương trình trong vb6. nhưng code chạy lại không thực hiện gán giá trị. em không rõ tại sao nữa. nhờ các cao thủ chỉ dùm.
 
Dim XL As New Excel.Application
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database.mdb"
Rs.ActiveConnection = Cn
Set XL = CreateObject("excel.application")
Set XL = GetObject(, "excel.application")
Set Wb = XL.ActiveWorkbook
Set Ws = Wb.ActiveSheet
For i = 2 To Ws.[a2].End(xlUp).Row
Rs.Open "select*from goc where account_id='" & ws.range("a"&i).value & "'"
Ws.Range("e" & i).Value = Rs.Fields("cr_name")
Next
End Sub
em đang làm chương trình trong vb6. nhưng code chạy lại không thực hiện gán giá trị. em không rõ tại sao nữa. nhờ các cao thủ chỉ dùm.
Bạn kiểm tra lại cái chổ màu xanh như trên.
Sao bạn không dùng copyfromrecordset? nó đơn giản hơn, tốc độ nhanh hơn.
Bạn đưa file demo lên xem thử nhé.
 
em đã sửa lại thành
For i = 2 To Ws.[a2].End(xlDown).Row
nhưng vẫn không được.
"Sao bạn không dùng copyfromrecordset? nó đơn giản hơn, tốc độ nhanh hơn."
thực tế em đã làm bằng việc import excel vào access rồi so sánh 2 table với nhau. việc cứ phải import qua lại làm cho tốc độ làm việc chậm đi ( cái này em không khoái rồi ) nên em mới làm kiểu đọc trực tiếp trên excel rồi truy xuất dữ liêu vào file excel luôn.
"Bạn đưa file demo lên xem thử nhé."
cái này là thiếu sót của em rồi
 
em đã sửa lại thành
For i = 2 To Ws.[a2].End(xlDown).Row
nhưng vẫn không được.
"Sao bạn không dùng copyfromrecordset? nó đơn giản hơn, tốc độ nhanh hơn."
thực tế em đã làm bằng việc import excel vào access rồi so sánh 2 table với nhau. việc cứ phải import qua lại làm cho tốc độ làm việc chậm đi ( cái này em không khoái rồi ) nên em mới làm kiểu đọc trực tiếp trên excel rồi truy xuất dữ liêu vào file excel luôn.
"Bạn đưa file demo lên xem thử nhé."
cái này là thiếu sót của em rồi
Select recordset rồi ghi thực tiếp qua file Excel (Không dùng vòng lặp), đâu cần import hay gì gì đâu bạn.
 
Web KT

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

Back
Top Bottom