Существует ли эквивалент функции SUBSTRING в MS Access SQL?
Я хочу сделать что-то подобное в запросе MS Access, но SUBSTRING - это функция undefined.
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
Ответы
Ответ 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