在MS-Access VBA中查询Excel工作表(使用ADODBlogging集)

我想在VBA中查询Excel工作表指定条件。

简单的查询"SELECT * FROM [PCR$]"完美地工作,但我不知道如何添加一个WHERE子句。

我试过cmd2.CommandText = "SELECT * FROM [PCR$] WHERE ([B1] IS NOT NULL)"但它抱怨缺less参数。

这是完整的代码:

 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 

在你的连接string,你说

  Excel 8.0;HDR=Yes 

这意味着第一行将被视为标题,不pipe它包含什么。 如果你想使用F1,F2等,说

 Excel 8.0;HDR=No 

因为您有HDR=Yes选项,列名应该是第一行中的数据。

http://support.microsoft.com/kb/316934