Подтвердить что ты не робот

Существует ли эквивалент функции SUBSTRING в MS Access SQL?

Я хочу сделать что-то подобное в запросе MS Access, но SUBSTRING - это функция undefined.

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

Ответ 1

Вы можете использовать строковые функции VBA (поскольку @oneday, когда указывает на комментарии, они не являются функциями VBA, но их эквиваленты из библиотек MS Jet. Что касается сигнатур функций, они вызываются и работают то же самое, хотя фактическое присутствие MS Access для них не требуется.):

SELECT DISTINCT Left(LastName, 1)
FROM Authors;

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

Ответ 2

Я думаю, что есть MID() и, возможно, LEFT() и RIGHT() в Access.

Ответ 3

Я много работал с msaccess vba. Я думаю, что вы ищете функцию MID

Пример

    dim myReturn as string
    myreturn = mid("bonjour tout le monde",9,4)

вернет вам значение "tout"

Ответ 4

Я не смог найти готовый модуль, который добавил эту функцию, поэтому я написал один:

В разделе "Доступ" перейдите на ленту "Инструменты базы данных", в области "Макро" нажмите "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