【发布时间】:2017-04-05 18:59:39
【问题描述】:
我在 Excel VBA 中有一个 Access 数据库和一个表单。我输入DB的所有数据都是通过VBA表单输入的。
此数据库包含我们今年在公司收到的所有福利卡。但是同一个员工可以两次或多次索取卡,所以我们在数据库中为他提供了不止一条记录。
我需要的是当记录数大于1时,SQL语句结果应该出现在Excel报告中。
我使用SELECT (*) COUNT 语句来了解何时有多个记录与搜索条件兼容。但我不能让结果出现在 Excel 文件中。
这是我的代码:
Public Function Relatorio()
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rel As String
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & enderecoDB & ";Jet OLEDB:Database"
cn.Open
Set rs = New ADODB.Recordset
sql = "INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=" & enderecoDB & ";', 'SELECT * FROM [Planilha1$]') SELECT * FROM controle WHERE BP = " & controlectform.nmbpbox.Value & ";"
rs.Open sql, cn
End Function
当我运行此代码时,它会给我一条消息,内容如下:
找不到 OPENROWSET 表出口
我无法安装新程序,因此我只需要使用 Excel VBA 和 Access DB 来安装。
我怎样才能做到这一点?
【问题讨论】:
-
尝试将此查询作为视图放入访问中,而不是从 vba 查询新视图
-
我使用表单中的一个字段来进行“选择”。即使我将查询放入访问权限,我是否可以继续使用表单字段进行“选择”?