Преобразование значений данных типа "Текст" в правильный формат регистра в Microsoft Access

Средний. Требуются базовые навыки макроса, программирования и взаимодействия.

Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb).

Сводка

В этой статье описывается преобразование значений данных типа "Текст" в правильный формат регистра.

Дополнительная информация

Значения данных типа "Текст" можно преобразовать в правильный формат регистра с помощью одного из следующих методов:

  • Метод 1. Использование функции преобразования строк Built-In
  • Метод 2. Использование функции User-Defined

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

  1. Создайте пустую базу данных в Access.

  2. Создайте таблицу со следующими полями:

    Field Name: testText
    Data Type: Text
    
  3. Сохраните таблицу как MyTestTextList.

  4. Добавьте следующий пример testText в таблицу:

    the cOw jumped Over the MOON
    
    THE QUICK BROWN FOX jUmped over THE lazy DOG 
    
    
  5. Сохраните базу данных как MyTestDatabase.

Способ 1. Использование встроенной функции преобразования строк

  1. Откройте базу данных MyTestDatabase в Access.

  2. В меню Вставка щелкните Запрос.

    Примечание В Microsoft Office Access 2007 или более поздней версии щелкните Конструктор запросов в группе Другие на вкладке Создание .

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

    Примечание В Access 2007 или более поздней версии пропустите этот шаг.

  4. В диалоговом окне Показать таблицу нажмите кнопку Закрыть.

  5. В меню Вид выберите пункт Представление SQL.

    Примечание В Access 2007 или более поздней версии щелкните SQL в группе Результаты на вкладке Конструктор .

  6. В представлении SQL введите следующий код:

    SELECT testText, STRCONV(testText,3) as  TestText_in_Proper_Case FROM MyTestTextList
    
  7. В меню Запрос выберите команду Выполнить.

    Примечание В Access 2007 или более поздней версии нажмите кнопку Выполнить в группе Результаты на вкладке Конструктор .

    Ниже приведены выходные данные запроса:

    TestTextTestText_in_Proper_Case
    the cOw jumped Over the MOONThe Cow Jumped Over The Moon
    THE QUICK BROWN FOX jUmped overTHE lazy DOG The Quick Brown Fox Jumped Over The Lazy Dog
    

Примечание Метод StrConv(<Text,3>) преобразует первую букву каждого слова в тексте в верхний регистр. Это происходит только в том случае, если слова разделяются пробелом или вкладкой. StrConv не обрабатывает специальные символы, такие как - или $, как разделитель слов.

Способ 2. Использование определяемой пользователем функции

  1. Откройте базу данных MyTestDatabase в Access.

  2. В меню Вставка выберите пункт Модуль.

    Примечание В Access 2007 или более поздней версии щелкните стрелку раскрывающегося списка в разделе Макрос в группе Другие на вкладке Создать .

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

    Function Proper(X)
    Capitalize first letter of every word in a field.
    
    Dim Temp$, C$, OldC$, i As Integer
    
    If IsNull(X) Then
    
    Exit Function
    
    Else
    
    Temp$ = CStr(LCase(X))
    
    ' Initialize OldC$ to a single space because first
            ' letter must be capitalized but has no preceding letter.
    
    OldC$ = " "
    
    For i = 1 To Len(Temp$)
                    C$ = Mid$(Temp$, i, 1)
                    If C$ >= "a" And C$ <= "z" And (OldC$ < "a" Or OldC$ > "z") Then
                          Mid$(Temp$, i, 1) = UCase$(C$)
                    End If
                    OldC$ = C$
             Next i
    
    Proper = Temp$
    
    End If
    
    End Function
    

    Примечание Чтобы функция работала правильно, необходимо указать Базу данных сравнения вариантов в разделе "Объявления" этого модуля.

  4. В меню Файл выберите закрыть и вернуться в Microsoft Access.

    Примечание В меню Файл выберите команду Закрытьдля access 97.

  5. В меню Вставка щелкните Запрос.

    Примечание В Access 2007 или более поздней версии щелкните Конструктор запросов в группе Другие на вкладке Создать .

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

    Примечание В Access 2007 или более поздней версии пропустите этот шаг.

  7. В диалоговом окне Показать таблицу нажмите кнопку Закрыть.

  8. В меню Вид выберите пункт Представление SQL.

    Примечание В Access 2007 или более поздней версии щелкните SQL в группе Результаты на вкладке Конструктор .

  9. В представлении SQL введите следующий код:

    SELECT testText, proper(testText) as  testText_in_Proper_Case FROM MyTestTextList
    

    Обратите внимание, что этот запрос аналогичен запросу в методе 1. Это за исключением вызова функции.

  10. В меню Запрос выберите команду Выполнить.

    Примечание В Access 2007 или более поздней версии нажмите кнопку Выполнить в группе Результаты на вкладке Конструктор .

    Ниже приведены выходные данные запроса:

    TestTextTestText_in_Proper_Case
    the cOw jumped Over the MOONThe Cow Jumped Over The Moon
    THE QUICK BROWN FOX jUmped overTHE lazy DOG The Quick Brown Fox Jumped Over The Lazy Dog
    

Хотя выходные данные обоих методов похожи, метод 2 дает возможность выбрать любой формат регистра. Сюда входит выбранный разделитель слов, например - или _. Можно определить требуемый формат регистра или разделитель слов. Это можно сделать, если изменить функцию Proper, упомянутую на шаге 3.