2010-01-18 78 views
7

我想查詢Excel工作表中VBA 指定的條件。在MS-Access VBA中查詢Excel工作表(使用ADODB記錄集)

簡單的查詢"SELECT * FROM [PCR$]"完美地工作,但我不知道如何添加WHERE子句。

我試過cmd2.CommandText = "SELECT * FROM [PCR$] WHERE ([B1] IS NOT NULL)"但後來它抱怨缺少參數。

這是完整的代碼:


Dim rs2 As New ADODB.Recordset 
Dim cnn2 As New ADODB.Connection 
Dim cmd2 As New ADODB.Command 
Dim intField As Integer 
Dim strFile As String 

strFile = fncOpenFile 
If strFile = "" Then Exit Sub 

With cnn2 
    .Provider = "Microsoft.Jet.OLEDB.4.0" 
    .ConnectionString = "Data Source='" & strFile & "'; " & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'" 
    .Open 
End With 

Set cmd2.ActiveConnection = cnn2 
cmd2.CommandType = adCmdText 
cmd2.CommandText = "SELECT * FROM [PCR$]" 
rs2.CursorLocation = adUseClient 
rs2.CursorType = adOpenDynamic 
rs2.LockType = adLockOptimistic 

rs2.Open cmd2 

回答

5

在連接字符串你說

Excel 8.0;HDR=Yes 

這意味着,第一行會被視爲頭,不管它包含什麼。如果你想使用F1,F2等,說

Excel 8.0;HDR=No 
相關問題