gpt4 book ai didi

ms-access - 使用 VBA 在 Access 表中记录计数

转载 作者:行者123 更新时间:2023-12-02 23:39:29 25 4
gpt4 key购买 nike

我正在尝试获取表的记录数,如果计数大于 17,则创建一个新表。

Dim rst As DAO.Recordset
strSQL = "Select * from SKUS"
Set rst = db.OpenRecordset(strSQL)

If rst.RecordCount > 17 Then
Set tdf = db.CreateTableDef("161-0363")

Set fld = tdf.CreateField("SKUS", dbText, 30)
tdf.Fields.Append fld

Set fld = tdf.CreateField("Count", dbInteger)
tdf.Fields.Append fld

db.TableDefs.Append tdf
End If

此代码不会创建新表,但是当我将 if 语句更改为此时,它会起作用:

...
If rst.RecordCount > 0 Then
Set tdf = db.CreateTableDef("161-0363")
...

所以我认为 RecordCount 返回 1。为什么会发生这种情况?我确信该表有 18 行。
谁能帮帮我吗?

最佳答案

您必须强制记录集遍历所有行才能获得准确的计数。试试这个:

...
Set rst = db.OpenRecordset(strSQL)

rst.MoveLast
If rst.RecordCount > 17 Then
...

除非您正在对代码段中未显示的记录集执行其他操作,否则您可以通过使用域计数函数检查记录计数来简化代码:

If DCount("*", "SKUS") > 17 Then

如果您打算在执行 RecordCount 检查后循环 Access 记录集,请确保在开始循环之前返回到第一条记录:

rst.MoveFirst

关于ms-access - 使用 VBA 在 Access 表中记录计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com