目次
お客さまへ連絡した履歴を残す
こんにちは。伊川(@naonaoke)です。
今回は、車検に来たお客さまへ連絡した際に、連絡した日時を入力しないと登録させないという仕掛けをします。
前回、紹介しました、入力漏れの応用版になります。
伊川は、コールセンターで仕事をしています。
お客さまへ連絡した履歴がないときには、本当に困ります。
本来は、もっと複雑な仕掛けをしますが、今回は、カンタンなものだけを紹介します。
問題提起
((株)IKAWAの阿久 世子男(アク セスオ)は上司から下記のような依頼を受けました。
・車検日が近いお客さまへ車検の連絡をすること。
・車検の連絡をしたお客さまとの対応日をデータベースに残すこと。
・対応日に関して絶対、入力漏れが無いようにすること。なにか良い方法はあるだろうか?
解決策
・連絡時のステータス(未対応・車検申込済・不在)等を決めておく。
・検索した瞬間に、ステータスを空欄にする。
・ステータスを入力しないと登録できないようにする。
検索フォームの作成手順
作成手順 その1 データベースを確認
上の図の赤枠中に未対応という項目があります。
この部分が、ステータスというものになります。
ステータスも、各社員が独自の言葉で入力されると、データベースの意味か無いので、コンボボックスにします。
上の図のように、ステータスは、未対応、車検申込、不在、車検他社とします。
作成手順 その2 検索フォームを作成
上の図のような検索フォームを作成します。
検索条件は契約書番号にします。
「レコードの検索」ボタンにVBAのコードを仕込みます。
Private Sub コマンド82_Click() DoCmd.ApplyFilter , "[契約書番号] ='" & Me![契約書番号検索] & "'" Me.[ステータス] = "" Me.[対応日] = Null End Sub
肝心なのは、「Me.[ステータス] = “”」と、「Me.[対応日] = Null」です。
レコードを検索した瞬間に、ステータスと、対応日を空欄にします。
空欄にすることによって、連絡した日を強制的に入力させるようにします。
Private Sub ステータス_AfterUpdate() Me.[対応日] = Now End Sub
上のコードは、ステータスが更新されたら、対応日のフィールドに、現在の日時と時間を入力されるようにします。
作成手順 その3 入力しない限り、登録させない
Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.[ステータス] = "" Then MsgBox "ステータス空欄" Cancel = True End If End Sub
「Me.[ステータス] = “”」は、レコードを検索した瞬間に空欄になります。
つまり、強制的に空欄にすることによって、お客さまへ連絡した社員が必ず、最新の状態を(ステータス)を入力することになります。
ここがポイント
テーブル自体に入力規制をつけるエラーが出る場合があります。
つまり、テーブルに入力規制を設定する場合は、初めてデータを入力する場合には、有効です。しかし、今回のように、いったん入力されたデータを意図的に空白にする場合は、エラーが表示されます。このエラーを回避にするために、VBAで入力規制を設定したほうが、汎用性があります。
まとめ
今回は、連絡した履歴だけですが、連絡した回数等(電話した回数)も登録することができます。
それは、またの機会に説明します。
正確なデータベースを維持することは、業務短縮化へつながります。
今回のサンプルファイルはNo44です
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。