Vvmebel.com

Новости с мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access функции работы со строками

Access функции работы со строками

Для данных типа String существует только одна операция — конкатенация (объединение). Например, результатом операции конкатенации трех строковых значений «Петр» & » » & «Иванович» будет строка «Петр Иванович». Возможно также использование другого оператора для операции конкатенации, например: «десяти» + «тысячник». Разница между этими выражениями состоит в том, что в первом случае операндами могут быть значения любого типа (они просто будут преобразовываться в строковые), а во втором — оба операнда должны иметь тип String.

Для работы со строками существует большое количество функций (таблица. Функции работы со строками).

Таблица «Функции работы со строками»

Для сравнения строковых значений можно использовать обычные операторы сравнения числовых значений, так как при сравнении символов сравниваются их двоичные коды.

Для сравнения строковых значений также применяется оператор Like, который позволяет обнаруживать неточное совпадение, например выражение «Входной сигнал» Like «Вход*» будет иметь значение True, так как сравниваемая строка начинается со слова «Вход». Символ звездочка (*) в строке заменяет произвольное число символов. Другие символы, которые обрабатываются оператором Like в сравниваемой строке:

  • ? — любой символ (один);
  • #- одна цифра (0-9);
  • [ ] — символ, совпадающий с одним из символов списка;
  • [! ] — символ, не совпадающий ни с одним из символов списка.

Следующие три функции позволяют работать с массивом строк

  • Split ( [, ]) — преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
  • Join ( [, ]) — преобразует массив строк в одну строку с указанным разделителем.
  • Filter ( , [, ] [, ]) — просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.

Эта функция имеет четыре аргумента:

  • — искомая строка;
  • — параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
  • — параметр, определяющий метод сравнения строк.

Еще три функции обеспечивают преобразование строк:

  • LCase ( ) — преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
  • UCase ( ) — преобразует все символы строки к верхнему регистру;
  • StrConv ( , ) — выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».

И последние две функции генерируют строки символов

  • Space ( ) — создает строку, состоящую из указанного числа пробелов;
  • String ( , ) — создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.

Пример

Создать программу, работающую со строковыми переменными. Для этого создать форму, в метки которой выходят следующие сообщения:

1 метка: сообщается длина строки, введенной в первое текстовое поле (1 строка);

2 метка: преобразует все символы третьего текстового поля (3 строка) в заглавные буквы;

3 метка: выводит вместе содержание первого и второго текстовых полей (1 и 2 строки).

Хороший фреймворк (framework) лучшее решение для безпроблемной работы со строками.

Технология выполнения

  • Откройте приложение Word, сохраните документ и перейдите в редактор VBA.
  • Создайте форму аналогично приведенному рисунку.
  • Пропишите обработчик события кнопки ОК.
  • Откомпилируйте программу.
  • Запустите форму на выполнение.

Форма примера в режиме конструктора и в рабочем состоянии

Access функции работы со строками

Функции обработки строк

Asc преобразует символ в числовое значение.

Chr позволяет получить символ по значению его числового кода ANSI или Unicode.

Filter отбирает в выходной массив строки входного массива в соответствии с заданным образцом.

InStr служит для поиска номера символа, с которого начинается в заданной строке образец поиска.

InStrRev служит для поиска номера символа, с которого начинается в заданной строке образец поиска, поиск идет от указанной позиции справа налево .

Join служит для слияния всех элементов заданного массива в одну строку со вставкой между ними необязательного разделителя .

LCase преобразует символы строки в строчные; все буквы в нижнем регистре и небуквенные символы остаются неизмененными.

Left служит для усечения исходной строки до заданной длины.

Len вычисляет число символов в строке или размер заданной переменной.

LTrim удаляет пробелы в начале строки .

Mid используется для считывания заданного числа символов или байт подряд от заданной позиции в строке слева направо.

Partition служит для определения числовой оси, в который попадает заданное число.

Replace возвращает строку с замененным строковым фрагментом исходной строки.

Right служит для усечения справа исходной строки заданной длины.

RTrim удаляет пробелы в конце строки

Space используется для создания строки с указанным числом пробелов.

Spc используется вместе с инструкцией Print # или методом Print для установки позиции вывода для создания более красивого вида.

Split используется для расщепления строки на субстроки с использованием разделителя субстрок .

Читать еще:  Data access layer

Str используется для приведения числового выражения типа Long в строку (тип String ) .

StrComp служит для сравнения двух строк.

StrConv служит для преобразования всех символов строки в соответствии с заданным видом преобразования.

String используется для создания строки из одинаковых символов .

