MS Access 2010“您输入的表达式“|”无效。”

MS Access 2010“您输入的表达式“|”无效。”

这是一个非常奇怪的问题,我希望有人能解决它。

当我在数据库中工作并尝试按列和超过 1 个值过滤表时出现此错误。

例如,如果我想使用 X 和 Y 作为过滤选项按 B 列过滤表格。如果我只选择 X,过滤会很顺利,但是如果选择了多个过滤选项,就会出错。如果您在其中一个基本表格中,就会发生这种情况,当您在另一个表单页面中调用该表格时,也会发生这种情况。

极其奇怪的是,这个特定的数据库在过去几年中拥有来自不同时期的大约 20 个备份,并且错误在所有备份中都激增,尽管有些备份自错误开始发生以来从未被打开和保存过。它还扩散到数据库内的所有表中(即使是那些很长时间没有更改的表)。

以下是我注意到错误时发生的情况(我想这可能是根本原因)。我将数据行添加到其中一个表(在 MS ACCESS 中)的底部,并将其从 MS Excel 列中提取出来,该列具有连接公式,可从其他列生成值。我的理论是,它从 Excel 复制了公式并将其粘贴到 Access 中,但看起来好像粘贴了值。几乎就像 Java 脚本中的非打印字符。我将整个表拉入 Excel 中,没有找到“|”。

我注意到了一些事情:

  1. 我删除了复制到 Access 中的表行,然后手动输入数据,但没有成功。
  2. 我在同一个数据库中创建了一个空白表,DOES NOT如果仅手动添加新数据,该表会抛出错误,但如果从旧表中拉出一行或一列并将其复制到其中,则会抛出错误。即使复制的数据不包含我觉得搞砸了的新信息。(这毫无意义,让我认为其中一个列标题在数据库的其他地方有一个链接到它的表达式。唯一的问题是即使使用新的列标题,错误仍然存​​在。)

这几乎看起来就像过滤器本身已经发生了某种改变。

任何帮助解决此问题的帮助都将不胜感激。请注意,在数据库方面,我是一个极端的新手,所以请尽量让答案通俗易懂。
谢谢,谢谢,谢谢!

答案1

我们收到了相同的错误消息,解决方案是调整 Windows(控制面板/区域设置)中的日期格式,使其与表格的短日期格式定义相同。在我们的例子中,表格定义了以下字段日期格式:yyyy.mm.dd(当我在设计视图中显示它时),而在 Windows(控制面板/区域设置)中,我们有“yyyy.MM.dd”。我注意到此设置中月份和日期部分前面有空格,因此我打开列表,选择最上面的一个(yyyy.mm.dd - 没有空格),然后应用设置,我返回 Access,甚至我没有关闭它,只是重新打开表格,我能够通过选择进行过滤。祝你好运。Kr,Balazs

答案2

经过大量测试,我发现只要数字字段中有超过 3 个不同的值(无论哪种类型),就会发生错误。如果您将第 4 个值改回三个值之一,过滤器就会再次正常。所以这似乎是 MS Access 中的一个主要错误!!!我正在使用最新版本的 Office 365!

答案3

您可能需要将系统设置(在控制面板/区域和语言选项中)的列表分隔符更改为“;”。这为我解决了这个问题。

相关内容