検索をクリックすると、製品のリストが表示されるプログラムがあります。新しい製品を作成するとき、自動的に True に設定される「アクティブ」チェックボックスがあります。ユーザーは任意の製品を編集でき、必要に応じて製品を「非アクティブ」に変更できます。
検索フォームには、アクティブと非アクティブの 2 つのチェックボックスがあります。プログラムが読み込まれると、[アクティブ] チェックボックスが常にチェックされます。ユーザーが非アクティブな製品も表示したい場合は、両方にチェックを入れることができるはずです。
アクティブにチェックを入れた時点で、リストボックスにはすべてのアクティブなアイテムが表示され、非アクティブにチェックを入れたときに非アクティブなアイテムのみが表示されます。ただし、両方にチェックを入れると、非アクティブな製品のみが表示されます。
これは私のコードです:
Private Sub cmdProdSearch_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim list_item As ListItem
Dim itm As ListItem
db_file = db_file & "ProductsDatabase1.mdb"
Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ProductsDatabase1.mdb;" & _
"Persist Security Info=False" & _
"Data Source=" & db_file & ";" & _
"Persist Security Info=False"
conn.Open
Set rs = conn.Execute("Select * from Export where Product like '%" & _
txtProduct.Text & "%'")
If chkActive.Value = 1 Then
Set rs = conn.Execute("Select * from Export where Inactive = '0'")
Else
Set rs = conn.Execute("Select * from Export where Inactive = '1'")
ListView1.ListItems.Clear
With ListView1
.View = lvwReport
.FullRowSelect = True
Do While Not rs.EOF
Set itm = .FindItem(txtProduct.Text, lvwText, , lvwPartial)
Set list_item = .ListItems.Add(, , rs!Product)
list_item.SubItems(1) = rs!barcode & ""
list_item.SubItems(2) = rs!quantity & ""
list_item.SubItems(3) = rs!Department & ""
list_item.SubItems(4) = rs!Active & ""
list_item.SubItems(5) = rs!Inactive
rs.MoveNext
Loop
End With
End If
End Sub
また、Access データベースを使用して製品情報を保存し、SQL ステートメントを使用して情報を検索しています。
両方のチェックボックスがオンになっているときに、ボットのアクティブなアイテムと非アクティブなアイテムを表示できるようにするための提案はありますか?