参加者が3回のアンケート(1,2,3回)に回答したデータベースがあり、特定の参加者についてどのアンケートが完了したかを判断するフォームを作成しようとしています(ID)を選択し、既存のレコードに対してボタンを無効にします(調査1を追加、調査2を追加、調査3を追加)。レコードが存在する場合にコントロールを有効にする
フォームがリンクされているテーブル(アンケート)には、フィールドIDとSurvey_Number(1〜3)があります。ここで、1人の参加者(ID)は、入力された調査の数に応じて0〜3のエントリを持つことができます。
私は現時点で非常に不安定に動作しています:私は、2番目のコンボボックスが一時的な配列として使用されているカスケーディングコンボボックスアプローチを使用しています(私はこれを謝罪します - 私はコードしません) (最初のコンボボックスで)。
Private Sub Combo29_AfterUpdate()
Dim i As Integer
If Not IsNull(Me.Combo29) Then
If DCount("ID", "Surveys", "[ID] =" & Me.Combo29) > 0 Then
Combo2.RowSource = "SELECT Surveys.Survey_Number " & _
"FROM Surveys " & _
"WHERE Surveys.ID = " & Combo29.Value
Me.Combo2.Requery
i = 0
For i = 0 To (Me.Combo2.ListCount - 1)
Select Case Me.Combo2.ItemData(i)
Case "1"
Me!Command34.Enabled = False
Case "2"
Me!Command35.Enabled = False
Case "3"
Me!Command36.Enabled = False
End Select
i = i + 1
Next
Else
MsgBox "This is the first time this participant has responded"
Me!Command34.Enabled = True
Me!Command35.Enabled = True
Me!Command36.Enabled = True
Me.Combo2 = Me.Combo2.ItemData(0)
End If
End If
End Sub
エントリがないとき、これはうまく動作します(すべてのボタンを有効にします)が、いくつか/ 1調査存在つまりがある場合には、(1)正確にItemDataを読み取れません。 1、2、3が入力されている場合は、ボタン2と3だけが無効になります。
素晴らしい - これは完全に機能します!コードを掃除していただきありがとうございます。読むのがずっと簡単です。 – Giles