我正在开发Access 2010数据库。我对此很陌生,对VBA知之甚少。
我有一个表单(基于查询)在文本框中显示某些项目的测试频率。它被命名为“TestFrequency”
然后我有3个组合框(分别命名为:Year1,Year2和Year3)。
我添加了一个按钮并创建了一个事件en“Onclick”,我想要做的是根据testfrequency值设置组合框的值。事件完成后,我还在弹出窗口中添加了一些消息框。
我尝试使用以下代码但无法正常工作:
Private Sub Reset_Click()
Dim Response As VbMsgBoxResult
Response = MsgBox("Do you want to reset planning to default test frequency?", vbQuestion + vbYesNo, "Planning Settings")
If Response = vbNo Then Exit Sub Else
Dim ctrl AS Controls
For Each ctrl From Me.Controls
If TestFrequency.Value = "Test Annually" Then
Me.Year1.Value = "Yes"
Me.Year2.Value = "Yes"
Me.Year3.Value = "Yes"
ElseIf TestFrequency.Value = "Test Every 2 years" Then
Me.Year1.Value = "No"
Me.Year2.Value = "Yes"
Me.Year3.Value = "No"
ElseIf TestFrequency.Value = "Test every 3 years" Then
Me.Year1.Value = "No"
Me.Year2.Value = "No"
Me.Year3.Value = "Yes"
ElseIf TestFrequency.Value = "Ad-hoc" Then
Me.Year1.Value = "No"
Me.Year2.Value = "No"
Me.Year3.Value = "No"
End If
Next ctrl
MsgBox "Settings were changed.", vbInformation
End If
End Sub
有人可以帮帮我吗?谢谢!
答案 0 :(得分:0)
如果列表顶部为“是”,下一个为“否”,则尝试此操作(ComboBox使用.ListIndex
进行选择):
Private Sub Reset_Click()
If vbNo = MsgBox("Do you want to reset planning to default test frequency?", vbQuestion + vbYesNo, "Planning Settings") Then Exit Sub
Select Case TestFrequency.Value
Case "Test Annually"
Year1.ListIndex = 0
Year2.ListIndex = 0
Year3.ListIndex = 0
Case "Test Every 2 years"
Year1.ListIndex = 1
Year2.ListIndex = 0
Year3.ListIndex = 1
Case "Test every 3 years"
Year1.ListIndex = 1
Year2.ListIndex = 1
Year3.ListIndex = 0
Case "Ad-hoc"
Year1.ListIndex = 1
Year2.ListIndex = 1
Year3.ListIndex = 1
End Select
If Err.Number = 0 Then MsgBox "Settings were changed.", vbInformation
End Sub