我想在MS Access查询中执行类似的操作,但SUBSTRING是一个未定义的函数。
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
答案 0 :(得分:31)
你可以使用VBA字符串函数(如@oneday在评论中指出的那样,它们实际上不是VBA函数,而是来自MS Jet库的等价物。就函数签名而言,它们被调用并运行同样,即使MS Access的实际存在不需要它们可用。):
SELECT DISTINCT Left(LastName, 1)
FROM Authors;
SELECT DISTINCT Mid(LastName, 1, 1)
FROM Authors;
答案 1 :(得分:6)
我认为Access中有MID()和LEFT()和RIGHT()。
答案 2 :(得分:3)
我使用ms access vba工作了很多。 我想你正在寻找MID功能
示例
dim myReturn as string
myreturn = mid("bonjour tout le monde",9,4)
将返回值n#34; tout"
答案 3 :(得分:2)
我找不到添加此功能的现成模块,所以我写了一篇:
在Access中,转到“数据库工具”功能区,在“宏”区域中单击“Visual Basic”。在左上角的项目区域中,右键单击文件名,然后选择插入 - >模块。在模块粘贴这个:
Public Function Substring_Index(strWord As String, strDelim As String, intCount As Integer) As String
Substring_Index = delims
start = 0
test = ""
For i = 1 To intCount
oldstart = start + 1
start = InStr(oldstart, strWord, strDelim)
Substring_Index = Mid(strWord, oldstart, start - oldstart)
Next i
End Function
将模块另存为module1(默认值)。您现在可以使用以下语句:
SELECT Substring_Index([fieldname],",",2) FROM table
答案 4 :(得分:0)
我使用了一个更新查询,如下所示:我在访问表中添加了一个空列,用于我需要的字符串元素。然后,我在“UpdateTo”行中使用此逻辑在新列中填充了一个更新查询:“Mid([TABLE].[FIELD],3,1)”,因为我正好需要该字段的 3 个字符。前面的回答把我带到了这里(谢谢)。