回答編集履歴

1

コード例追記

2024/04/22 16:42

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -2,3 +2,35 @@
2
2
  実行時バインディングに変更してから配布すべきです。
3
3
 
4
4
  [事前バインディングと実行時バインディングの違い](https://sunafukin.jp/?p=662)
5
+
6
+
7
+ ---
8
+ 環境によるバージョン違い等の影響を受けるADODBの代わりにDLookup関数を使う方法に書き換えるコード例です。
9
+
10
+ ```vba
11
+ 'ボタンを押した際のイベント
12
+ Private Sub btnログイン_Click()
13
+ Dim str社員コード As String
14
+ Dim strパスワード As String
15
+ Dim var権限区分 As Variant
16
+ str社員コード = Me.txt社員コード
17
+ strパスワード = Me.txtパスワード
18
+ var権限区分 = DLookup("権限区分", "パスワードリスト", "社員コード='" & str社員コード & "' AND パスワード='" & strパスワード & "'")
19
+
20
+ If IsNull(var権限区分) Then
21
+ MsgBox "データは存在しません"
22
+ Else
23
+ MsgBox "ようこそ"
24
+ 'メニューを開く
25
+ DoCmd.OpenForm "メインメニュー"
26
+ '権限を確認して「環境設定ボタン」を制御する
27
+ If var権限区分 = 9 Then '0:一般ユーザー 9:管理者
28
+ Forms.メインメニュー.btn設定.Enabled = True
29
+ Else
30
+ Forms.メインメニュー.btn設定.Enabled = False
31
+ End If
32
+ 'この画面を閉じる
33
+ DoCmd.Close acForm, Me.Name
34
+ End If
35
+ End Sub
36
+ ```