pickup

目次

IF構文の条件から抜ける

こんにちは。伊川(@naonaoke)です。

今回は、条件から、抜ける方法を紹介します。

IF構文で作成した条件から抜けるということは、この段階では理解できないかも知れません。

しかし、ACCESSの入力フォーム上で入力ミスを防ぐ、偉大な考え方です。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は、上司から下記のような依頼を受けました。

・顧客情報を入力するときに、電話番号の桁数が違うので、困っている。

・正しい情報を入力させるように、ACCESSの入力フォームを改善してほしい。

なにか入力ミス防止する良い方法はあるだろうか?

解決策

回答
sesuo2.jpg
・正しい情報が入力後、IF構文の条件から抜ける。
・正しい情報が入力されないと、更新させない。
・フォームの更新前処理にコードを仕込む。

条件から抜けるとは?

IF構文の概要
IF ○○○○○○○○ Then
▲▲▲=■■■■■■
Endif

このような条件判定の文を紹介しました。


主キーの重複登録について、事前に防止する方法かすでに紹介済です。

今回は、固定の電話番号に、10桁以外の数字が入力されたらその時点で、エラーの表示を出します。

同じく、携帯の電話番号に、11桁以外の数字が入力されたらその時点で、エラーの表示をだします。

正しい電話番号の桁数が入力されたら、その時点で、IF構文の条件から抜けて、次に進みます。

 

エラー表示の例



上の図のようなエラーが表示されます。

フォームの更新前処理に、IF構文を記載する

作成手順 その1


上の図のように更新前処理で、イベントプロシージャを選択して、VBAのエディタを開きます。

 

Private Sub 携帯電話番号_BeforeUpdate(Cancel As Integer)

If Len(Me.[携帯電話番号]) = 11 Then Exit Sub
MsgBox "携帯電話番号の桁数がおかしくない?"
Cancel = True

End Sub


Private Sub 固定電話番号_BeforeUpdate(Cancel As Integer)

If Len(Me.[固定電話番号]) = 10 Then Exit Sub
MsgBox "固定電話番号の桁数がおかしくない?"
Cancel = True


End Sub

この2つコードを入力します。

作成手順 その2

If Len(Me.[携帯電話番号]) = 11 Then Exit Sub

もし、携帯電話番号の文字数が、11桁であるならば、IF構文の条件から抜ける。

MsgBox “携帯電話番号の桁数がおかしくない?”

Cancel = True

End IF

11桁でなければ、「携帯電話番号の桁数がおかしくない?」と表示する。

そして、キャンセルする。

これで完成です。

入力規制をつける問題点

このように入力規制をつけると、入力ミスはなくなります。

しかし、システム作成に膨大な時間が必要になります。

今回は、2行でしたが、100行あった場合等を考えると、悩みどころです。

この費用対効果をどのように考えるかが問題です。

伊川の個人的な意見

ここがポイント
Function8.png
入力規制は、絶対に必要です。間違った情報を入力して、それを信じたらおしまいです。誰かが、その間違ったデータベースを修正することになるからです。その場で、正しい情報を入力するのが一番です。

まとめ

今回のまとめ
sesuo6.jpg
社内には、必ず入力ミスをする人がいます。
何度、注意をしてもミスをする人がいます。伊川もその一人でした。
IF構文で条件判定をするようになってから、ミス率38%が、ミス率が10%まで低下しました。
お互いにいやな思いをしないで、仕事ができるようになりました。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事