访问,Select 案例 ActiveControl.Name?
Access, Select Case ActiveControl.Name?
我在表单访问中有 2 个组合框(c1
、c2
),带有按钮 Search,如果用户从 c1
并点击 Search 它应该打开一个 FORM1
,如果用户从 c2
中选择一个值并点击 Search 它应该打开 FORM2
.
Private Sub Commande6_Click()
Select Case ActiveControl.Name
Case "c1"
DoCmd.OpenForm "FORM1"
Case "c2"
DoCmd.OpenForm "FORM2"
Case Else
'traitement
End Select
End Sub
如果您单击组合框然后单击 搜索 按钮,则组合框不是最后一次单击,因此它不是活动的 - 搜索按钮是(Commande6
在你的情况下)
Public lastCBclicked as String
Private Sub c1_Click()
lastCBclicked = ActiveControl.Name
End Sub
Private Sub c2_Click()
lastCBclicked = ActiveControl.Name
End Sub
Private Sub Commande6_Click()
Select Case lastCBclicked
Case "c1"
DoCmd.OpenForm "FORM1"
Case "c2"
DoCmd.OpenForm "FORM2"
Case Else
'traitement
End Select
End Sub
使用 ActiveControl 无效。当您单击搜索时,控件转到搜索按钮。
您可以通过几种方式处理。您可以 (a) 查询两个控件以检测哪个未设置为默认值,或者 (b) 跟踪最后一个获得焦点的控件(可能使用隐藏控件)。
编辑:代码见 ashleydawgs 答案。
我在表单访问中有 2 个组合框(c1
、c2
),带有按钮 Search,如果用户从 c1
并点击 Search 它应该打开一个 FORM1
,如果用户从 c2
中选择一个值并点击 Search 它应该打开 FORM2
.
Private Sub Commande6_Click()
Select Case ActiveControl.Name
Case "c1"
DoCmd.OpenForm "FORM1"
Case "c2"
DoCmd.OpenForm "FORM2"
Case Else
'traitement
End Select
End Sub
如果您单击组合框然后单击 搜索 按钮,则组合框不是最后一次单击,因此它不是活动的 - 搜索按钮是(Commande6
在你的情况下)
Public lastCBclicked as String
Private Sub c1_Click()
lastCBclicked = ActiveControl.Name
End Sub
Private Sub c2_Click()
lastCBclicked = ActiveControl.Name
End Sub
Private Sub Commande6_Click()
Select Case lastCBclicked
Case "c1"
DoCmd.OpenForm "FORM1"
Case "c2"
DoCmd.OpenForm "FORM2"
Case Else
'traitement
End Select
End Sub
使用 ActiveControl 无效。当您单击搜索时,控件转到搜索按钮。
您可以通过几种方式处理。您可以 (a) 查询两个控件以检测哪个未设置为默认值,或者 (b) 跟踪最后一个获得焦点的控件(可能使用隐藏控件)。
编辑:代码见 ashleydawgs 答案。