繁体   English   中英

访问:在字段上过滤表单 - 当字段包含撇号时失败

[英]Access: Filtering form on field - fails when fields contains an apostrophe

我有一个连续形式的过滤器,它使用组合框来匹配 select 条记录; 代码是:

Private Sub SelectHospitalCbo_AfterUpdate()

   Me.Filter = "[ContactHospital] = " & "'" & Me.SelectHospitalCbo & "'"
   Me.FilterOn = True
   
End Sub

这工作正常,直到我发现如果 ContactHospital 字段包含撇号(例如儿童医院),我会收到一条错误消息:

运行时错误“3075”:查询表达式“[ContactHospital] = 'Children's Hospital”中存在语法错误(缺少运算符)。

我明白为什么会发生错误,但我找不到解决方法。 最近在这个论坛上的一个问题似乎和我有类似的问题,但是没有答案。 这是否意味着我无法绕过它?

如果有人想建议从医院名称中删除所有撇号,我会考虑,但不幸的是,该数据库与(更大的)数据库交互,其中医院名称无法更改且必须匹配,所以这不是我的选择。

来自更多经验的任何帮助 Access 开发人员表示赞赏!

选项:

  1. 按数字医院 ID 而不是其名称过滤

  2. "[ContactHospital] = '" & Replace(Me.SelectHospitalCbo, "'", "''") & "'"

  3. "[ContactHospital] = """ & Me.SelectHospitalCbo & """"

  4. "[ContactHospital] = " & Chr(34) & Me.SelectHospitalCbo & Chr(34)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM