Microsoft Access Club >関数を使いこなす >このページ >次頁 < 前項


プロシージャの書き換えろ : 関数を使いこなす



十人十色という諺がありますが、 プロシージャも10人が作成すれば10通りの記述方法があります。つまり、何とおりにでも書き換えすることができます。

ここでは、プロシージャの書き換えについて事例をあげてみていきましょう。

プロシージャの書き換え

サンプルとして以下のプロシージャを記述します。

Function PassWordEnter()

    Dim strinput As String
    Dim varEnterValue As Variant
    Const PassWord = 1234
    
    strinput = "パスワードを入力して下さい"
    varEnterValue = InputBox(strinput)
    If PassWord <> varEnterValue Then
        DoCmd.Quit
    End If
    
End Function
解説

このプロシージャを実行すると、以下のようにアクションが開始されます。

  1. InputBoxが表示される。

  1. 1234以外の数字が入力されなければ、Accessが終了する。
1行に書き換え

変数を省略して最大限シンプルにしてみましょう。では、以下のようにプロシージャを書き換えます。

Function PassWordEnter改()

    If 1234 <> InputBox("パスワードを入力して下さい") Then DoCmd.Quit
    
End Function

いやにすっきりしましたね。これでもかぁ、ってな具合に無駄を省きました。

コンピュータの考え方と相違

しかし、このプロシージャは、コンピュータに命令を伝える組み方としては正しくないんです。この場合でも、正確に動作するのはAccessがきちんとプロセスを処理 するからです。しかし、プロシージャの記述を覚えたての場合は、とにかく記述することが目的ですから、これはこれでよしとしましょう。。。

プロシージャをフォームの開く時イベントプロシージャの作成

では、以下のプロシージャをフォームの開く時イベントに記述しましょう。

Private Sub Form_Open(Cancel As Integer)

Call PassWordEnter

End Sub
解説

Callステートメントを用いて、Subプロシージャ PassWordEnter を呼び出しています。なお、引数を格納する ( ) は、空白である場合(引数を持たない時) は全く不要です。

これで、いとも簡単に「認証機能つきデータベース」が作成できました。データベースを閉じるアクション(DoCmd.Quit) を備え汎用的に仕上げていますので、どのフォームからも呼び出すことが出来ますね。

インデントの使用

このプロシージャ、全ての行が左詰めになっているので見にくいですね。一般的に、下記のように 字下げ を行ない読み易くして下さい。

Private Sub Form_Open(Cancel As Integer)

    Call PassWordEnter

End Sub

この字下げは、TABキーを押すことで簡単に実現できます。

2003/06/18

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


プロシージャの書き換えろ : 関数を使いこなす


 

-Microsoft Access Club-

アダルト・ゲーム配信可能なPLESKパネル付属の専用・共有レンタルサーバーを提供しています。
アダルトやゲーム配信が可能です。
全専用/共有レンタルサーバーにPLESKパネルをインストール済み。