0

アクセス2010データベースに取り組んでいます。私はこれにかなり慣れておらず、VBAの知識はあまりありません。

特定の項目のテスト頻度をテキスト ボックスに表示する (クエリに基づく) フォームがあります。「TestFrequency」という名前です

次に、3 つのコンボ ボックス (名前はそれぞれ Year1 、 Year2 、 Year3 ) があります。

私はボタンを追加し、「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

誰か助けてくれませんか?ありがとう!

4

1 に答える 1

0

リストの一番上に「はい」があり、次が「いいえ」の場合は、これを試してください(コンボボックスは選択に使用.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
于 2013-09-11T07:16:32.887 に答える