【发布时间】:2014-04-14 23:30:51
【问题描述】:
好吧,只是一个警告,我是 VBA 和 Access 的新手,但我正在全力以赴。
我有一个带有一些列表框的表单,我想做的是根据“父”列表框的选择隐藏或显示表单的某些列表框和字段。
即“位置”列表框包含许多选项,其中一个名为“加拿大”
当用户选择“加拿大”时,我希望表单显示另一个名为“省”的框
当前代码:
Private Sub Form_Load()
MsgBox "Form Loaded"
If Forms![Tickets]![location] = "Canada" Then
MsgBox "location is Canada!"
End If
End Sub
msgBox 在 if 语句中只是为了让我查看 if 语句是否被触发,每当我发现这一点时,我都会将其更改为我想要执行的代码。
我以为我知道如何从 VBA 引用表单上的控件,但我可能做错了。我来自 PHP/Mysql 背景,所以我还在掌握这门语言。
干杯
【问题讨论】:
-
好的,我看了一下,但对我来说有点模糊。我有列表框等,该事件是我正在努力解决的问题。我已经能够很好地触发事件,只要它在我的 If 语句之外,就不会满足 if 语句本身来弹出消息框。我想我试图错误地选择控件?
-
尝试了以下代码: Private Sub location_Click() MsgBox "Description was clicked!" If Trim(Me.location) = "Detachment Page" Then MsgBox "Description was clicked!" End If End Sub 与您的事件类似: Private Sub cboNode_GotFocus() If Trim(Me.cboLocation & "") = vbNullString Then MsgBox "请选择位置" Me.cboLOcation.SetFocus End If End Sub 它没有触发 if 语句或盒子。我肯定遗漏了一些明显的东西。
-
你的列表框的SQL是什么?也许它不等于'canada',它可能等于,例如,等于2。您可以单击一个项目并使用ctrl+G获取即时窗口,输入?Screen.ActiveControl
-
另外,请确保您的属性页面上的事件行设置为
[Event Procedure]
标签: vba ms-access-2010