Access2000で家族メール? その6 |
2001.07.15 tsuchiya 我が家で実際にAccess家族メールを使ってみました。 メールの内容はともかくとして数日で70通ほどの送受信が行われました。 当初は1行メールを想定していましたが、数行のメールもいくつかあり半角255文字を超える可能性が出てきました。 そこで、送信内容、返信内容のフィールドはテキスト型からメモ型に変更します。 フラグの変更によるホルダの移動、メッセージの表示は問題なく動作しました。 まずは成功でしょう。 今日はセキュリティを追加します。 家族であってもプライバシーがあります。他の人のメールを簡単に見られる状態は避けなければなりません。 前々回、紹介したスタートアップフォームにパスワードに関するコードを記述します。 テキストボックスの名前を上から順に PASS, NOW_PASS, NEW_PASS とします。 パスワードは半角8文字以内とし、いつでも本人が変更可能とします。 パスワードの値を保持するためにPASSWORDテーブルを作成します。デフォルト値としてフィールド名と同じ文字をデータとして入れておきます。フィールド名Xは管理者用として確保しましたが、今回は使用しません。 |
![]() |
![]() |
パスワードに9文字以上入力されたときの処理です。 |
Private Sub PASS_AfterUpdate() If Len(PASS.Text) > 8 Then MsgBox "パスワードは半角8文字以内です。" PASS.Value = "" End If End Sub Private Sub NOW_PASS_AfterUpdate() ’ If Len(NOW_PASS.Text) > 8 Then MsgBox "パスワードは半角8文字以内です。" NOW_PASS.Value = "" End If End Sub Private Sub NEW_PASS_AfterUpdate() If Len(NEW_PASS.Text) > 8 Then MsgBox "パスワードは半角8文字以内です。" NEW_PASS.Value = "" End If End Sub Private Sub アカウント_AfterUpdate() PASS.SetFocus End Sub |
スタートボタンのクリックイベントを変更します。太字部分が追加されました。 |
Private Sub スタート_Click() Dim Account As String Select Case アカウント Case 1 Account = "A" Case 2 Account = "B" Case 3 Account = "C" Case 4 Account = "D" Case 5 Account = "E" Case Else MsgBox "アカウントを指定してください。" Exit Sub End Select If PASS.Value = DLookup(Account, "PASSWORD") Then DoCmd.Close DoCmd.OpenForm "受信トレイ", acNormal, , , , acDialog, Account Else MsgBox "パスワードが違います。" PASS.Value = "" PASS.SetFocus End If End Sub |
パスワード変更処理です。 |
Private Sub パスワード変更_Click() Dim Account As String Select Case アカウント Case 1 Account = "A" Case 2 Account = "B" Case 3 Account = "C" Case 4 Account = "D" Case 5 Account = "E" Case Else MsgBox "アカウントを指定してください。" Exit Sub End Select If NOW_PASS.Value = DLookup(Account, "PASSWORD") Then If IsNull(NEW_PASS.Value) Then MsgBox "新しいパスワードを入力してください。" NEW_PASS.SetFocus Exit Sub End If Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("PASSWORD", dbOpenTable) rs.Edit Select Case アカウント Case 1 rs!A = NEW_PASS.Value Case 2 rs!B = NEW_PASS.Value Case 3 rs!C = NEW_PASS.Value Case 4 rs!D = NEW_PASS.Value Case 5 rs!E = NEW_PASS.Value End Select rs.Update rs.Close MsgBox "新しいパスワードに変更しました。" NEW_PASS.Value = "" NOW_PASS.Value = "" End If End Sub |
本日はここまで! |