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

Cod*_*nis 24 ms-access

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

SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 31

您可以使用VBA字符串函数(如@onedaywhen指出,在评论中,他们是不是真正的VBA功能,但它们的等价物从MS喷气机库.至于函数签名去,他们被称为和工作一样,甚至虽然MS Access 的实际存在不是必需的,但它们是可用的.):

SELECT DISTINCT Left(LastName, 1)
FROM Authors;

SELECT DISTINCT Mid(LastName, 1, 1)
FROM Authors;
Run Code Online (Sandbox Code Playgroud)

  • 挑剔点:涉及的dll是(我相信)Expsrv.dll和vbajet32.dll,MS文档统称为Jet Expression Services.所以我认为我们可以将它们视为本机ACE/Jet表达式,而不是上下文中的"VBA函数".注意一些表达式在ACE/Jet中的工作方式与它们的等效VBA函数不同,例如IIF():VBA总是计算true和false子句,而ACE/Jet则不会. (3认同)
  • 我猜这就是Nz()在本机Access中可用的原因,但是当你从Excel运行查询时却没有. (2认同)

JP *_*oto 6

我认为Access中有MID()和LEFT()和RIGHT().


web*_*bzy 5

我经常使用 msaccess vba。我认为你正在寻找 MID 功能

例子

    dim myReturn as string
    myreturn = mid("bonjour tout le monde",9,4)
Run Code Online (Sandbox Code Playgroud)

会给你返回值“tout”