错误上打开记录MSACCESS
我使用访问下面的代码来尝试打开一个记录:“太少参数”错误上打开记录MSACCESS
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("fieldHistory")
我一直得到错误
fieldHistory与SQL代码查询如下:
SELECT Date, User, Type
FROM Inventory
WHERE ((Inventory.Type) In ("Insert","EditTo"));
我已经研究过这一些 - 我发现,如果我使用的代码db.OpenRecordset(“从清单中选择*”)我不要错误。
此外,我发现这个论坛似乎是对某事,但我不明白如何创建适当的querydef对象来创建我的查询。
http://access.mvps.org/access/queries/qry0013.htm
非常感谢您!
创建一个新的数据库。
打开新的数据库,并确保您的DAO包含在参考文献中。
插入一个新的标准模块,确保在声明部分包含Option Explicit。
然后粘贴此代码并运行它。
Public Sub CreateTableZack()
Dim strSql As String
strSql = "CREATE TABLE tblZack (" & vbNewLine & _
vbTab & "id COUNTER CONSTRAINT pkey PRIMARY KEY," & vbNewLine & _
vbTab & "foo_text TEXT(255)," & vbNewLine & _
vbTab & "date_assigned DATETIME);"
Debug.Print strSql
CurrentProject.Connection.Execute strSql
End Sub
假设表创建成功后,创建qryZack以此为它的SQL:
SELECT *
FROM tblZack;
然后尝试你的代码,打开基于qryZack DAO记录。
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("qryZack")
它工作吗?
如果没有,您的Access安装可能会被彻底清理......您可能需要修复或重新安装它。如果可以的话,你也可以在另一台有Access的机器上尝试。
如果它适用于新数据库,但不适用于旧数据库,则旧数据库可能已损坏。首先制作备份,然后尝试使用Compact &修复。
另一个问题是您的字段名称。日期,用户和类型都是访问保留字。见Problem names and reserved words in Access。我不能说这些名字在这里引起了问题,但是为数据库对象(表格,字段,查询等)使用保留名称可能会产生严重后果...就像它将Access中的垃圾混淆了一样。所以我会很好地避免它们。
编辑:您还应该检查旧数据库中的引用。缺失/中断的引用也混淆了Access的垃圾。
日期,用户和类型都是MS Access中的特殊字词或保留字。请勿将它们用于您的字段名称。
将括号中的每个括起来都可能取得一些成效,但强烈建议您更改字段名称。
对不起 - 澄清 - 这些不是我的实际字段名称。我只是在这里用它来简化。 – Zack 2011-06-01 12:56:08