Truy Vấn SQL điều kiện WHERE ( dùng ADO kết nối 2 file excel)

Liên hệ QC

hoanghuytfs

Thành viên mới
Tham gia
1/6/13
Bài viết
20
Được thích
2
Hi các bạn !
- mình dùng ADO kết nối file excel, dung truy vấn SQL có điều kiện WHERE để lọc 1 fields bằng 1 giá trị nhưng bị báo lỗi
- file gồm 2 sheet : DATA , PXK
+ đánh số phiếu xuất kho : PXK-0001 bên sheet PXK
+ sẽ lọc bên sheet DATA có phiếu xuất kho này và copy thông tin qua sheet PXK

- code như sau :


Public CNN As New ADODB.Connection
Sub KETNOIADO_EXCEL(duongdanfile)
' dung ADO ket noi 2 file excel
Dim verExcel As Integer
Dim str_conn As String

verExcel = Val(Application.Version)
If verExcel < 12 Then
str_conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & duongdanfile & ";" & _
"Extended Properties=""Excel 8.0;HDR=No"";IMEX=1;"
Else
str_conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & duongdanfile & ";" & _
"Extended Properties=""Excel 12.0;HDR=No;IMEX=1"";"
End If
With CNN
.ConnectionString = str_conn
.Open
End With
End Sub




Private Sub CommandButton1_Click()
Dim RST As ADODB.Recordset
Dim TRUYVANSQL, SheetNguon, TableNguon As String
Dim HangshDATA, HangshPXK As Double
Dim soPXK As String

soPXK = Sheets("PXK").Range("C1").Value
SheetNguon = Sheets("DATA").Name
HangshDATA = Sheets("DATA").Range("C" & Rows.Count).End(xlUp).Row
TableNguon = "B5:I" & HangshDATA
TRUYVANSQL = "SELECT * " & _
"FROM [" & SheetNguon & "$" & TableNguon & "]" & _
"WHERE F1=" & soPXK & ""

If CNN.State <> 1 Then Call Module1.KETNOIADO_EXCEL(ThisWorkbook.FullName)
Set RST = New ADODB.Recordset
RST.Open TRUYVANSQL, CNN, adOpenDynamic, adLockOptimistic
RST.MoveFirst
HangshPXK = 7 + 1
With Sheets("PXK")
Do While Not RST.EOF
.Range("B" & HangshPXK).Value = RST.Fields(5).Value
.Range("C" & HangshPXK).Value = RST.Fields(6).Value
.Range("D" & HangshPXK).Value = RST.Fields(7).Value
RST.MoveNext
HangshPXK = HangshPXK + 1
Loop
MsgBox " XONG !"
End With

End Sub

=> chay thi no bao loi :
untitled.jpg

cac bạn xem sửa lỗi giúp mình câu truy vấn SQL có bị sai gì hông nhé ????

Thanks các bạn !
 

File đính kèm

  • truyvanSQL-where.xlsm
    37.9 KB · Đọc: 18
Không có xem hết Code của bạn chỉ truy vấn thôi nhé. Bạn sửa lại như thế này
Mã:
    TRUYVANSQL = "SELECT * " & _
                 "FROM [" & SheetNguon & "$" & TableNguon & "] " & _
                 "WHERE [B][COLOR=#ff0000]F2[/COLOR][/B]=[COLOR=#ff0000][B]'[/B][/COLOR]" & soPXK & "[COLOR=#ff0000][B]'[/B][/COLOR]"
 
Web KT
Back
Top Bottom