Microsoft Access で Text データ型のデータ値を適切な大文字と小文字の形式に変換する方法

中程度: 基本的なマクロ、コーディング、相互運用性のスキルが必要です。

この記事は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルに適用されます。

概要

この記事では、Text データ型のデータ値を適切な大文字と小文字の形式に変換する方法について説明します。

詳細

Text データ型のデータ値は、次のいずれかの方法を使用して、適切な大文字と小文字の形式に変換できます。

  • 方法 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. Access で MyTestDatabase データベースを開きます。

  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. Access で MyTestDatabase データベースを開きます。

  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
    

    メモ 関数が正しく機能するには、このモジュールの "宣言" セクションで Option Compare Database を指定する必要があります。

  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 では任意のケース形式を柔軟に選択できます。 これには、- や _などの選択した単語区切り記号が含まれます。 必要な大文字と小文字の形式を定義することも、単語区切り記号を定義することもできます。 これは、手順 3 で説明されている適切な関数を変更する場合に実行できます。