Sql VBA函数在Access查询中的应用

Sql VBA函数在Access查询中的应用,sql,vba,ms-access,Sql,Vba,Ms Access,我想使用MS access编写一个SQL查询,它使用VBA函数计算序列号 我有一个很大的“samplebasicinformation”表,它有很多外键,并且希望使用外键表中的文本字段来创建基于文本的序列号 我希望查询的第一个字段缩写其他表中的几个文本字段,然后连接它们并创建这个序列号 为了缩短文本字段,我有以下功能: Function GetFirstLetters(rng As String) Dim arr Dim I As Long arr = VBA.Split(rng, "

我想使用MS access编写一个SQL查询,它使用VBA函数计算序列号

我有一个很大的“samplebasicinformation”表,它有很多外键,并且希望使用外键表中的文本字段来创建基于文本的序列号

我希望查询的第一个字段缩写其他表中的几个文本字段,然后连接它们并创建这个序列号

为了缩短文本字段,我有以下功能:

Function GetFirstLetters(rng As String)
Dim arr
Dim I As Long
arr = VBA.Split(rng, " ")
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来实现这一点,但由于语法错误而失败

SELECT 
(getfirstletters(select sl.locationname from samplebasicinformation as sbi join samplelocation as sl 
on sbi.samplelocationid = sl.samplelocationid)), 
samplebasicinformationid 
from samplebasicinformation as sbi1

有人能提供一些建议吗?

您需要为函数提供一个列

你的问题相当令人困惑,我认为很简单:

选择
getfirstletters(sl.locationname),
sbi.samplebasicinformationid
作为sbi的样本基础信息
内部连接采样位置为sl
在sbi.samplelocationid=sl.samplelocationid上

请注意,您需要在Access Sql中使用
内部连接

强制链接:第一次工作,感谢您提醒我最近没有看《角斗士》。谢谢你,安德烈!