Access VBA中DMin功能的溢出错误

时间:2014-10-29 13:26:55

标签: access-vba ms-access-2003

我在Ms-Access VBA中使用DMin功能,如下所示 Dim MinVal为整数 MinVal = DMin(" ARRID"," Tbl_abc"," [RequestStatus] = 1 AND [WorkInProgress] = -1")

上面的功能工作正常,直到将近一年,突然间它给了我溢出错误。我在自动编号上执行此Dmin,因此没有Null / 0的机会。 理想情况下,MinVal应该是40316,数据也不是很大。我尝试过压缩和修复数据库。仍然问题仍然存在。但是,当我从访问查询运行上述DMin时它工作正常。它只是在VBA中才没有发现。

任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:2)

您需要将Dim MinVal As Integer更改为Dim MinVal As LongInteger(16位)的最大值为32,767,而Long(32位)的最大值超过20亿。 Access在内部将Autonumbers存储为32位Longs,因此查询始终有效。完成上一次ARRID< = 32767请求的工作后,您的VBA必须将32位值放入16位框中。溢出是您的警告,转换将是不正确的。让你的盒子更大!