我在Ms-Access VBA中使用DMin功能,如下所示 Dim MinVal为整数 MinVal = DMin(" ARRID"," Tbl_abc"," [RequestStatus] = 1 AND [WorkInProgress] = -1")
上面的功能工作正常,直到将近一年,突然间它给了我溢出错误。我在自动编号上执行此Dmin,因此没有Null / 0的机会。 理想情况下,MinVal应该是40316,数据也不是很大。我尝试过压缩和修复数据库。仍然问题仍然存在。但是,当我从访问查询运行上述DMin时它工作正常。它只是在VBA中才没有发现。
任何帮助都会得到满足。
答案 0 :(得分:2)
您需要将Dim MinVal As Integer
更改为Dim MinVal As Long
。 Integer
(16位)的最大值为32,767,而Long
(32位)的最大值超过20亿。 Access在内部将Autonumbers存储为32位Longs,因此查询始终有效。完成上一次ARRID< = 32767请求的工作后,您的VBA必须将32位值放入16位框中。溢出是您的警告,转换将是不正确的。让你的盒子更大!