在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
选项,列名应该是第一行中的数据。