Access VBA 函数为不同的用户产生不同的结果
Posted
技术标签:
【中文标题】Access VBA 函数为不同的用户产生不同的结果【英文标题】:Access VBA Function produces different results for different users 【发布时间】:2019-12-10 15:03:55 【问题描述】:我有一个通过宏运行的 VBA 模块。该代码针对单个表运行五个查询以计算五个不同的数量,并将它们放在发送给各方的电子邮件正文中。
当我运行该模块时,它会在消息中生成正确的计数。当员工运行它时,查询会为五个计数中的每一个生成零。
我们都使用 Access 2016,所以版本不是一个因素。
这让我摸不着头脑。
有没有人遇到过这种情况?我不知道原因。
下面的代码sn-p:
Set rs = db.OpenRecordset("SELECT Count(*) As Total FROM [Migration List] Where TargetUserMigrationDate = #" & NextMigrationDate & "#")
Total = rs!Total
Set rs = db.OpenRecordset("SELECT Count(*) As AUSTcount FROM [Migration List] Where BatchNumber Like 'UAUST*' AND TargetUserMigrationDate = #" & NextMigrationDate & "#")
AUSTcount = rs!AUSTcount
Set rs = db.OpenRecordset("SELECT Count(*) As EMEAcount FROM [Migration List] Where BatchNumber Like 'UEMEA*' AND TargetUserMigrationDate = #" & NextMigrationDate & "#")
EMEAcount = rs!EMEAcount
Set rs = db.OpenRecordset("SELECT Count(*) As AMERcount FROM [Migration List] Where BatchNumber Like 'UAMER*' AND TargetUserMigrationDate = #" & NextMigrationDate & "#")
AMERcount = rs!AMERcount
Set rs = db.OpenRecordset("SELECT Count(*) As APACcount FROM [Migration List] Where BatchNumber Like 'UAPAC*' AND TargetUserMigrationDate = #" & NextMigrationDate & "#")
APACcount = rs!APACcount
Set rs = db.OpenRecordset("SELECT Count(*) As MACcount FROM [Migration List] Where [Migration List].[Mac User] = TRUE AND TargetUserMigrationDate = #" & NextMigrationDate & "#")
MACcount = rs!MACcount
【问题讨论】:
有一个VBA模块很好,但是如果你不分享它,没有人可以帮助你,我害怕...... 可能语言环境会影响结果。 一个更完整的样本可能会很明显见minimal reproducible example。 ***.com/questions/2710621/… 使用Debug.Print
:How to debug dynamic SQL in VBA -- 并检查你们是否链接到相同的数据,并使用相同的日期。
【参考方案1】:
这在这里和那里都可以工作:
Set rs = db.OpenRecordset("SELECT Count(*) As AUSTcount FROM [Migration List] Where BatchNumber Like 'UAUST*' AND TargetUserMigrationDate = #" & Format(NextMigrationDate, "yyyy\/mm\/dd") & "#")
如果您不强制格式,日期值将被转换为本地设置的文本表达式。
【讨论】:
感谢您和所有人。我确认日期格式的差异是罪魁祸首。代码更改就像一个魅力。以上是关于Access VBA 函数为不同的用户产生不同的结果的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vba(access) 中将变量设置为我的表单列表框之一?