Microsoft Access Club >初心者講座 >Mail管理ソフト >このページ >次頁 - 前項


システム構成_モジュール-1:Mail管理ソフト03



ここでは、使用する標準モジュールを紹介します。標準モジュールはAccessファイル内のすべてのプロシージャから呼び出すことができます。頻繁に利用するプロシージャの一部分を標準モジュールとして独立させる方法は、プロシージャの保守管理面で優れています。以下のプロシージャはすべて「Module」に記載 しています。

フォームオープンにパスワード設定

Function FormOpen_Pass()

    Dim strMsg1 As String
    Dim strMsg2 As String
    Dim strmsg3 As String
    Dim strPass As String
    strMsg1 = "管理者登録〈管理者PassWordの設定〉がされていません。" & Chr(13) _
            & "このフォームは管理者専用画面です。" & Chr(13) _
            & "パスワード設定を行うことをお勧めします。" & Chr(13) _
            & "設定方法は『環境設定処理画面』で行います。" & Chr(13) _
            & "メッセージを非表示にするには、『環境設定処理画面』で行います。"
    strMsg2 = "管理者専用ファイルのためパスワードを入力して下さい。"
    strmsg3 = "パスワード相違のため開くことができません。"
    strPass = DLookup("PASS", "tbl_Kankyo", "ID=1")
    
    '環境設定画面で警告メッセージを表示にしている場合。
    If DLookup("CK1", "tbl_Kankyo", "ID=1") = False Then
        '管理者パスワードが未設定である場合。
        If strPass = 0 Then
            MsgBox strMsg1, vbCritical
            Exit Function
        Else
            'InputBoxでパスワードを求めます。
            Select Case InputBox(strMsg2, MyTitle)
                'テーブルtbl_kankyoのPASSフィールドの値と照合します。
                Case Is <> strPass
                    DoCmd.OpenForm "frm_index"
                    MsgBox strmsg3, vbCritical, MyTitle
                    'フォームオープンをキャンセルします。
                    Exit Function
                Case ""
                    DoCmd.OpenForm "frm_index"
                    MsgBox strmsg3, vbCritical, MyTitle
                    Exit Function
                Case strPass  '次に進みます。
            End Select
        End If
    End If
End Function
解説
  1. フォームを開く権限を管理者に限定する場合、該当フォームの「フォームを開くイベントプロシージャ」から呼び出します。

既定の署名

Function Shomei() As String

    Dim str施設名 As String
    Dim str所在地 As String
    Dim str電話番号 As String
    Dim strMail As String
    
    str施設名 = DLookup("施設名", "tbl_kankyo", "ID=1")
    str所在地 = DLookup("施設住所", "tbl_kankyo", "ID=1")
    str電話番号 = DLookup("施設電話番号", "tbl_kankyo", "ID=1")
    strMail = DLookup("施設Email", "tbl_kankyo", "ID=1")
    
    Shomei = Chr(13) & Chr(10) & _
             Chr(13) & Chr(10) & _
             Chr(13) & Chr(10) & _
             str施設名 & Chr(13) & Chr(10) & str所在地 & Chr(13) & _
             Chr(10) & str電話番号 & Chr(13) & Chr(10) & strMail
    
End Function
解説
  1. このプロシージャは、メール本文に記載する施設名等を環境設定テーブル(tbl_kankyo)から取得します。

独自の署名

Function Dokujishomei() As String
    
    Dokujishomei = Chr(13) & Chr(10) & Chr(13) & Chr(10) & Chr(13) & _
                   Chr(10) & DLookup("署名", "tbl_kankyo", "ID=1")
    
End Function
解説
  1. 環境テーブル(tbl_kankyo)から独自署名の文字列を取得します。

Msgbox等のタイトルに使用

Function MyTitle()

    Dim strtitle As String
    strtitle = DLookup("施設管理者", "tbl_kankyo", "ID=1")
    MyTitle = strtitle
    
End Function
解説
  1. メッセージボックスのタイトルを環境設定テーブル(tbl_kankyo)から取得します。管理者名やシステム責任者名など、自由に命名することができます。

満年齢の年を返す

Function manyear(dat年月日) As Integer

    Dim nowbirthday As Date

    '日付形式であるかどうか判断し、Null対策も含みます。
    If IsDate(dat年月日) Then
        '日付間隔を算出するDateDiff関数を用いて年を計算します。
        manyear = DateDiff("yyyy", dat年月日, Date)
        '今年の誕生日を求めます。
        nowbirthday = DateSerial(Year(Date), Month(dat年月日), Day(dat年月日))
        '今年の誕生日が過ぎていれば、求めた満年齢から1歳引きます。
        If nowbirthday > Date Then
            manyear = manyear - 1
        End If
    End If

End Function
解説
  1. 引数のdat年月日から満年齢の年を算出するプロシージャです。

満年齢の月を返す

Function keikamonth(年月日) As Integer

    Dim nowbirthday As Double

        If IsDate(年月日) Then
               nowbirthday = (DateDiff("m", 年月日, Date))
                    If (DatePart("d", 年月日) > DatePart("d", Date)) Then
                           nowbirthday = nowbirthday - 1
                 End If
                     If nowbirthday < 0 Then
                     nowbirthday = nowbirthday + 1
                    End If
        keikamonth = nowbirthday Mod 12

    End If

End Function
解説
  1. 引数のdat年月日から満年齢の月を算出するプロシージャです。

 

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

 


システム構成_モジュール-1:Mail管理ソフト03


-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。