sql - 在 MS-Access VBA 中查询 Excel 工作表(使用 ADODB 记录集)

标签 sql excel ms-access vba

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

简单的查询“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

最佳答案

在你的连接字符串中你说

 Excel 8.0;HDR=Yes

这意味着第一行将被视为标题,无论它包含什么。如果您想使用 F1、F2 等,请说

Excel 8.0;HDR=No

关于sql - 在 MS-Access VBA 中查询 Excel 工作表(使用 ADODB 记录集),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086234/

相关文章:

sql - 更新 SQL Server 2012 中的 varbinary(MAX) 字段丢失最后 4 位

c# - 如何使用 NPOI 库 c# 在 Excel 工作表中生成折线图和数据

vba - 使用函数和 With/End With 访问类对象

vba - 将表导出到另一个 Access 数据库

sql - VBA 错误 3134 INSERT INTO 语句中的语法错误

sql - mysql substr 不像 php substring 那样工作

mysql - 如何优化sql连接查询

mysql - 设计键/值数据库模式时遇到的问题

java - 如何使用gwt java知道apache POI读取excel所有数据

sql - 来自数据库的困难分组报告