访问VBA:在CurrentDb.OpenRecordset上键入不匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问VBA:在CurrentDb.OpenRecordset上键入不匹配相关的知识,希望对你有一定的参考价值。

在下面的代码中,当我给vcount赋值时,我得到了compile error Type mismatch

我使用的代码是:

Dim SQL As String
Dim vcount As Integer

SQL = " SELECT count(*) FROM [Data Processing List];"

vcount = CurrentDb.OpenRecordset(SQL)

enter image description here

答案

一些替代方法。

使用TableDefs计算特定表中的行数:

Dim vcount As Integer

vcount = CurrentDb.TableDefs("[Data Processing List]").RecordCount

使用DCount:

Dim vcount As Integer

vcount = DCount("*", "[Data Processing List]")

还有更多方法。看看这篇非常有趣的文章,讨论几种方法,包括小型和中型表的性能结果:

MS Access – VBA – Get Record Count

另一答案

CurrentDb.OpenRecordset返回记录集,而不是值。

如果要访问记录集字段的值,可以使用字段集合中所需字段的.Value属性来执行此操作:

vcount = CurrentDb.OpenRecordset(SQL).Fields(0).Value

以上是关于访问VBA:在CurrentDb.OpenRecordset上键入不匹配的主要内容,如果未能解决你的问题,请参考以下文章

通过 vba 访问更改导航窗格组

访问 VBA - 使用 VBA 的 SQL 语句使用文本框组合框值在表单上填充列表框 OR

在访问表 VBA 中搜索值

访问 vba 代码在 access 2019 上是非法的

访问 VBA 查询

sharepoint 2013 使用 VBA 访问