Access 2010 VBA如何检查列表框的值

Access 2010 VBA如何检查列表框的值,vba,ms-access-2010,Vba,Ms Access 2010,好的,只是一个警告,我是一个完全的VBA和访问新手,但我正在努力 我有一个表单,上面有一些列表框,我想做的是根据“父”列表框的选择隐藏或显示表单的某些列表框和字段 例如,“位置”列表框包含许多选项,其中一个称为“加拿大” 当用户选择“加拿大”时,我希望表单显示另一个名为“省”的框 当前代码: Private Sub Form_Load() MsgBox "Form Loaded" If Forms![Tickets]![location] = "Canada" Then MsgB

好的,只是一个警告,我是一个完全的VBA和访问新手,但我正在努力

我有一个表单,上面有一些列表框,我想做的是根据“父”列表框的选择隐藏或显示表单的某些列表框和字段

例如,“位置”列表框包含许多选项,其中一个称为“加拿大”

当用户选择“加拿大”时,我希望表单显示另一个名为“省”的框

当前代码:

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的背景,所以我仍然掌握这门语言


如果列表框的SQL设置为:

SELECT Id, SomeOtherField FROM aTable
然后列表框的值是Id,而不是SomeOtherField

在这种情况下,你应该说:

If Me.[location] = 1 Then  ''Where 1 is the Id you want.
要检查控件的值,可以单击某个项并使用ctrl+G来获取即时窗口,然后键入

?Screen.ActiveControl 

看一看好吧,我看了,但我觉得有点模糊。我有列表框之类的东西,这件事是我一直在努力解决的。我已经能够很好地触发事件,只要它在If语句之外,If语句本身就不会被满足,消息框就会弹出。我想我试图错误地选择控件?尝试了以下代码:Private Sub location_Click()MsgBox“Description was clicked!”(如果Trim(Me.location)=“detaction Page”则MsgBox“Description was clicked!”(如果End Sub与事件类似,则结束):Private Sub cboNode_GotFocus()如果Trim(Me.cboLocation&“”)=vbNullString然后MsgBox“请选择位置”Me.cboLOcation.SetFocus End If End Sub未触发If语句或框。我遗漏了一些明显的我确信的东西。你的列表框的SQL是什么?也许它不等于“加拿大”,例如,它可能等于2。您可以单击一个项目并使用ctrl+G来获得即时窗口,键入?Screen.activecontrol。此外,请确保属性页上的事件行设置为
[event Procedure]