我已經為我的資料庫創建了一個登錄螢屏,我想將一個變數傳遞給一個文本框,該文本框將在您驗證后位于“主選單”表單上。
當您單擊“登錄”時,這是我的代碼。
'Login button submit, validate, welcome message & main menu navigation
Private Sub cmd_login___Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
'query to check if login details are correct
strSQL = "SELECT Name FROM LoginQuery WHERE Username = """ & Me.txt_username.Value & """ AND Password = """ & Me.txt_password.Value & """"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL)
If rst.EOF Then
MsgBox prompt:="Incorrect username/password. Try again.", buttons:=vbCritical, title:="Login Error"
Me.txt_username.SetFocus
Else
MsgBox prompt:="Hello, " & rst.Fields(0).Value & ".", buttons:=vbOKOnly, title:="Login Successful"
DoCmd.Close acForm, "frm_login", acSaveYes
DoCmd.Close
DoCmd.OpenForm "MainMenu"
End If
Set db = Nothing
Set rst = Nothing
這行代碼在這里:
MsgBox prompt:="Hello, " & rst.Fields(0).Value & ".", buttons:=vbOKOnly, title:="Login Successful"
在螢屏上顯示一個提示,說使用“rst.Fields(0).Value”變數登錄成功,該變數是用戶的全名,但我更喜歡按下更少的視窗和按鈕,而是將此變數傳遞給一個新的空白表單上面有一個文本框。
我將MainMenu表單上的文本框命名為txt_welcome。
我承認我在這方面花了太長時間,我嘗試在 IF 陳述句中附加以下內容:
Dim name As String
name = "SELECT Name FROM LoginQuery WHERE Username = """ & Me.txt_username.Value & """ AND Password = """ & Me.txt_password.Value & """"
[MainMenu]![txt_welcome].Value = name
[MainMenu]![txt_welcome].Value = "dsfadsf"
MainMenu!txt_welcome.value = "justdisplaysomethingplz"
沒有任何效果,請有人幫我解決這個問題,表面上看起來很容易,但教程要么過時要么太復雜。謝謝
uj5u.com熱心網友回復:
您可以通過方法的OpenArgs引數傳遞它DoCmd.OpenForm。
DoCmd.OpenForm "MainMenu", OpenArgs:="Something"
然后,在 MainMenu 表單上,在表單加載時讀取其值:
Private Sub Form_Load()
If Not IsNull(OpenArgs) Then Debug.Print OpenArgs
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/354464.html