StrReverse используется для построения заданной строки в обратном порядке .

Tab используется вместе с инструкцией Print # или методом Print для указания позиции вывода для создания более красивого вида.

Trim объединяет действия двух функций LTrim и RTrim, удаляя пробелы как справа, так и слева .

TypeName определяет тип данных переменной или свойства объекта

UCase преобразует символы строки в верхний регистр.

Val служит для преобразования аргумента в числовой тип данных.

Функция Asc

Функция Asc(ASCII code) преобразует символ в числовое значение

В результате действия функции возвращается
Asc — код ANSI первого символа строки типа Integer
AscB — первый байт строки, вне зависимости от кодировки
AscW — Unicode-код для первого символа строки, если система поддерживает Unicode. В остальных случаях аналогична Asc

Параметры String Обязательный аргумент может представлять любое строковое выражение. Если строка не содержит символов, возникает ошибка выполнения Пример

Функция Chr

Функция Chr(Character)позволяет получить символ по значению его числового кода ANSI или Unicode

Функции Chr, ChrB, ChrW возвращают значение субтипа String типа Variant , содержащее символ, соответствующий указанному коду символа ANSI или Unicode. Функции Chr$, ChrB$, ChrW$ возвращают соответственно значение типа String

Chr и Chr$ возвращают символ по его кодировке в стандарте ANSI
ChrB и ChrB$ возвращают однобайтовую строку
ChrW возвращает символ Unicode, однако в системах, не поддерживающих Unicode, ее поведение аналогично Chr
Использование в параметре CharCode значения больше, чем 255, генерирует ошибки стадии выполнения 5: Invalid procedure call or argument или 6: Overflow

Параметры CharCode Обязательный аргумент является значением типа Long , определяющим символ. Обычно, функция Chr применяется при вставке в текстовые строки непечатных символов(возврат каретки, перевод строки, табулятор и т.д.). Коды 0-31 соответствуют стандартным управляющим символам ASCII. Например, Chr(10) возвращает символ перевода строки Пример

Функция Filter

Новая функция, которая появилась в версии Visual Basic 6.0
Функция Filter отбирает в выходной массив строки входного массива в соответствии с заданным образцом(либо только содержащие вхождения заданного образца, либо только не содержащие)

Функция возвращает нулевой строковый массив, содержащий строки, отобранные из входного массива в соответствии с заданным образцом

Параметры SourceArray Обязательный аргумент — одномерный массив строк, в котором производится поиск Match Обязательный аргумент, содержащий поисковую строку-образец для отбора(фильтрации) Include Необязательный аргумент, содержащий булево значение( Boolean ) и указывающий, включают или не включают возвращаемые в качестве ответа строки поисковую строку-образец. Если значение Include равно True, значит возвращаемые подстроки содержат поисковую строку-образец; если False, то результат не содержит поисковую строку-образец Compare Необязательный аргумент — число, указывающее на используемый вид сравнения: vbUseCompareOption=-1 Используются установки, задаваемые оператором Option Compare. Используется по умолчанию vbBinaryCompare=0 Двоичное сравнение. Сравнение строк производится по внутренним кодам символов, определяемых кодовой страницей. Буквы разных регистров считаются разными vbTextCompare=1 Текстовое сравнение. Сравнение строк без учета регистра на основе системной национальной настройки vbDatabaseCompare=2 Сравнение на основе установок, принятых в обрабатываемой базе данных. Применяется в MS Access

Функция InStr

Функция InStr(In String) служит для поиска номера символа(номера байта для InStrB), с которого начинается в заданной строке образец поиска. Поиск идет от указанной позиции слева направо. Поиск вхождения одной строки в другую весьма часто используемая операция. Нумерация символов всегда начинается с единицы

В функции InStr при очень длинных строках при текстовом методе сравнения, возможно возникновение ошибки времени исполнения Stack overflow. Избежать этой ошибки можно, переведя исходную строку и образец в один регистр и перейдя на бинарное сравнение

Возвращает значение типа Variant(Long) , указывающее позицию первого появления одной строки внутри другой

Функции обработки строк в Access и SQL

Функции обработки строк

