我有2个表格,在第一个表格上,我有一个标签可以打开第二个表格。第二种形式是关于数据库连接选项。我有2帧控制。第一帧名为frOpts,有3个选项按钮:Prod,Cert和Dev。第二帧是带有SQL连接选项的frType,可以使用ad登录,也可以使用SQL登录。选择SQL登录时,将启用2个用于用户名和密码的文本框,并从灰色变为白色。我还有一个正在完成所有工作的模块。如何将这些参数传递给构建SQL连接字符串的模块?我在模块中使用全局变量吗?另外,如何将选项按钮中的正确参数发送到主模块?在问之前我已经用我认为适当的谷歌搜索了。我使用此代码上的命令按钮进行了一个简单的测试:
Private Sub cmdOK_Click()
Select Case frOpts
Case 1: MsgBox "Prod"
Case 2: MsgBox "Cert"
Case 3: MsgBox "Dev"
End Select
'Me.Hide
End Sub
但这给了我一个类型不匹配。不知道我做错了什么。所以我的问题是:做我想要达到的目标的最佳方法是什么。
更新
以下是我最终的结果:
UserForm1
Private Sub CommandButton1_Click()
UserForm2.Show (False)
End Sub
Private Sub UserForm_Activate()
Me.Show (False)
End Sub
UserForm2
Public xOpt As Integer
Public xTxt As String
Public xType As Integer
Public xTxt2 As String
Private Sub CommandButton1_Click()
Select Case xOpt
Case 1: xTxt = "Prod"
Case 2: xTxt = "Cert"
Case 3: xTxt = "Dev"
End Select
Select Case xType
Case 1: xTxt2 = "AD login"
Case 2: xTxt2 = "SQLLogin"
End Select
Module1.BuildString xTxt, xTxt2
Unload UserForm2
End Sub
Private Sub OptionButton1_Click()
xOpt = 1
End Sub
Private Sub OptionButton2_Click()
xOpt = 2
End Sub
Private Sub OptionButton3_Click()
xOpt = 3
End Sub
Private Sub OptionButton4_Click()
xType = 1
End Sub
Private Sub OptionButton5_Click()
xType = 2
End Sub
模块1
Public Sub BuildString(sOpts As String, sType As String)
sConn = sOpts & " " & sType
Debug.Print sConn
End Sub
感谢您的帮助贾斯汀。没有你,我无法做到。
答案 0 :(得分:1)
将两个表单设置为ShowModal = False
第一种形式:
Private Sub CommandButton1_Click()
UserForm2.Show
UserForm2.xOpts = frOpts
End Sub
第二种形式:
Public xOpts As Integer
Private Sub CommandButton1_Click()
MsgBox xOpts
End Sub
根据评论进行修改:
在新工作表中尝试将其作为完整模拟:
ShowModal=False
和1个命令按钮。
UserForm1:
Private Sub CommandButton1_Click()
UserForm2.Show (False)
UserForm2.xOpt = "3"
End Sub
UserForm2:
Public xOpt As Integer
Private Sub CommandButton1_Click()
Debug.Print xOpt
End Sub