Microsoft Access 掲示板

締日・支払期日をユーザー定義関数で作りたい / 7

11 コメント
148 views
4 フォロー
7

If文は複数行で書く構文と、1行で書く構文があります。
1行構文

If 条件式 Then 真の処理 [Else 偽の処理]

複数行構文

If 条件式 Then
  真の処理 ・・・ 条件式を満たした場合の処理
[Else
  偽の処理] ・・・ 条件式を満たさない場合の処理
End If

条件が成立するときに実行するときのステートメントが一つのときは1行で書くことができます。(複数行でかいてもいいですが。)

つまり、

        If Day(売上日付) > 締め実日 Then 締め日付 = DateAdd("m", 1, 締め日付) 

は、下記と同等です。

        If Day(売上日付) > 締め実日 Then
             締め日付 = DateAdd("m", 1, 締め日付) 
        End If

hirotonさんから適切なアドバイスがありますが、変数の型は省略しない方がいいというのは私も同意見です。

Accessの場合は、フィールドの値を引数とすることが多くなるので、フィールドのデータ型やプロパティ設定と合わせるのがいいでしょう。

Null値になる可能性がある(値要求=いいえの場合)ならVariant型、
Null値になる可能性がない(値要求=はいの場合)ならフィールドのデータ型と同じにする。

戻り値の型もNull値を返す必要性がある場合はVariant型、Null値を返す必要性がない場合は想定する型で宣言します。

通報 ...