Для филологических исследований важно уметь работать с текстовыми данными, т.е. последовательностями символов (букв, слов, предложений). Поэтому большое внимание при конструировании лингвистических баз данных следует уделить средствам для обработки строк символов. К функциям обработки строк относятся:

  • • InStr(cтpoкa_l, строка_2) возвращает номер позиции начата строки 2 в строке 1, например InStr(“Лeз, лез и взобрался на небо. ”, возвращает 4;
  • • LCase(cтpoкa l) возвращает символы строки 1 в нижний регистр (все строчные), например LCase(“Боярин”) возвращает «боярин»:
  • • Left(cтpoкa_l, n) возвращает строку 2, содержащую символы строки 1 с номера первого но п, например Left(“Лeз, лез и взобрался на небо. ”, 2) возвращает «Лез»;
  • • Len(строка) возвращает длину строки, например Len(“Лез”) возвращает 3;
  • • Trim(строка_1) возвращает строку 2, содержащую все символы строки 1, кроме начальных и конечных пробелов, например Trim(“И накормила старика. . ”) возвращает («И накормила старика.»);
  • • Mid(cтpoкa_l, n, [k]) возвращает строку 2, содержащую символы строки 1, начиная с символа п до п + k. Если k не указано, возвращаются все символы с номера п до конца строки 1, например Mid(“Лез, лез и взобрался на небо”, 5,3) возвращает «лез»;
  • • Rерlасе(строка_1, найти, заменить, [n], [m]) возвращает строку 2, полученную из строки 1 заменой подстроки Найти на подстроку Заменить. Параметр п – необязательный параметр, он задает номер символа в строке 1, с которого начинается замена. Параметр п по умолчанию = 1. Параметр т – необязательный параметр, который задает число замен, производимых в строке 1. Параметр т по умолчанию = -1, он означает замену всех подстрок Найти на Заменить. Например, Replace(“И накормила старика. ”, “корм”, “по”) возвращает «И напоила старика. «;
  • • Right(cтpoкa_l, n) то же, что Left, только возвращается конец строки, начиная с символа п;
  • • Space(n) возвращает строку из п пробелов, например Space(3) возвращает » «;
  • • StrComp(cтpoкa_l, строка_2) возвращает -1, если строка_1 строка_2 (в смысле лексикографического порядка строк), например StrComp(“Старик прорубил”, “Старик разобрал”) возвращает -1, так как «прорубил»

К типам преобразования относятся следующие операции:

  • 1) строка_1 преобразуется в верхний регистр (все заглавные буквы);
  • 2) строка_1 преобразуется в нижний регистр (все строчные буквы);
  • 3) первая буква каждого слова строки 1 преобразуется в верхний регистр;
  • 4) 64 – все символы строки 1 преобразуются в Юникод;
  • 5) 128 – все символы строки 1 преобразуются из Юникода.

Примеры

Функции и типы преобразования. Функция StrConv(“Он взял да и украл у ней жерновцы”, 3) возвращает «Он Взял Да И Украл У Ней Жерновцы».

Функция String(n, s) возвращает строку, содержащую п символов s. Например, String(5, “Й”) возвращает «ЙЙЙЙЙ».

Функция StrReverse(cтpoкa_l) возвращает символы строки 1 в обратном порядке. Например, StrReverse(“Боярин”) возвращает «ниряоБ».

Функция UCase(cтpoкa_l) возвращает символы строки 1 в верхнем регистре (все прописные). Например, UCase(“Боярин”) возвращает «БОЯРИН».

Для слияния строк применяется оператор &. Например, выражение “чего” & “-” & “нибудь” возвращает строку вида «чего-нибудь».

