Microsoft Access で Text データ型のデータ値を適切な大文字と小文字の形式に変換する方法
中程度: 基本的なマクロ、コーディング、相互運用性のスキルが必要です。
この記事は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルに適用されます。
概要
この記事では、Text データ型のデータ値を適切な大文字と小文字の形式に変換する方法について説明します。
詳細
Text データ型のデータ値は、次のいずれかの方法を使用して、適切な大文字と小文字の形式に変換できます。
- 方法 1: Built-In 文字列変換関数を使用する
- 方法 2: User-Defined 関数を使用する
メモ これらのメソッドのいずれかを使用する前に、MyTestTextList という名前のサンプル テーブルを作成します。 これを行うには、次の手順を実行します。
Access で新しい空のデータベースを作成します。
次のフィールドを含む新しいテーブルを作成します。
Field Name: testText Data Type: Text
テーブルを MyTestTextList として保存します。
次のサンプル testText をテーブルに追加します。
the cOw jumped Over the MOON THE QUICK BROWN FOX jUmped over THE lazy DOG
データベースを MyTestDatabase として保存します。
方法 1: 組み込みの文字列変換関数を使用する
Access で MyTestDatabase データベースを開きます。
[ 挿入 ] メニューの [ クエリ] をクリックします。
メモMicrosoft Office Access 2007 以降のバージョンで、[作成] タブの [その他] グループで [クエリ デザイン] をクリックします。
[ 新しいクエリ ] ダイアログ ボックスで、[ デザイン ビュー] をクリックします。
メモ Access 2007 以降のバージョンでは、この手順をスキップします。
[ テーブルの表示 ] ダイアログ ボックスで、[ 閉じる] をクリックします。
[ 表示 ] メニューの [ SQL ビュー] をクリックします。
メモAccess 2007 以降のバージョンで、[デザイン] タブの [結果] グループで [SQL] をクリックします。
SQL ビューに次のコードを入力します。
SELECT testText, STRCONV(testText,3) as TestText_in_Proper_Case FROM MyTestTextList
[ クエリ ] メニューの [ 実行] をクリックします。
メモ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: ユーザー定義関数を使用する
Access で MyTestDatabase データベースを開きます。
[挿入] メニューの [モジュール] をクリックします。
メモAccess 2007 以降のバージョンで、[作成] タブの [その他] グループの [マクロ] の下にあるドロップダウン矢印をクリックします。
現在のモジュールに次のコードを入力し、変更を保存します。
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 を指定する必要があります。
[ ファイル ] メニューの [閉じる] をクリック し、Microsoft Access に戻ります。
メモ [ ファイル ] メニューの [ 閉じる] をクリックして Access 97 にアクセスします。
[ 挿入 ] メニューの [ クエリ] をクリックします。
メモAccess 2007 以降のバージョンで、[作成] タブの [その他] グループで [クエリ デザイン] をクリックします。
[ 新しいクエリ ] ダイアログ ボックスで、[ デザイン ビュー] をクリックします。
メモ Access 2007 以降のバージョンでは、この手順をスキップします。
[ テーブルの表示 ] ダイアログ ボックスで、[ 閉じる] をクリックします。
[ 表示 ] メニューの [ SQL ビュー] をクリックします。
メモAccess 2007 以降のバージョンで、[デザイン] タブの [結果] グループで [SQL] をクリックします。
SQL ビューに次のコードを入力します。
SELECT testText, proper(testText) as testText_in_Proper_Case FROM MyTestTextList
このクエリは、メソッド 1 のクエリに似ています。 これは関数呼び出しを除きます。
[ クエリ ] メニューの [ 実行] をクリックします。
メモ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 で説明されている適切な関数を変更する場合に実行できます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示