【问题标题】:MS Access Text Field Special CharactersMS Access 文本字段特殊字符
【发布时间】:2015-06-15 15:29:38
【问题描述】:

我有一个执行此applyfilter 宏代码的搜索按钮:

[ContractNumber] Like "*" & [Forms]![frmContractMatch&Revenue]![Text44] & "*"

因此它在文本框text44 中搜索适当的ContractNumber。我遇到的麻烦是,例如,如果合同号是ART#45,由于特殊字符#,它将无法在数据库中找到它。

我该如何解决这个问题?问题是合约可能有不同的特殊字符,或者根本没有,所以我不能让它一直专门搜索特定的符号。

【问题讨论】:

  • 我不完全相信 # 在这种情况下是您的问题,请尝试 [ContractNumber] Like "'*" & [Forms]![frmContractMatch&Revenue]![Text44] & "*'" (注意单引号表明它是一个字符串)。
  • 除了#,还需要处理哪些特殊字符?
  • 我尝试了单引号,但无济于事。我不确定我将处理哪些其他特殊字符,但如果可以构建代码来处理多个特殊字符,那就太好了。现在它只有在我搜索一个包含所有文本或数字的 ContractNumber 时才有效,例如:“LRV57”,或者如果我只搜索文本部分,例如:ART”。我输入 # 符号的那一刻,它什么也没找到。跨度>
  • 当您说代码时,您实际上是指 Access 宏还是实际的 VBA 代码?
  • 哎呀,只是带有 where 条件的宏。

标签: ms-access special-characters


【解决方案1】:

Access 使用 # 作为单个数字字段的通配符。当您创建搜索字段并包含 #(例如 ART#)时,Access 会将其解释为“我正在搜索字符串 'ART' 后跟单个数字字符 0-9”它使用 '?'、'%' , 和 '-' 类似。为了解决这个问题,您需要更改输入字符串并将文字特殊字符括在方括号中。所以不要搜索:

'ART#'

你会搜索:

'ART[#]'

你如何解决这个问题?取决于您输入搜索条件的方式。这个区域并不是我真正的强项,但根据输入搜索的方式,您可能会使用自定义函数在过滤表单之前将方括号添加到您的参数中。我个人会通过代码防止在订单号中使用特殊字符。

【讨论】:

  • 好的,谢谢!我们将消除特殊字符的使用,因为我认为这会加快进程。
猜你喜欢
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多