Light-electric.com

IT Журнал
20 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Функция mid в access

Запросы и Отчеты

Привет all!
Хотелось бы задать вопрос, как мне сделать такую штуку. В таблице есть одна графа адрес, он идет ‘индекс город улица дом строение корпус квартира’ ну вообщем примерно так но чегото может и не быть. Как мне сделать так чтобы индекс город улицу и тд вытащить в отдельную таблицу, вообщем разбить из 1 поля в несколько

И еще существует отчет, есть ли возможность разбить на 2 колонки (для печати)

название | название
адрес | адрес
что-то | что-то

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

Отчеты и запросы
Доброго времени суток всем! Ребята, не могли бы Вы пожалуйста ответить на пару моих вопросов?. А.

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

Запросы, отчеты на запросах
Добрый день, уважаемые форумчане! Попал в такую ситуацию, не получается создать запросы, прошу.

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

Выделить из строки нужные данные можно.
Но если данные не имеют формального разделителя, например, запятой — ‘Индекс, Город. ‘, то выделить _полностью_автоматически_ не получится.
Из вашего сообщения следует, что данные разделены пробелом, но если ориентироваться на пробел как на разделитель, то будут неправильно выделены ‘Нижний Новгород’, ‘ул.40 лет Октября’ и т.п.
Напишите запросы, программу обработки, а потом подправьте руками (могут быть ещё и опечатки). Если записей немного, то просто руками будет быстрее.

Самый простой вариант делать отчёт в 2 колонки — создать временную таблицу из 2-х полей, в которую перебросить данные из основной таблицы. Одно поле справа будет правой колонкой, а поле слева — левой колонкой.

Выделить из строки нужные данные можно.
Но если данные не имеют формального разделителя, например, запятой — ‘Индекс, Город. ‘, то выделить _полностью_автоматически_ не получится.
Из вашего сообщения следует, что данные разделены пробелом, но если ориентироваться на пробел как на разделитель, то будут неправильно выделены ‘Нижний Новгород’, ‘ул.40 лет Октября’ и т.п.
Напишите запросы, программу обработки, а потом подправьте руками (могут быть ещё и опечатки). Если записей немного, то просто руками будет быстрее.

Вот в этой программе обработки и проблема, а насчет того что может быть не правильно это будет проще проверить и исправить что не правильно, записей много к сожалению

С отчетом получилось, Спасибо

Алгоритм может быть примерно таким:
1. создать временную таблицу из 10-20 текстовых полей или больше
2. создать recordset из полей с адресом
3. пробежать по записям в recordset’е
4. Instr находит пробелы, Mid$ выделят подстроки
5. выделенные подстроки записывать в поля временной таблицы
6. с помощью SELECT DISTINCT составить справочник по данным из временной таблицы
7. главный пункт — ‘и тщательно обработать напильником’

Буду рад, если это чем-то вам поможет.

4. Instr находит пробелы, Mid$ выделят подстроки