Функции VBA для работы с текстом

  • ASC ()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
    • AscB () — возвращает только первый байт числового кода для символа.
    • AscW () — возвращает код для символа в кодировке Unicode
  • Chr () — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.

    Dim sWord As String sWord = Chr(34) & «Слово в кавычках» & Chr(34)

    Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
    InStr () и InStrRev ()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.

    Dim sStr As String sStr = «w» If InStr(1, «Hello, World!», sStr, vbTextCompare) > 0 Then MsgBox «Искомое слово присутствует!» Else MsgBox «Искомое слово отсутствует!» End If

    Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
    Left (), Right (), Mid ()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.

    Dim sStr As String sStr = «Hello, World!» MsgBox Mid(sStr, 1, 5)

    Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)

    Dim sStr As String sStr = «Hello, World!» MsgBox StrConv(«Hello, World!», vbUpperCase)

    В качестве второго параметра параметра могут применяться константы:

    • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
    • vbLowerCase: Преобразует все текстовые символы в нижний регистр
    • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
    • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
    • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
    • **vbKatakana: Преобразует символы Hiragana в символы Katakana
    • **vbHiragana: Преобразует символы Katakana в символы Hiragana
    • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
    • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию

    * применимо для локализацией Дальнего востока
    ** применимо только для Японии
    *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse () — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab () — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String () — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
  • Строковые функции и их использование

    Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

    С помощью строковых функций в Access, работать с текстом в различных способов можно создавать выражения. Например можно отобразить только часть в числовом формате в форме. Или может потребоваться join (СЦЕПИТЬ) несколько строк друг с другом, например имени и фамилии. Если вы еще не способности выражения, ознакомьтесь со статьей Создание выражений.

    Вот перечислены некоторые самые распространенные строковые операции в Access и функции, которые можно использовать для их выполнения.

    Возврат знаков с начала строки

    Если [СерийныйНомер] = «CD234», результат — «CD»

    Возврат знаков с конца строки

    Если [СерийныйНомер] = «CD234», результат — «234»

    Поиск позиции знака в строке

    Если [Имя] = «Алексей», результат — 4

    Возврат знаков из середины строки

    Если [СерийныйНомер] = «CD234», результат — «D2»

    Удаление начальных и конечных пробелов из строки.

    Если [Имя] = » Алексей «, результатом будет: «Алексей».

    Объединение двух строк

    Оператор «знак плюс» (+)*

    Если [Имя] = «Алексей», а [Фамилия] = «Орехов», результат — «АлексейОрехов»

    Объединение двух строк с пробелом между ними

    Оператор «знак плюс» (+)*

    Если [Имя] = «Алексей», а [Фамилия] = «Орехов», результат — «Алексей Орехов»

    Изменения регистра строки на верхний или нижний

    Если [Имя] = «Алексей», результат — «АЛЕКСЕЙ»

    Определение длины строки

    Если [Имя] = «Алексей», результат — 7

    * Ну хорошо, это не функция, а оператор. Но зато это самый быстрый способ объединения строк. В базе данных на компьютере для этой цели можно также использовать оператор «амперсанд» (&), а в приложении Access — только знак «плюс» (+).

    Функций для работы с текстом в Access очень много. Чтобы познакомиться с ними, просто откройте построитель выражений и просмотрите списки функций. Его можно открыть практически из любого места, где разрешено создавать выражения. Обычно нужно нажать маленькую кнопку Построение, которая выглядит вот так: .

    Чтобы продемонстрировать построителя выражений, открытие ее из свойство Данные в форму или представление. Воспользуйтесь одним из описанных ниже в зависимости от используемой базы данных на компьютере или веб-приложения Access.

    Запуск построителя выражений в базе данных на компьютере

    Откройте базу данных на компьютере (ACCDB-файл).

    Если область навигации еще не открыта, откройте ее с помощью клавиши F11.

    Если у вас уже есть какая-нибудь форма, щелкните ее в области навигации правой кнопкой мыши и выберите пункт Режим макета. Если форм у вас пока нет, на вкладке Создание нажмите Форма.

    Щелкните правой кнопкой мыши текстовое поле в форме и выберите пункт Свойства.

    На странице свойств нажмите Все > Данные, а затем — кнопку Построение в правой части поля свойства Данные.

    В разделе Элементы выражений разверните узел Функции и выберите пункт Встроенные функции.

    В разделе Категории выражений выберите пункт Текстовые.

    В разделе Значения выражений выберите интересующие вас функции и прочитайте их краткое описание в нижней части построителя выражений.

    Примечание: Не каждая из этих функций доступна в любом контексте. Access автоматически фильтрует список в зависимости от контекста.

    Запуск построителя выражений в веб-приложении Access

    Откройте веб-приложение в Access. Если вы просматриваете в браузере, щелкните Параметры > настроить в Access.

    Щелкните таблицу в левом столбце, а затем в правой части списка таблиц выберите представление.

    Нажмите Изменить, щелкните текстовое поле, а затем нажмите кнопку Данные, которая появится около этого поля.

    Нажмите кнопку Построение справа от раскрывающегося списка Данные.

    В разделе Элементы выражений разверните узел Функции и выберите пункт Встроенные функции.

    В разделе Категории выражений выберите пункт Текстовые.

    В разделе Значения выражений выберите интересующие вас функции и прочитайте их краткое описание в нижней части построителя выражений.

    Комбинирование текстовых функций для большей гибкости

    Иногда при каждом вызове строковой функции приходится заново вычислять ее числовые аргументы. Например, функция Left принимает строку и число, как здесь: =Left([СерийныйНомер], 2). Хорошо, если вам всегда требуются именно два первых знака строки, но иногда нужное число знаков для разных элементов различно. Вместо того чтобы однозначно задавать число знаков, его можно вычислять с помощью другой функции.

    Ниже приведены примеры серийных номеров, в каждом из которых есть дефис, но в разной позиции.

    Ссылка на основную публикацию
    Adblock
    detector