vba - 将变量从一种形式传递到另一种形式
问题描述
我为我的数据库创建了一个登录屏幕,它可以工作。
我想将一个变量传递给一个文本框,一旦你被验证,它将出现在“主菜单”表单上。
当您单击“登录”时,这是我的代码。
'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
此行在屏幕上显示一个提示,提示使用“rst.Fields(0).Value”变量登录成功,该变量是用户的全名,但我希望按下更少的窗口和按钮,而是将此变量传递给新的带有文本框的空白表单。
MsgBox prompt:="Hello, " & rst.Fields(0).Value & ".", buttons:=vbOKOnly, title:="Login Successful"
我将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"
解决方案
您可以通过方法的OpenArgs
参数传递它DoCmd.OpenForm
。
DoCmd.OpenForm "MainMenu", OpenArgs:="Something"
然后,在 MainMenu 表单上,在表单加载时读取其值:
Private Sub Form_Load()
If Not IsNull(OpenArgs) Then Debug.Print OpenArgs
End Sub
推荐阅读
- parameter-passing - Azure Table storage to Azure Table storage using Azure Data Factory using DateTime Parameterized query
- java - 在 JavaEE Maven 项目中使用 Hibernate 时出现“java.lang.NoClassDefFoundError: javax/persistence/criteria/Selection”错误
- c# - 你如何检测 On MessageActivityAsync 中的活动对话框
- javascript - mongodb changestream“管道”不起作用
- javascript - Codewars 挑战 - Hamelin 的聋鼠 - JavaScript - 如何通过特定字符集拆分字符串?
- graphql - 意外
: 一个graphql文件可以只导入其他文件而不做其他事情吗? - c - 将 BIGNUM 转换为原始二进制文件
- bash - 为什么在本地通过 SSH 初始化远程 bash 脚本时无法访问 GitHub?
- c++ - 在数组中显示第一个元素用户输入
- compiler-construction - 如何在coq中分析两个看似等效但行为不同的程序?