首页 > 解决方案 > 带有 unicode 字符的未绑定字段

问题描述

在屏幕 UI 上,使用未绑定字段输入混合的 ASCII 和 Unicode 字符串进行搜索。在屏幕上,它是正确的 - 例如“白色白色”。但是,在 VBA 代码中,未绑定字段的 Unicode 字符变为“?” 并且不能用于搜索 - “白色??” 对于上面的例子。如何在 VBA 代码的屏幕上获得混合的 ASCII 和 Unicode 字符串?

下面是我的代码。Me.txName 是未绑定的文本字段, fiterstr 是子表单过滤器。如果名称全是 ASCII,它可以工作。如果输入了 Unicode,它将搜索“?”。

Dim filterstr As String
If Me.txName <> "" Then
    filterstr = "(Customer.Company LIKE '*" & Me.txName & "*')"
End If

Me.sfmCustomerList4Search.Form.Filter = filterstr

标签: ms-accessvba

解决方案


在 Erik A. 的帮助下,这个问题已经解决了。关于我的问题,有两个问题。

  1. Access Msgbox 不支持 unicode。Erik A. 在这里写了一个兼容 unicode 的消息框实现MsgboxW

  2. 数据存储在 SQL Server 中,而 Access 是前端 UI。SQL 排序规则必须设置为与 Unicode 语言兼容。请参阅查看MS SQL 的中文排序规则


推荐阅读