我需要大量的數據從Access數據庫中篩選。我正在構建一個程序來完成此任務,但遇到了在過濾器中使用多個條件的問題。例如,下面是使用特定的月份和顏色供選擇的測試代碼:過濾一個數據集與多個條件
If RadioButton1.Checked Then
If RadioButton4.Checked Then
Me.BindingSource.Filter = "[January] = 'True' AND [Red] = 'True'"
ElseIf RadioButton5.Checked Then
Me.BindingSource.Filter = "[January] = 'True' AND [Yellow] = 'True'"
ElseIf RadioButton6.Checked Then
Me.BindingSource.Filter = "[January] = 'True' AND [Blue] = 'True'"
Else Me.BindingSource.Filter = "[January] = 'True'"
End If
ElseIf RadioButton2.Checked Then
If RadioButton4.Checked Then
Me.BindingSource.Filter = "[February] = 'True' AND [Red] = 'True'"
ElseIf RadioButton5.Checked Then
Me.BindingSource.Filter = "[February] = 'True' AND [Yellow] = 'True'"
ElseIf RadioButton6.Checked Then
Me.BindingSource.Filter = "[February] = 'True' AND [Blue] = 'True'"
Else Me.BindingSource.Filter = "[February] = 'True'"
End If
ElseIf RadioButton3.Checked Then
If RadioButton4.Checked Then
Me.BindingSource.Filter = "[March] = 'True' AND [Red] = 'True'"
ElseIf RadioButton5.Checked Then
Me.BindingSource.Filter = "[March] = 'True' AND [Yellow] = 'True'"
ElseIf RadioButton6.Checked Then
Me.BindingSource.Filter = "[March] = 'True' AND [Blue] = 'True'"
Else Me.BindingSource.Filter = "[March] = 'True'"
End If
End If
現在,這是連三個月,色彩大量的代碼。必須有更好的方法來做到這一點,對吧?有了表格中的很多字段,我需要對其進行排序,這需要花費我幾年時間才能完成。
如果你有12分佈爾列了好幾個月,而不是一個字符串列,我會重溫數據庫設計。相同的一堆顏色。 – Plutonix
其原因是,項目可以有多個月,多色彩等 – MoNoGoAt
這僅僅是一個不同的設計缺陷:你錯過了一個1:M的關係。它不需要12列來描述一個屬性。 – Plutonix