Извините но у меня совершенно не получаеться, можно как нибудь написать как использовать эти операторы, справки по ним я тоже не нашел (((

Из справки Access 97:

Функция Mid — возвращает значение типа Variant (String), содержащее указанное число символов строки.

Синтаксис Mid(string, start[, length])

Синтаксис функции Mid содержит следующие именованные аргументы:
Элемент Описание
string Обязательный. Строковое выражение, из которого извлекаются символы. Если string имеет значение Null, возвращается значение Null.
start Обязательный. Значение типа Long. Позиция символа в строке string, с которого начинается нужная подстрока. Если start больше числа символов в строке string, функция Mid возвращает пустую строку (»).
length Необязательный. Значение типа Variant (Long). Число возвращаемых символов. Если этот аргумент опущен или превышает число символов, расположенных справа от позиции start, то возвращаются все символы от позиции start до конца строки.

Функция InStr — возвращает значение типа Variant (Long), указывающее позицию первого вхождения одной строки внутри другой строки.

Синтаксис InStr([start, ]string1, string2[, compare])

Синтаксис функции InStr содержит следующие аргументы:
Элемент Описание
start Необязательный. Числовое выражение, задающее позицию, с которой начинается каждый поиск. Если этот аргумент опущен, поиск начинается с первого символа строки. Если start имеет значение Null, возникает ошибка. Указание аргумента start является обязательным, если указан аргумент compare.
string1 Обязательный. Строковое выражение, в котором выполняется поиск.
string2 Обязательный. Искомое строковое выражение.
compare Необязательный. Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0, 1 или 2. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1.

Учебник SQL

Урок 8. Использование функций манипулирования данными

В этом уроке вы узнаете, что такое функции, какие типы функций поддерживаются в СУБД и как их можно применять. Вы также узнаете, почему использование SQL-функций может быть проблематичным.

Что такое функция

Как и в большинстве других языков программирования, в SQL поддерживается использование функций для манипулирования данными. Функции – это операции, которые обычно производятся над данными, чаще всего для облегчения преобразований и манипулирования.

Примером может служить функция RTRIM(), которую мы использовали в предыдущем уроке для удаления пробелов в конце строки.

Проблемы с функциями

Перед тем как начать урок и рассмотреть примеры, обращаю ваше внимание на то, что использование SQL-функций может быть проблематичным.

В отличие от SQL-операторов (например, SELECT), которые в основном поддерживаются всеми СУБД одинаково, в разных СУБД могут применяться различные функции. Только некоторые функции в различных СУБД выполняются одинаково. И хотя все типы функций обычно доступны в каждой СУБД, реализация этих функций может значительно отличаться. Чтобы стало понятно, насколько это может быть проблематичным, в табл. 8.1 перечислены три наиболее часто используемые функции и их синтаксис в различных СУБД.

Таблица 8.1. Различия в функциях СУБД

Как видите, в отличие от SQL-операторов, SQL-функции не относятся к числу переносимых. Это означает, что код, который вы напишете для одной реализации SQL, может не работать в другой.

Переносимый код

Код, который может работать в разных системах.

Учитывая переносимость кода, многие SQL-программисты стараются не использовать зависящие от реализации функции. Несмотря на то что это довольно благородная и в чем-то идеальная позиция, она не всегда вписывается в интересы приложения с точки зрения производительности. Ему приходится использовать другие методы выполнения того, что СУБД сделала бы более эффективно.

Стоит ли использовать функции?

Итак, вы пытаетесь решить, использовать функции или нет. Это решение зависит от вас, и здесь нет правильного или неправильного выбора. Если вы решили использовать функции, дописывайте подробные комментарии к коду, чтобы в будущем вы (или другой разработчик) могли узнать, для какой реализации SQL писался данный код.

Использование функций

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

  • Текстовые функции; используются для управления текстовыми строками (например, для обрезания или заполнения значений и преобразования значений в верхний или нижний регистр).
  • Числовые функции; используются для выполнения математических операций над числовыми данными (например, для вычисления абсолютных значений и выполнения алгебраических вычислений).
  • Функции даты и времени; используются для управления значениями даты и времени и для выборки отдельных частей этих значений (например, для возвращения разницы между датами и проверки даты на корректность).
  • Системные функции; возвращают информацию, специфичную для используемой СУБД (например, возвращают регистрационную информацию пользователя).
Читать еще:  Vba access dlookup

В предыдущем уроке встречалась функция, которая использовалась в списке столбцов выражения SELECT, но это допустимо не для всех функций. Функции можно использовать как в других частях оператора SELECT (например, в условии WHERE), так и в других SQL-операторах (об этом вы узнаете в дальнейших уроках).

Функции манипулирования текстом

В примере функций манипулирования текстом в седьмом уроке функция RTRIM() использовалась для удаления пробелов в конце значения столбца. Ниже приведен еще один пример, в котором используется функция UPPER():

Функция UPPER() преобразует текст в верхний регистр и, таким образом, в этом примере имя каждого изготовителя перечислено дважды: первый раз в таком виде, в каком оно хранится в таблице Vendors, а второй раз – будучи преобразованным в верхний регистр, в виде столбца vend_name_upcase.

В табл. 8.2 перечислены наиболее часто используемые функции манипулирования текстом.

Один элемент из табл. 8.2 требует более подробного объяснения. SOUNDEX – это алгоритм, преобразующий текстовую строку в буквенно-цифровой шаблон, описывающий фонетическое представление данного текста. Функция SOUNDEX берет в расчет похожие по звучанию буквы и слоги, позволяя сравнивать строки не по тому, как они пишутся, а по тому, как они звучат. Хотя SOUNDEX не подпадает под основные концепции SQL, большинство СУБД осуществляют поддержку этой функции.

Таблица 8.2. Наиболее часто используемые функции манипулирования текстом

Поддержка SOUNDEX

Функция SOUNDEX() не поддерживается Microsoft Access или PostgreSQL, поэтому следующий пример не будет работать в этих СУБД.

Ниже приведен пример использования функции SOUNDEX (). Клиент Kids Place находится в таблице Customers и имеет контактное лицо Michelle Green. Но что, если это опечатка и на самом деле контактное лицо пишется как Michael Green? Очевидно, поиск по корректному имени ничего не даст, это показано ниже:

А теперь попробуйте выполнить поиск при помощи функции SOUNDEX(), чтобы найти все имена контактных лиц, которые звучат как Michael Green:

В этом примере в предложении WHERE используется функция SOUNDEX () для преобразования значения столбца cust_contact и искомой строки в их SOUNDEX-значения. Так как Michael Green и Michelle Green звучат одинаково, их SOUNDEX-значения совпадут и предложение WHERE корректно отфильтрует необходимые данные.

Функции манипулирования датой и временем

Дата и время хранятся в таблицах с использованием соответствующих типов данных, каждая СУБД использует свои собственные типы. Значения даты и времени хранятся в специальном формате, поэтому их можно быстро и эффективно сохранить или отфильтровать, а также сохранить физическое пространство на диске.

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

Чтобы продемонстрировать процедуру использования функции манипулирования датой и временем, приведем простой пример. В таблице Orders все заказы хранятся с датой заказа. Чтобы извлечь список всех заказов, сделанных в 2004 году, в SQL Server и Sybase необходимо выполнить следующее:

В Access используйте следующую версию примера:

В этом примере (в версиях для SQL Server и Sybase и в Access) используется функция DATEPART (), которая, как видно из названия, возвращает только часть даты. В функции DATEPART() используются два параметра: часть, подлежащая возвращению, и дата, из которой эта часть возвращается. В рассматриваемом примере функция DATEPART () из столбца order_column возвращает только год. Путем сравнения полученного значения со значением 2004 предложение WHERE выбирает только те заказы, которые были сделаны в этом году.

Ниже приведена версия данного примера для PostgreSQL, в которой используется похожая функция DATE_PART():

В MySQL, помимо DATEPART(), есть множество других функций, предназначенных для манипулирования значениями дат. Пользователи MySQL могут использовать функцию YEAR() для выборки из даты значения года:

В Oracle также нет функции DATEPART(), но существуют несколько других функций манипулирования датой, которые можно использовать с этой же целью. Рассмотрим пример:

В этом примере функция to_char () используется для извлечения части даты, а функция to_number() – для преобразования этой части в числовое значение, чтобы его можно было сравнить со значением 2004. Тех же результатов можно добиться при помощи оператора BETWEEN:

В этом примере функция Oracle to_date() используется для преобразования двух строк в даты. В одной содержится дата 1 января 2004, а в другой – 31 декабря 2004. Стандартный оператор BETWEEN используется для поиска всех заказов, сделанных в период между этими двумя датами. Этот код не будет работать в SQL Server, так как в этой СУБД не поддерживается функция to_date(). Однако если заменить функцию to_date() функцией DATAPART(), этот оператор можно будет использовать.

Даты в Oracle

Даты в формате ДД-МММ-ГГГГ (как в предыдущих примерах) системой Oracle обычно обрабатываются, даже если они не приведены к тому виду, как при использовании функции to_date (). Однако для надежности лучше всегда использовать эту функцию.

В приведенных примерах выбиралась и использовалась только часть даты (год). Чтобы выбрать заказы по месяцу, необходимо сделать то же самое, указав ключевое слово AND для сравнения месяца и года.

СУБД обычно могут выполнять гораздо больше действий, чем просто выборка части даты. В большинстве из них присутствуют функции для сравнения дат, выполнения простых арифметических операций с датами, опции форматирования дат и многое другое. Но, как вы уже заметили, функции манипулирования датой и временем различны для разных СУБД. Обратитесь к документации по своей СУБД и уточните, какие функции манипулирования датой и временем в ней поддерживаются.

Функции для манипулирования числами

Числовые функции предназначены для манипулирования числовыми данными. Эти функции используются только для алгебраических, тригонометрических и геометрических вычислений, поэтому они используются не так часто, как функции манипулирования датой и временем.

По иронии судьбы среди всех функций в большинстве СУБД именно числовые функции наиболее стандартизированы. В табл. 8.3 перечислены наиболее часто используемые функции манипулирования числовыми данными.

Таблица 8.3. Наиболее часто используемые функции манипулирования числами

Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse

В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.

Строки — это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки «».

Синтаксис

Примеры

Строковые функции

Существуют предопределенные функции VBA String, которые помогают разработчикам эффективно работать со строками. Ниже приведены методы String, поддерживаемые в VBA. Пожалуйста, нажмите на каждый из методов, чтобы знать подробно.

Название функции и описание

InStr

Функция InStr возвращает первое вхождение одной строки в другую строку. Поиск происходит слева направо.

Синтаксис

Параметр Описание

  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста
Читать еще:  Access vba открыть форму

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11

Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.

Функция InStrRev возвращает первое вхождение одной строки в другую строку. Поиск происходит справа налево.

Синтаксис

Параметр Описание

  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и установите следующую функцию.

После выполнения вышеуказанного скрипта он производит следующий результат.

Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0

Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.

LCASE

Функция LCase возвращает строку после преобразования введенной строки в строчные буквы.

Синтаксис

пример

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

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft

Возвращает нижний регистр указанной строки.

UCase

Функция UCase возвращает строку после преобразования введенной строки в буквы буквы UPPER.

Синтаксис

пример

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

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

Возвращает верхний регистр указанной строки.

Функция Left возвращает указанное количество символов с левой стороны данной входной строки.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
  • Длина — требуемый параметр. Целое число, определяющее количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft

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

Right

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

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
  • Длина — требуемый параметр. Целое число, которое задает количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft

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

Mid функция возвращает указанное количество символов из заданной входной строки.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
  • Начало — требуемый параметр. Целое число, определяющее начальную позицию строки.
  • Длина — необязательный параметр. Целое число, определяющее количество возвращаемых символов.

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V

Возвращает определенное количество символов из строки на основе указанных параметров.

LTrim

Функция Ltrim удаляет пробелы с левой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете функцию, она производит следующий вывод.

After Ltrim : Microsoft VBScript

Возвращает строку после удаления пробелов в левой части указанной строки.

RTrim

Функция Rtrim удаляет пробелы с правой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After Rtrim : Microsoft VBScript

Возвращает строку после удаления пробелов в правой части указанной строки.

Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After trim : Microsoft VBScript

Возвращает строковое значение после удаления как верхнего, так и конечного пробелов.

Функция Len возвращает длину данной входной строки, включая пробелы.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Length of var1 is : 18
Length of var2 is : 36

Возвращает длину данной строки.

Replace

Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, которую нужно искать для замены.
  • Find — требуемый параметр. Часть строки, которая будет заменена.
  • Replacewith — обязательный параметр. Строка замены, которая будет заменена на параметр find.
  • Start — необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию — 1.
  • Count — необязательный параметр. Указывает количество раз, которое должна выполняться замена.
  • Compare — Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию — 0.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение
  • 1 = vbTextCompare — выполняет текстовое сравнение

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: This is MS VBScript Programming
Line 2: This is vbScript Programming
Line 3: Th## ## VBScript Programming
Line 4: ## VBScript Programming
Line 5: Thi## i## VBScript Programming
Line 6: This is VBSc##ipt P##og##amming
Line 7: This is VBScrip## Programming

Возвращает строку после замены строки другой строкой.

Space

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

Синтаксис

Параметр Описание

Номер — требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

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

StrComp

Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.

  • Если String1 меньше String2, то StrComp возвращает -1
  • Если String1 равно String2, то StrComp возвращает 0
  • Если String1 больше String2, то StrComp возвращает 1

Синтаксис

Параметр Описание

  • String1 — требуемый параметр. Первое строковое выражение.
  • String2 — требуемый параметр. Второе строковое выражение.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1

Возвращает целочисленное значение после сравнения двух указанных строк.

String

Функция String заполняет строку указанным символом для указанного количества раз.

Синтаксис

Параметр Описание

  • Номер — требуемый параметр. Целочисленное значение, которое будет повторяться в течение определенного количества раз против параметра символа.
  • Символ — требуемый параметр. Значение символа, которое должно повторяться определенное количество раз.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

Возвращает строку с указанным символом для указанного количества раз.

StrReverse

Функция StrReverse меняет указанную строку.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

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

Читать еще:  Count в access

Функции обработки строк в 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 — 1

Удаление ненужных символов

Зачастую строки в программе содержат ненужные символы пробелов в конце или в начале строки, которые необ- ходимо удалить, т.к. посторонние на- чальные или конечные пробелы в стро- ке могут вызвать «неполадки» в работе программы.

В VBA имеются три функции, пред- назначенные для удаления начальных и конечных пробелов из строки: LTrim, RTrim, Trim. Следует иметь ввиду, что эти функции на самом деле не изме- няют исходную строку, а возвращают копию строки с удаленными лишними пробелами.

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

Длину строки, как правило, надо знать при форматировании сообщений для пользователя или при форматировании строковых данных, вводимых процедурой в рабочий лист Excel или документ Word. VBA для этих целей использует функцию Len. В приведенным ниже листинге между знаками круглых скобок и словом присутствует по два пробела.

Следует быть внимательными со строками фиксированной длины. Поскольку строка фиксированной длины имеет всегда одну и ту же длину, функция Len всегда возвращает объявленную длину строки, независимо от фактической длины строки. Например, если в строковой переменной фиксированной длины StrokeName, имеющей длину 15 символов, фактически находится слово «солнце», то функция Len(StrokeName) возвратит результат 15. Чтобы в таком случае узнать фактическую длину строки (в нашем случае — 6), необходимо использовать следующую комбинацию функций: Len(Trim(StrokeName)).

Сравнение и поиск строк

В VBA имеются две функции, помогающих сравнивать строки: StrComp, InStr.

Функция StrComp

StrComp (String1, String2 [, Compare])

String1, String2 — любые два строковых выражения, которые необходимо сравнивать.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

При выполнении StrComp возвращается одно из следующих значений:

  • -1, если String1 меньше String2;
  • 0, если String1 и String2 равны;
  • 1, если String1 больше String2.

В вышеприведенном листинге в текстовом режиме сравниваются две строки: «Строка по умолчанию» и » Строка по умолчанию». Результат сравнения = 1, т.е. «Строка по умолчанию» больше, чем » Строка по умолчанию».

Поэкспериментируйте с разнообразными строками для лучшего понимания работы функции StrComp.

Функция InStr

Функция InStr дает возможность определить, содержит ли одна строка другую строку.

StrComp ([Start, ] String1, String2 [, Compare])

String1, String2 — любые допустимые строковые выражения. Функция проверяет содержится ли String1 в String2.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

Start — необязательный аргумент, является численным выражением и указывает положение символа в String1, с которого должна начинаться проверка.

InStr возвращает число, обозначающее положение символа в String1, где было обнаружено String2. Если InStr не находит String2 в String1, то возвращается 0. Если String1 (или String2) имеет значение Null, то функция также возвращает Null.

Разбиение строки

Иногда возникает необходимость разбиения строки на составляющие части. В VBA эту задачу решают три функции: Left, Right, Mid.

Функция Left

Left (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

Функция возвращает копию String, начиная с первого символа и включая количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается все строковое выражение String.

Функция Right

Right (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

Функция возвращает копию String, начиная с последнего символа и включая справа налево количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается все строковое выражение String. Функция Right всегда копирует символы от конца строки к ее началу.

Функция Mid

Mid (String, Start, [, Length])

String — любое допустимое строковое выражение.

Length, Start — любые численные значения.

Функция Mid возвращает копию String, начиная с положения символа в String, задаваемого с помощью аргумента Start . Необязательный аргумент Length определяет количество копируемых в Mid символов из String. Если Start содержит большее число, чем фактическая длина String, то возвращается пустая строка.

Рекомендуем в повседневной деятельности:

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