Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


字数制限を超えた文字を削除し……で保存する : Access裏技Tips



営業日誌はダラダラと書きなぐるのではなく、字数を決めてまとめ上げたいものです。 ここでは、字数制限を越えた文字を思い切って削除し、代わりに*****で保存する技を紹介します。

文字を削除し……で保存する

  1. 営業日誌テーブル(tbl_sample)を作成します。
  2. ここには、日々の営業日誌として、ID(オートナンバー型)、日付(日付/時刻型)、活動報告(メモ型)フィールドを作成します。
  3. 次に、営業日誌テーブルをもとに単票式の営業日誌入力フォームを作成します。
  4. このフォームには、日付(txt日付)と活動報告テキストボックス(txt活動報告)を配置します。
  5. 活動報告テキストボックスの更新前処理イベントで字数チェックを行い、更新後処理イベントでオーバー分の文字を削除します。

営業日誌テーブルの作成

営業日誌テーブルを作成します。

  1. 営業日誌テーブルを作成します。
  2. ID(オートナンバー型)、日付(日付/時刻型)、活動報告(メモ型)フィールドを作成します。

営業日誌入力フォームの作成

営業日誌入力フォームを作成します。

  1. 営業日誌テーブルをもとに営業日誌入力フォームを作成します。
  2. 日付と活動報告テキストボックスを配置します。

txt活動報告テキストボックスの更新前処理イベントプロシージャ

txt活動報告テキストボックスの更新前処理イベントプロシージャを作成します。

Private Sub txt活動報告_BeforeUpdate(Cancel As Integer)

    Dim intCount As Integer
    Dim txtA As TextBox
    Dim strmsg As String
    Const Mojisu = 10 ' --- A
    
    Set txtA = Screen.ActiveControl ' --- B
    intCount = Len(txtA) ' --- C
    strmsg = "制限文字数(" & Mojisu & "文字以内)を " & intCount - Mojisu & _
            " 文字数分オーバーしています。"
    strmsg = strmsg & vbNewLine & "オーバー分を削除し保存してよろしいか?"
    
    If intCount > Mojisu Then ' --- D
        If vbCancel = msgbox(strmsg, vbOKCancel) Then
            Cancel = True ' --- E
        End If
    End If

End Sub
解説
  1. 定数Mojisuを宣言し、10を代入します。
  2. オブジェクト変数txtAにアクティブコントロール(txt活動報告)を代入します。
  3. オブジェクト変数txtAの字数をLen関数で求め、変数intCountに代入します。
  4. 変数intCountの値が定数Mojisuの値より多い場合、以下の処理に進みます。
  5. 引数Cancelにtrueを代入し、処理を中止します。
今回のおすすめポイント

ActiveControl プロパティ

Screen オブジェクトと共に使って、フォーカスを持っているコントロールを識別または参照します。ActiveControl プロパティを使って、実行時にフォーカスを持っているコントロールを参照し、そのコントロールのプロパティやメソッドを使うことができます。

txt活動報告テキストボックスの更新後処理イベントプロシージャ

txt活動報告テキストボックスの更新後処理イベントプロシージャを作成します。

Private Sub txt活動報告_AfterUpdate()

    Dim intCount As Integer
    Dim txtA As TextBox
    Const Mojisu = 10 ' --- A
    
    Set txtA = Screen.ActiveControl ' --- B
    intCount = Len(txtA) ' --- C
    
    If intCount > Mojisu Then ' --- D
        txtA = Left(txtA, Mojisu) & "*****" ' --- E
    End If
    
End Sub

解説

  1. 定数Mojisuを宣言し、10を代入します。
  2. オブジェクト変数txtAにアクティブコントロール(txt活動報告)を代入します。
  3. オブジェクト変数txtAの字数をLen関数で求め、変数intCountに代入します。
  4. 変数intCountの値が定数Mojisuの値より多い場合、以下の処理に進みます。
  5. Left関数を用いて、オブジェクト変数txtAを左辺から定数Mojisu分を抜き出します。
    そして、新たにオブジェクト変数txtAに代入します。

動作確認

  1. デザインビューからフォームビューに切り替え、データ入力を行います。

  1. レコードの移動を試みると、メッセージボックスが表示します。

  1. [OK]ボタンをクリックします。
  2. 字数制限を越えている文字が*****に置き換わっていることを確認します。

関連ページ

ページの先頭へ 前ページへ戻る

 


字数制限を超えた文字を削除し……で保存する : Access裏技Tips


 

-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。