[英]Creating a recordset in Access with VBA
从标题中,我知道这似乎已经被回答了太多次,但我有一系列难以理解的问题。 这也是我第一次通过帖子寻求帮助,所以我可能会忘记提及一些东西。
Function update_location_id()
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Set db = CurrentDb
strSQL = "select id from location"
Set rs = db.OpenRecordset(strSQL)
MsgBox (rs.RecordCount)
End Function
我从这个函数中删除了几乎所有的代码,只是为了弄清楚为什么我无法获得记录。 这段代码生成了一个“参数太少。在' set rs =
...' 行上应该有一个。
但是,如果我将选择查询的 id 更改为 *,它就可以正常工作。 但是它返回 1。这有点令人困惑,因为现在 location 表中总共有 3 条记录。
以防万一它需要位置表看起来像
id description
1 "Location 1"
2 "Location 2"
3 "Location 3"
这让我感到很头疼,如果我不能执行诸如...从中获取信息之类的基本数据库操作,我就无法真正继续我的项目。
参考:Visual Basic for Applications、Microsoft Access 14.0 对象库、OLE 自动化、Microsoft Office 14.0 Access 数据库引擎对象、Microsoft Internet 控件。
通常,当您使用表中不存在的列名时,会出现“参数太少”错误,因此将其解释为参数。
因此,尽管您给定了表数据,但我真的会再次检查表名(位置)和列名(id)。
至于“1”,是的,你必须插入rs.MoveLast
rs.MoveFirst
打开记录集以获取正确的 RecordCount 后。 在移动到最后一个之前,记录集不知道它产生了多少记录(这个问题还有更多细节,我现在记不清了,关于记录集类型左右)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.