Ms access 如何在私有模块中创建公共变量

Ms access 如何在私有模块中创建公共变量,ms-access,vba,Ms Access,Vba,基本上,它是一个登录表单,我试图保存ID,即Me.CBOUsername.Column(0),但当我尝试在另一个表单中调用它时,我遇到了一个错误 Option Compare Database Option Explicit Public ID_ As String Private Sub Command4_Click() Dim strCBOPass As String Dim strPassword As String strCBOPass = Me.CBOUser

基本上,它是一个登录表单,我试图保存ID,即Me.CBOUsername.Column(0),但当我尝试在另一个表单中调用它时,我遇到了一个错误

Option Compare Database
Option Explicit
Public ID_ As String
Private Sub Command4_Click()
    Dim strCBOPass As String
    Dim strPassword As String

    strCBOPass = Me.CBOUsername.Column(1)
    strPassword = Me.txtpassword

    If strCBOPass = strPassword Then
        MsgBox "Login Successful!"
        DoCmd.OpenForm "Form1"
        DoCmd.Close acForm, Me.Name
        ID_ = Me.CBOUsername.Column(0)

    Else
        MsgBox "login Unsuccessful!"
    End If
End Sub

用这种方式解释可能更容易一些

作为全局变量的示例:

Public Global_Variable1 as String

Public Sub Procedure1()
    Global_Variable1 = "Test"
End Sub

Public Sub Procedure2()
    Call Procedure1
    MsgBox (Global_Variable1)  'return Test
End Sub


通过右键单击并使用Insert>module

将公共模块添加到项目中并在其中声明变量来添加模块。可以通过声明变量的方式访问变量,但除非您有非常具体的原因需要在表单模块中声明变量,你不应该这样做。基本上,当用户登录时,单击“登录”,如果登录成功,它会使用用户ID,这是我在下一个表单中需要的东西,但我不能调用它。如果你在公共模块中声明变量,你可以在任何地方设置/调用它。在私有子模块之外调用它?是的。如果将行
Public ID\uuuu作为字符串
放在未附加到表单/报表的任何模块上,则可以在任何位置使用
ID\uuuuu
。很抱歉,屏幕标题中的项目是VBA编辑器的一部分。(你也可以使用VBA编辑器上的菜单,从插入>模块)我发现没问题,那么我应该把整个登录代码放在那里,然后在私有子里面调用它吗?@Billy-G会让你进入VB编辑器,那么我应该在模块中定义ID,然后以实际形式运行它?我需要在每种形式中调用公共变量吗?我如何以另一种形式调用它一旦您在模块中将变量定义为Public,然后将其用作普通变量。你不需要做任何特殊的事情来使用它。只有像
ID\ume.CBOUsername.Column(0)
这样的行在任何部分都有效