Help and Support
 

powered byLive Search

[ACC2003] テキスト型のデータを、各単語の先頭が大文字の形式に変換する (タイトル用の大文字/小文字形式)

文書番号:815282
最終更新日:2004年1月28日
リビジョン:4.0
難易度 : 中。基本的なマクロ、コーディング能力、相互運用性の経験が必要です。
目次

概要

この資料では、"テキスト" 型のデータ値を "各単語の先頭が大文字" の形式 (タイトル用の大文字/小文字形式) に変換する方法について説明します。

先頭へ戻る

詳細

"テキスト" 型のデータ値は、次のいずれかの方法を使用すると、"各単語の先頭が大文字" の形式に変更できます。
? 方法 1 : 組み込みの文字列変換関数を使用する
? 方法 2 : ユーザー定義関数を使用する
: これらの方法のいずれかを使用する前に、MyTestTextList という名前のサンプル テーブルを作成します。これを行うには、次の手順を実行します。

先頭へ戻る

サンプル テーブル MyTestTextList を作成する

1. Access を起動し、空の新しいデータベースを作成します。
2. このデータベースを MyTestDatabase として保存します。
3. 以下のフィールドを使用して新しいテーブルを作成します。
フィールド名 : testText
データ型 : テキスト型
4. このテーブルを MyTestTextList として保存します。
5. 主キーの作成を確認するメッセージが表示されたら、[いいえ] をクリックします。
6. テーブルに以下の testText サンプルをそれぞれ追加します。
the cOw jumped Over the MOON
THE QUICK BROWN FOX jUmped over THE lazy DOG 

先頭へ戻る

方法 1
組み込みの文字列変換関数を使用する

1. Access を起動します。MyTestDatabase データベースを開きます。
2. [挿入] メニューの [クエリ] をクリックします。
3. [新しいクエリ] (または [クエリの新規作成]) ダイアログ ボックスで [デザイン ビュー] をダブルクリックします。
4. [テーブルの表示] ダイアログ ボックスが表示されたら、[閉じる] をクリックします。
5. [表示] メニューの [SQL ビュー] をクリックします。
6. [クエリ1 : 選択クエリ] ダイアログ ボックスに次のコードを入力します。
SELECT testText, STRCONV(testText,3) as  TestText_in_Proper_Case FROM MyTestTextList
7. [クエリ] メニューの [実行] をクリックします。

クエリの出力は次のとおりです。
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
ユーザー定義関数を使用する

1. Access を起動し、MyTestDatabase データベースを開きます。
2. [挿入] メニューの [標準モジュール] をクリックします。
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

: 関数が正しく機能するには、このモジュールの "Declarations" セクションで Option Compare Database を指定する必要があります。
4. [ファイル] メニューの [終了して Microsoft Office Access へ戻る] をクリックします。

: Access 97 の場合は、[ファイル] メニューの [閉じる] をクリックします。
5. [挿入] メニューの [クエリ] をクリックします。
6. [新しいクエリ] (または [クエリの新規作成]) ダイアログ ボックスで [デザイン ビュー] をクリックします。
7. [テーブルの表示] ダイアログ ボックスが表示されたら、[閉じる] をクリックします。
8. [表示] メニューの [SQL ビュー] をクリックします。
9. [クエリ1 : 選択クエリ] ダイアログ ボックスに次のコードを入力します。

SELECT testText, proper(testText) as  testText_in_Proper_Case FROM MyTestTextList
: このクエリは方法 1 のクエリと似ています。関数呼び出しであることのみが異なります。
10. [クエリ] メニューの [実行] をクリックします。

クエリの出力は次のとおりです。
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) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

先頭へ戻る


この資料は以下の製品について記述したものです。
?Microsoft Office Access 2003
?Microsoft Access 2002 Standard Edition
?Microsoft Access 2000 Standard Edition
?Microsoft Access 97 Standard Edition

先頭へ戻る

キーワード:?
kbhowto KB815282

先頭へ戻る

"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

サポート技術情報の翻訳

 

Related Support Centers

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.