是否与MS Access SQL中的SUBSTRING函数等效?

时间:2009-04-30 21:14:15

标签: ms-access

我想在MS Access查询中执行类似的操作,但SUBSTRING是一个未定义的函数。

SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;

5 个答案:

答案 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 个字符。前面的回答把我带到了这里(谢谢)。