この資料では、"テキスト" 型のデータ値を "各単語の先頭が大文字" の形式 (タイトル用の大文字/小文字形式) に変換する方法について説明します。
"テキスト" 型のデータ値は、次のいずれかの方法を使用すると、"各単語の先頭が大文字" の形式に変更できます。
-
方法 1 : 組み込みの文字列変換関数を使用する
-
方法 2 : ユーザー定義関数を使用する
注 : これらの方法のいずれかを使用する前に、
MyTestTextList という名前のサンプル テーブルを作成します。これを行うには、次の手順を実行します。
サンプル テーブル MyTestTextList を作成する
-
Access を起動し、空の新しいデータベースを作成します。
-
このデータベースを MyTestDatabase として保存します。
-
以下のフィールドを使用して新しいテーブルを作成します。
フィールド名 : testText
データ型 : テキスト型
-
このテーブルを MyTestTextList として保存します。
-
主キーの作成を確認するメッセージが表示されたら、[いいえ] をクリックします。
-
テーブルに以下の testText サンプルをそれぞれ追加します。
the cOw jumped Over the MOON
THE QUICK BROWN FOX jUmped over THE lazy DOG
方法 1
組み込みの文字列変換関数を使用する
-
Access を起動します。MyTestDatabase データベースを開きます。
-
[挿入] メニューの [クエリ] をクリックします。
-
[新しいクエリ] (または [クエリの新規作成]) ダイアログ ボックスで [デザイン ビュー] をダブルクリックします。
-
[テーブルの表示] ダイアログ ボックスが表示されたら、[閉じる] をクリックします。
-
[表示] メニューの [SQL ビュー] をクリックします。
-
[クエリ1 : 選択クエリ] ダイアログ ボックスに次のコードを入力します。
SELECT testText, STRCONV(testText,3) as TestText_in_Proper_Case FROM MyTestTextList
-
[クエリ] メニューの [実行] をクリックします。
クエリの出力は次のとおりです。
testText TestText_in_Proper_Case
the cOw jumped Over the MOON The Cow Jumped Over The Moon
THE QUICK BROWN FOX jUmped over THE lazy DOG The Quick Brown Fox Jumped Over The Lazy Dog
注 : StrConv(<Text>,3) メソッドは、テキスト内のすべての単語の最初の文字を大文字に変換します。この処理は、単語がスペースまたはタブで区切られている場合にのみ行われます。StrConv では、- や $ などの特殊文字は単語の区切り記号として扱いません。
StrConv 関数で各単語の先頭を大文字に変換するための有効な区切り記号の詳細については、Visual Basic Editor で [ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックします。次に、Office アシスタントまたはアンサー ウィザードに
StrConv と入力し、[検索] をクリックしてトピックを表示します。
方法 2
ユーザー定義関数を使用する
-
Access を起動し、MyTestDatabase データベースを開きます。
-
[挿入] メニューの [標準モジュール] をクリックします。
-
現在のモジュール内に次のコードを入力します。変更を保存します。
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
注 : 関数が正しく機能するには、このモジュールの "Declarations" セクションで Option Compare Database を指定する必要があります。
-
[ファイル] メニューの [終了して Microsoft Office Access へ戻る] をクリックします。
注 : Access 97 の場合は、[ファイル] メニューの [閉じる] をクリックします。
-
[挿入] メニューの [クエリ] をクリックします。
-
[新しいクエリ] (または [クエリの新規作成]) ダイアログ ボックスで [デザイン ビュー] をクリックします。
-
[テーブルの表示] ダイアログ ボックスが表示されたら、[閉じる] をクリックします。
-
[表示] メニューの [SQL ビュー] をクリックします。
-
[クエリ1 : 選択クエリ] ダイアログ ボックスに次のコードを入力します。
SELECT testText, proper(testText) as testText_in_Proper_Case FROM MyTestTextList
注 : このクエリは方法 1 のクエリと似ています。関数呼び出しであることのみが異なります。
-
[クエリ] メニューの [実行] をクリックします。
クエリの出力は次のとおりです。
testText testText_in_Proper_Case
the cOw jumped Over the MOON The Cow Jumped Over The Moon
THE QUICK BROWN FOX jUmped over THE lazy DOG The Quick Brown Fox Jumped Over The Lazy Dog
出力はどちらの方法も似ていますが、方法 2 では、大文字/小文字形式を選択する柔軟性が提供されます。たとえば、- や _ などの単語区切り記号を選択できます。また、必要な大文字/小文字形式の定義や、単語区切り記号の定義が行えます。これは、手順 3. で示した Proper 関数を変更することで可能です。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
298607?
(http://support.microsoft.com/kb/298607/EN-US/
)
ACC2002: How to Use the StrConv Function to Capitalize Words and Phrases
253911?
(http://support.microsoft.com/kb/253911/EN-US/
)
ACC2000: How to Use the StrConv Function to Capitalize Words and Phrases
302499?
(http://support.microsoft.com/kb/302499/EN-US/
)
ACC97: How to Use the StrConv Function to Capitalize Words and Phrases
209903?
(http://support.microsoft.com/kb/209903/EN-US/
)
ACC2000: Cannot Use Intrinsic Constants in Queries, Forms, Reports
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID
815282?
(http://support.microsoft.com/kb/815282/EN-US/
)
(最終更新日 2003-09-18) を基に作成したものです。
この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。