Microsoft Access 查询中的计算字段在具有不同数据的不同计算机上突然失败

Caculated field in Microsoft Access query suddenly fails on different machine with different data

在以下查询中,calcValB 在更改 table 中的数据后突然开始显示所有记录的 #Error。好像突然认不出来了calcValA.

SELECT
  FilePath1,
  cfgVal1 + InStr(Mid(FilePath1, cfgVal1), "\") AS calcValA,
  calcValA + InStr(Mid(FilePath1, calcValA), "\") AS calcValB,
  ...
 FROM
   Table1,
   Config
 WHERE ...

cfgVal1 的值为 60; Len(FilePath1) 总是大于 80; FilePath1 在位置 60 后至少包含一个 \

我可以使用嵌套查询解决这个问题,但我想知道这是怎么发生的。

我尝试了什么:

我目前怀疑问题可能出在具有不同区域设置的计算机上的 Access 运行。我用的是斯洛伐克语,同事用的是 U.S。我已经在 Access 中看到,例如表单部分 Časť1(第 1 部分)在 U.K 上引发错误。语言环境机器。 (有趣的是,Access 默认将本地化名称放在那里!)但在这种情况下,我确保查询仅为 7 位 ASCII。

示例数据:

Table1.FilePath1(2 条记录)

a:\a111111\aaaaaa\aaaa\aaaaaaaaaaa\aaaaaa\aaaa aaaaaaa\aa-1\aa\aa1111111\aaaaaaa\aaaaaaa.aaa
a:\a111111\aaaaaa\aaaa\aaaaaaaaaaa\aaaaaa\aaaa aaaaaaa\aa-1\aa\aa1111111\aaaaaaaa\aa1111111.aaaa

Config.cfgVal1 = 61(table中有一条记录)

问题是,查询和数据在我的机器上工作,它们在同事的机器上不工作。

压缩并修复数据库。

执行数据库工具 > 压缩和修复数据库命令后,查询再次开始正常工作。而不是 #Error 值,适当的数字开始出现在 calcValB.

如果数据库中的源 table 作为链接 table(来自另一个数据库),对实际包含 table 的数据库文件执行相同的操作(不仅对于 table 显示为链接 table) 的数据库文件。

从此类错误中恢复后,最好检查 table.

中是否没有任何记录丢失