ايران ويج

نسخه‌ی کامل: سه فیلتر در نمایس لیست باکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
یه برنامه دارم متصل هست به بانک اکسس
فیلد های بانک اکسس عبارت هست از : جنسیت ، نام ، سن
داخل برنامه هم یه کمبوباکس برای جنسیت داریم ، دوتا تکست باکس یکی برای نام و یکی برای سن داریم ، یک لیست باکس برای نمایش نتیجه جستجو

1. حالا میخواهیم با کمبوباکس اول جنست رو مشخص کنیم
2. با تکست باکس اول نام رو سرچ کنیم  و با تکست باکس دوم سن رو
قسمت 1 و 2 هر دو جداگانه کار میکنن اما با هم نه
یعنی نمیشه هر سه فیلتر رو اعمال کرد ( مثال : وقتی جنسیت رو میزاریم روی مرد و سن رو سرچ میکنیم لیست باکس اسامی مرد و زن را باهم نمایش میدهد )
کسی میتونه کمک کنه ؟
سورس هم ضمیمه شد
امیدوارم به درد کسی بخوره

باید این کد رو در

combo1_click
text1_change
text2_change

قرار داد تا همیشه 3 تا فیلتر اعمال بشه




کد:
List1.Clear
   Dim cnn As New ADODB.Connection
   Dim RS As New ADODB.Recordset
   Dim SQL As String
   CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/database.mdb;Persist Security Info=False;Jet OLEDB:Database Password="
   cnn.Open CnnStr
   If Combo1.ListIndex = 0 Then
   SQL = "SELECT * FROM db WHERE name LIKE ('%" & Text1.Text & "%')and old LIKE ('%" & Text2.Text & "%') ORDER BY name"
   ElseIf Combo1.ListIndex = 1 Then
   SQL = "SELECT * FROM db WHERE name LIKE ('%" & Text1.Text & "%')and old LIKE ('%" & Text2.Text & "%')and jensiat LIKE ('m') ORDER BY name"
   ElseIf Combo1.ListIndex = 2 Then
   SQL = "SELECT * FROM db WHERE name LIKE ('%" & Text1.Text & "%')and old LIKE ('%" & Text2.Text & "%')and jensiat LIKE ('f') ORDER BY name"
   End If
   RS.Open SQL, cnn
   While RS.EOF = False
       List1.AddItem RS("name")
       List1.ItemData(List1.ListCount - 1) = RS("id")
       RS.MoveNext
   Wend
   RS.Close
   cnn.Close
   Set RS = Nothing
   Set cnn = Nothing