根據貼出代碼的初衷和思路,建議修改和調整如下:
很抱歉之前的代碼中出現了筆誤,現在已經更正。如果操作中有任何問題,請詢問。
私有Sub登錄_Click()
首先聲明ADO對象等變量
Dim conn作為新的ADODB。關系
Dim rs As ADODB。記錄集
將用戶名顯示為字符串
將用戶通行證顯示為字符串
Dim RecordLogInData As Boolean該變量用於判斷是否記錄登錄信息。
Set conn = CurrentProject。關系
Set rs = New ADODB。記錄集
首先判斷兩個文本框是否為空。
如果is null(me . txt _ username . value),則
MsgBox“用戶名不能為空,請重新輸入!”,vbo only+VB information,“提示信息“
Me.txt_用戶名。setfocus
出口接頭
else if is null(me . txt _ password . value)然後
MsgBox“密碼不能為空,請重新輸入,vbo only+VB information,“提示信息“
Me.txt_ password.setfocus
出口接頭
如果…就會結束
打開“管理用戶”數據表。
盧比打開“管理用戶”,conn的管理用戶是管理員的用戶名和密碼數據表。
“TEXT”屬性只能在文本框有焦點時使用。
在大多數情況下,應該使用Value屬性而不是TEXT屬性來引用文本框的內容。
Username = txt _ username註意不要使用TEXT屬性,否則會出現錯誤(此處使用默認屬性值)。
Userpass = txt _ password註意同上。
循環判斷用戶名和密碼是否正確,並註意逐壹記錄比較結果。
最初的post代碼沒有考慮這個問題,只有當管理用戶表恰好只有壹條記錄時,它才能正確運行。
如果rs。記錄集。RecordCount & gt那就0
直到rs。電滲流
如果rs!用戶名=用戶名和rs!密碼=用戶密碼
“RecordLogInData =True”用戶名和密碼正確,則徽標可以記錄登錄信息。
Exit Do此時沒有必要繼續,跳出循環以節省系統開銷。
* * * *在rs之前被省略。“下壹步”***
環
其他
MsgBox“管理用戶表中沒有用戶信息!”,vbo only+VB information,“提示信息“
出口接頭
如果…就會結束
將登錄信息寫入管理員登錄記錄數據表。
rs。關閉
如果RecordLogInData =True,則
盧比打開“管理員登錄記錄”,conn,adopen dynamic,adlockoptimal。
rs。添加新內容
rs!用戶名=用戶名
rs!登錄時間=現在()
現在註銷時間不確定,暫時不用記錄。
rs。更新
rs。關閉
DoCmd。關閉
DoCmd。開放式“機器材料管理系統”
其他
MsgBox“管理員用戶或密碼錯誤!”,vbo only+VB information,“提示信息“
Me.txt_ password.setfocus
出口接頭
如果…就會結束
末端接頭