【发布时间】:2010-10-22 23:42:00
【问题描述】:
我想在 MS Access 查询中执行类似的操作,但 SUBSTRING 是一个未定义的函数。
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
【问题讨论】:
标签: ms-access
我想在 MS Access 查询中执行类似的操作,但 SUBSTRING 是一个未定义的函数。
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
【问题讨论】:
标签: ms-access
您可以使用 VBA 字符串函数(正如 @onedaywhen 在 cmets 中指出的那样,它们并不是真正的 VBA 函数,而是 MS Jet 库中的等效函数。就函数签名而言,它们被调用并工作相同,即使 MS Access 的实际存在 并不需要它们可用。):
SELECT DISTINCT Left(LastName, 1)
FROM Authors;
SELECT DISTINCT Mid(LastName, 1, 1)
FROM Authors;
【讨论】:
我认为 Access 中有 MID() 和 LEFT() 和 RIGHT()。
【讨论】:
我在 msaccess vba 上工作过很多次。 我认为您正在寻找 MID 功能
例子
dim myReturn as string
myreturn = mid("bonjour tout le monde",9,4)
会给你返回值“tout”
【讨论】:
我找不到添加此功能的现成模块,所以我写了一个:
在 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
【讨论】:
我使用了如下更新查询:我在访问表中添加了一个空列,用于存储我需要的字符串元素。然后我在“UpdateTo”行中用更新查询填充了新列:“Mid([TABLE].[FIELD],3,1)”,因为我需要该字段的 3 个字符。前面的答案把我带到了这里(谢谢)。
【讨论】: