首页 > 解决方案 > 你可以使用带有 N 前缀的 DLookUp 函数吗?

问题描述

我正在尝试使用 DLookUp 函数在与 sql 链接的表上搜索特定值。但是,我正在搜索的字符串是泰语。这是我的代码。

Dim cust_Id1 As Variant: cust_Id1 = DLookup("[CustID]", "dbo_TblCustomer", _
                                        "FullName=" & "'" & CustName & "'")
CustID.Value = cust_Id1

我想要做的是通过客户的名字找到客户的 id 并将其存储在一个变量中。我知道我可以像下面的代码一样查询 SQL。

SELECT CustID
  FROM [aTable].[dbo].[TblCustomer]
  WHERE FullName LIKE N'นามสมมุติ'

有没有办法使用 DLookUp 函数来做到这一点?如果没有,还有什么其他方法可以获取 CustID 值?

标签: sql-servervbams-access

解决方案


您不需要N'在 Access SQL 中。所有字符串都是 unicode (UTF-16) 字符串。

但是请注意,VBE 不支持 unicode 字符串,MsgBox也不支持它,因此在调试时它可能会显示不正确。但是查找应该可以正常工作。

但是,您的代码应该可以正常工作,如果不能正常工作,则可能不是由于 unicode 字符串。

另请注意,您的代码对 SQL 注入是开放的。您可能想要使用参数


推荐阅读