我继承了一个Access数据库,其中包含许多表,表单和查询。但是,我是一名PHP程序员,而VBA对我来说很陌生。我被要求做一些更改,经过几天的努力,我就能够开始工作(在旧有的随机SO帖子的大量帮助下)。
将数据库传递回用户后,在我的计算机上可以使用的代码在他们的用户上无法使用。看来我有Access 2010,有Access2007。据我所知,Access 2007中的VBA中不存在函数DoCmd.SetParameter。
这是代码片段:
DoCmd.SetParameter "ReportYear", Year.Value
DoCmd.SetParameter "ReportMonth", Month.Value
DoCmd.OpenQuery "doFillData"
doFillData是Access内部的查询,可自动插入到另一个表中,运行前需要2个参数(年和月)。
显而易见的答案是,让它们升级到2010年,但我没有那种力量。我想我可以在2007年创建条件代码来做一些不同的事情,但是我找不到要使用的类似函数。谁有想法?
而不是使用DoCmd.OpenQuery
,您想要操纵querydef对象的命名参数,然后执行它。您可以像acFailOnError
执行这种方式一样使用Execute选项(不适用于OpenQuery),并且可以检测到受影响的记录数。
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb
Set qdf = db.QueryDefs("doFillData")
qdf.Parameter("ReportYear") = Year.Value
qdf.Parameter("ReportMonth") = Month.Value
qdf.Execute
MsgBox qdf.RecordsAffected & " records were affected."
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句