Trợ giúp ADO _ bước vỡ lòng

Liên hệ QC

tranvanhungvms

Thành viên mới
Tham gia
20/4/17
Bài viết
3
Được thích
0
Sub SQL_abc()
Dim cn, rst As Object
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")
Dim strSQL As String
Dim i As Integer

strSQL = " select ID_AP, Decription, Import, Export, Import + Export as [Stock] from [NKY_AP$]"

Dim strFileName As String
strFileName = ThisWorkbook.Path & "\TheoDoiAP.xlsx"

cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=Excel 12.0")

MsgBox (strSQL)

rst.Open (strSQL), cn

'THEM TIEU DE COT
For i = 1 To rst.Fields.Count
Cells(4, i) = rst.Fields(i - 1).Name

Next
Range("A5:F1500").ClearContents

Sheet1.[B4].CopyFromRecordset rst
End Sub


'Có đoạn code ngắn trên mà nó cứ báo lỗi ở chỗ in đậm

upload_2017-10-7_15-40-22.png
các bác chỉ với
 

File đính kèm

  • AnPham_Stock.xlsm
    61.7 KB · Đọc: 8
  • TheoDoiAP.xlsx
    38.4 KB · Đọc: 10
Sub SQL_abc()
Dim cn, rst As Object
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")
Dim strSQL As String
Dim i As Integer

strSQL = " select ID_AP, Decription, Import, Export, Import + Export as [Stock] from [NKY_AP$]"

Dim strFileName As String
strFileName = ThisWorkbook.Path & "\TheoDoiAP.xlsx"

cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=Excel 12.0")

MsgBox (strSQL)

rst.Open (strSQL), cn

'THEM TIEU DE COT
For i = 1 To rst.Fields.Count
Cells(4, i) = rst.Fields(i - 1).Name

Next
Range("A5:F1500").ClearContents

Sheet1.[B4].CopyFromRecordset rst
End Sub


'Có đoạn code ngắn trên mà nó cứ báo lỗi ở chỗ in đậm

View attachment 184418
các bác chỉ với
Trước mắt cái file chứa dữ liệu phải điều chỉnh lại tiêu đề cột, không được trộn ô nhé.

upload_2017-10-7_16-29-49.png
 
Lần chỉnh sửa cuối:
Bạn sử lại như sau:

1/ File TheoDoiAP.xlsm sheet NhatKy_AP bỏ Merg toàn bộ tiêu đề đi. Chuyển tiêu đề thành 1 hàng (Hàng số 4)
2/ Code sửa đoạn sau:

*Câu lệnh SQL
Mã:
    strSQL = "Select ID_AP, Decription, Import, Export, Import + Export as [Stock] from [NKY_AP$A4:G65536]"

*Câu lệnh Open connect string

Mã:
    cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=""Excel 12.0;HDR=Yes"";")

* Bạn viết cái tiêu đề mà chữ Ò có thêm cái mũ nữa thì "ba chấm" potay.com
 
Câu lệnh SQL
strSQL = "Select ID_AP, Decription, Import, Export, Import + Export as [Stock] from [NKY_AP$A4:G65536]"
Sẽ không ra được kết quả nhé.
*Câu lệnh Open connect string

cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=""Excel 12.0;HDR=Yes"";")
Nếu lấy tiêu đề cột thì không cần phải thêm HDR=Yes, vì mặc định của nó là coi dòng dữ liệu đầu tiên là cột tiêu đề.
 
Sẽ không ra được kết quả nhé.

Nếu lấy tiêu đề cột thì không cần phải thêm HDR=Yes, vì mặc định của nó là coi dòng dữ liệu đầu tiên là cột tiêu đề.
Bạn có thể post file không ra kết quả khi làm đúng các bước tại bài #3 để tôi nghiên cứu được không?
 
Bạn có thể post file không ra kết quả khi làm đúng các bước tại bài #3 để tôi nghiên cứu được không?
Vậy thì mình xin nói thế này nhé. Hàm cộng giữa 1 trường có giá trị và 1 trường null thì kết quả chắc chắn sẽ là null. Theo đoạn truy vấn mà bạn đưa ở trên thì Field Stock sẽ có những kết quả là null.
 
Vậy thì mình xin nói thế này nhé. Hàm cộng giữa 1 trường có giá trị và 1 trường null thì kết quả chắc chắn sẽ là null. Theo đoạn truy vấn mà bạn đưa ở trên thì Field Stock sẽ có những kết quả là null.

Thật sự thì ông nội tôi cũng không biết chủ thớt muốn lấy cái gì ở Import+Export. Ví dụ bạn đã chuẩn nó thành Nz(Import) + Nz(Export)
Theo đúng câu truy vấn trên thì Import+Export chỉ có nghĩa là "phát sinh này tăng hay giảm Tồn Kho N đơn vị". Gần như thừa; hai cột kia cho biết rồi.
 
Thật sự thì ông nội tôi cũng không biết chủ thớt muốn lấy cái gì ở Import+Export. Ví dụ bạn đã chuẩn nó thành Nz(Import) + Nz(Export)
Theo đúng câu truy vấn trên thì Import+Export chỉ có nghĩa là "phát sinh này tăng hay giảm Tồn Kho N đơn vị". Gần như thừa; hai cột kia cho biết rồi.
Khà khà, anh vui tính ghê, theo em hiểu thì chủ thớt muốn lấy lượng tồn. Mà tồn thì sẽ là Tồn đầu kỳ + Nhập trong kỳ - Xuất trong kỳ. Nhưng ở đây thì chủ thớt đã quy định chỉ có Nhập và Xuất mà xuất là âm nên phải lập là Nhập + Xuất = Tồn.
Hàm Nz trong trường hợp này chưa phát huy tác dụng phải không anh.

Câu lệnh này đúng ra phải có phần gom nhóm.
 
Lần chỉnh sửa cuối:
Vậy thì mình xin nói thế này nhé. Hàm cộng giữa 1 trường có giá trị và 1 trường null thì kết quả chắc chắn sẽ là null. Theo đoạn truy vấn mà bạn đưa ở trên thì Field Stock sẽ có những kết quả là null.
Chào bạn,
Nhìn yêu cầu của chủ Topic thì như bài #7. Vấn đề chính ở đây là chủ Topic đang gặp khó cái thông báo lỗi. Hãy cứ để chủ Topic làm theo #3 đúng sai sẽ la lên bạn ah.
 
Web KT
Back
Top Bottom