【发布时间】:2020-02-23 19:58:53
【问题描述】:
我在 MS Access 表中有一个字段,其中包含人们的中间名,我需要在 SQL 查询中获取每个名称的首字母(首字母)。该字段称为“middle_names”
例如如果 middle_name 是“John David”,我希望输出为“J D”。如果 middle_name 是“John”,我希望输出为“J”。
我找到了一些应该执行此操作的 VBA 代码,但是当我在 SQL 查询中调用它时出现错误 -
标准表达式中的数据类型不匹配
该字段是“文本”类型,这是 VBA:
Function GetFirstLetters(middlename As String) As String
Dim arr
Dim I As Long
arr = VBA.Split(middlename, " ")
If IsArray(arr) Then
For I = LBound(arr) To UBound(arr)
GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
Next I
Else
GetFirstLetters = Left(arr, 1)
End If
End Function
当我在我的 SQL 查询中调用代码时,例如:GetFirstLetters(middle_name),我得到了上面提到的错误。
【问题讨论】:
-
你不能直接找到
space并得到第一个字符吗? -
此错误可能意味着您的
middle_name列中有一些 NULL 值。 -
@trincot 啊,是的,你是对的。你知道有什么方法可以解决这个问题吗?