【ACCESS コントロール】テキストボックス
テキストボックスとは
Access のフォームやレポートで データを表示および編集するために使用する Access の標準コントロールです
さまざまな種類のデータをテキストボックスに表示することができ
そのデータを使用して計算を実行することもできます
マスタテーブルからフォームを作ると書式は引き継ぐことができます
社員マスタテーブルをレコードソースに設定し
各テキストボックスのコントロールソースにそのフィールドを設定することで 社員マスタリストが表示されます
社員マスタテーブルを作成するとき
あらかじめフィールドプロパティが設定してあれば
このテーブルを選択して 作成のフォームを選択することで
そのテキストボックスに設定されたフィールドの書式は
テーブル作成時 フィールドプロパティで設定した書式がそのまま引き継がれます
VBAで書式を変えるには
入社日(日付)を西暦から和暦に
さきほどの社員マスタを
の入社日を西暦表示から このように 和暦にかえます
Format プロパティを使います
Me.nyusha_date.Format = "gge/mm/dd"
日付/時刻型の主な書式指定文字
yyyy :西暦4けた
yy:西暦2けた
ggg:年号(平成、昭和など)
gg:年号漢字1文字(平、昭など)
g:年号アルファベット1文字(H、Sなど)
ee:和暦2けたe和暦
mm:月2けた
m:月1けたまたは2けた(1 ~ 12)
dd:日2けた
d:日1けたまたは2けた(1 ~ 31)
IMEモードや書式を設定する
テキストボックス【動画で説明】
IMEモード
日本語を入力するときに切り替える「IME入力モード」
日本語(ひらがなや漢字など)を入力するときはオン
半角英数字を入力するときはオフ
といったように入力するデータの種類によって
いちいち切り替えるのは面倒なものです
入力効率を高めるため ミスをなくすために
あらかじめ設定されると便利です
前述のようにテーブルのフィールドの設定を引き継ぎ
自動的に行われる場合が多いですが
今回は 非連結のテキストボックスにVBAでIMEモードや書式を変える方法をご紹介していきます
非連結のテキストボックスを配置し
コード、名前、カナ、生年月日、携帯番号、点数 といったデータを入力します
非連結のテキストボックスとは コントロールソースが設定されていないものといえます
この場合各テキストボックスのプロパティで設定できる項目値はデフォルトのままです
それぞれのテキストボックスにあとから IMEモードを設定する方法をご紹介します
IMEMode プロパティ
object.IMEMode
object に TextBox オブジェクトを指定してテキストボックスのIMEモードを設定します
Me.txt_code.IMEMode = acImeModeOff
Me.txt_name.IMEMode = acImeModeHiragana
Me.txt_kana.IMEMode = acImeModeKatakana
Me.txt_dob.IMEMode = acImeModeOff
Me.txt_cell.IMEMode = acImeModeOff
Me.txt_score.IMEMode = acImeModeOff
Me.txt_code.IMEMode = acImeModeOff
コード:IMEを無効にして英数字の入力を有効にする
Me.txt_name.IMEMode = acImeModeHiragana
名前:ひらがなモードでIMEを有効にする
Me.txt_kana.IMEMode = acImeModeKatakana
カナ:全角カタカナモードでIMEを有効にする
Me.txt_dob.IMEMode = acImeModeOff
Me.txt_cell.IMEMode = acImeModeOff
Me.txt_score.IMEMode = acImeModeOff
生年月日 携帯番号 点数:IMEを無効にして英数字の入力を有効にする
他に
acImeModeAlpha:半角英数モードでIMEを有効にする
acImeModeAlphaFull:全角英数モードでIMEを有効にする
acImeModeDisable:IMEを無効にする
acImeModeKatakanaHalf:半角カタカナモードでIMEを有効にする
acImeModeNoControl:IMEのモードを変更しない
acImeModeOn:IMEを有効にする
定型入力
InputMask プロパティ
object . InputMask
object に TextBox オブジェクトを指定し データの入力を簡単にしたり
テキストボックスコントロールにユーザーが入力できる値を制限できます
Me.txt_cell.InputMask = "(###)####-####"
携帯番号の入力がしやすいように書式を設定しています
書式指定文字
数値型、通貨型の主な書式指定文字
0:数値の桁を表す。対応する位置に値がない場合、ゼロ(0)が表示される
#:数値の桁を表す。対応する位置に値がない場合は何も表示されない
¥:円記号(¥)の次の文字をそのまま表示する。「¥¥」とすると、円記号を表示できる
"":ダブルクォーテーション("")で囲まれた文字をそのまま表示する
短いテキスト、長いテキストの主な書式指定文字
@: 文字を表す。文字列より「@」の数が多い場合、先頭に空白を付けて表示される
& :文字を表す。文字列より「&」の数が多い場合、文字列だけが左揃えで表示される
< :アルファベットを小文字にする
>:アルファベットを大文字にする
数値の書式
Format プロパティ
object.Format
object に指定した TextBox オブジェクトの数値 日時 テキストの表示および印刷形式をカスタマイズするときに使用します
Format プロパティは「;(セミコロン)」を使用して4つのセクションを指定することができます
1つ目:正の数
2つ目:負の数
3つ目:「0」の場合
4つ目:Null値の場合
Me.txt_score.Format = "#,##0;#,##0[Red];""ゼロ"";""データなし"""
点数のテキストボックスに 1000単位の区切り記号で負の場合は赤文字
0の場合は「ゼロ」と表示し Nullだと「データなし」と表示されます
編集の可否
名前に文字がはいっていないとき カナが入力できないようにします
フォームの読み込み時
Me.txt_name = ""
Me.txt_kana = ""
Me.txt_kana.BackColor = RGB(200, 200, 200)
Me.txt_kana.Locked = True
名前とカナを空欄にして
カナの背景をグレーにします
Me.txt_kana.Locked = True
テキストボックスを編集不可にします
名前テキストボックスの更新後処理
If Len(Me.txt_name) > 0 Then
Me.txt_kana.BackColor = RGB(250, 250, 250)
Me.txt_kana.Locked = False
Else
Me.txt_kana.BackColor = RGB(200, 200, 200)
Me.txt_kana.Locked = True
End If
名前テキストボックスの長さを判断して入力されているかどうかを判断します
入っていたら カナテキストボックスの背景を白にして編集可とします
入っていなければ グレーにして編集を不可とします
Locked プロパティ
object.Locked
object にコントロールを指定して コントロールの編集の可否を指定することができます True を指定すると編集不可 False を指定すると編集可となります
データを表示
コードに番号をいれると
社員マスタデータからそのコードの社員の名前 カナなどを表示します
Me.RecordSource = "M_staff"
DoCmd.ApplyFilter , "staff_code = " & Me.txt_code
Me.txt_name.ControlSource = "staff_name"
Me.txt_kana.ControlSource = "staff_kana"
Me.txt_dob.ControlSource = "birthday"
Me.txt_cell.ControlSource = "cell_phone"
Me.RecordSource = "M_staff"
フォームのレコードソースを「M_staff」にします
DoCmd.ApplyFilter , "staff_code = " & Me.txt_code
M_staff の staff_code が テキストボックスの値と同じものを表示しますMe.txt_name.ControlSource = "staff_name"
Me.txt_kana.ControlSource = "staff_kana"
Me.txt_dob.ControlSource = "birthday"
Me.txt_cell.ControlSource = "cell_phone"
非連結フォームの各テキストボックスにレコードソースのフィールドを関連づけます
まとめ
テキストボックスはテーブルの修正や新規追加登録などの際
テーブルのフィールドの内容を表示します
その際 入力効率やミスを防ぐための
様々な設定を施すことが必要となります
Accessを使う中でフォームやレポートで最も使われるコントロールといえます
今回はテキストボックスの入力モードや書式の設定などを
VBAを使った方法をご紹介しました