PDA

View Full Version : سئوالی راجع به listbox



kama2222
سه شنبه 19 آذر 1387, 23:49 عصر
با سلام
من لیست باکسی دارم که با adodc با بانک اطلاعاتی در ارتباط است و با کلیک روی ایتمهای آن ایتم انتخابی به لیست باکس دوم منتقل می شود.حال می خواهم با فشار دکمه ای فقط اطلاعات موجود در لیست باکس دوم در datagrid موجود در فرم در فیلتر شود.البته datagrid نیز با adodc به یک query مرتبط است.

bitasoft.ir
دوشنبه 20 شهریور 1402, 01:20 صبح
با سلام
من لیست باکسی دارم که با adodc با بانک اطلاعاتی در ارتباط است و با کلیک روی ایتمهای آن ایتم انتخابی به لیست باکس دوم منتقل می شود.حال می خواهم با فشار دکمه ای فقط اطلاعات موجود در لیست باکس دوم در datagrid موجود در فرم در فیلتر شود.البته datagrid نیز با adodc به یک query مرتبط است.

برای اجرای عملیات فیلتر کردن بر اساس محتوای لیست باکس دوم و نمایش نتایج در دیتاگرید در VB6، شما می‌توانید از کد زیر استفاده کنید:

Private Sub Command1_Click()
' تعریف متغیر برای نگهداری کوئری
Dim strSQL As String
' گرفتن محتوای انتخاب شده از لیست باکس دوم
Dim selectedItems As String
Dim selectedItem As Variant
selectedItems = ""

For Each selectedItem In ListBox2.List
If ListBox2.Selected(ListBox2.ListIndex) Then
selectedItems = selectedItems & "'" & selectedItem & "', "
End If
Next

' حذف کاما و فاصله اضافی در انتهای رشته
If selectedItems <> "" Then
selectedItems = Left(selectedItems, Len(selectedItems) - 2)
End If

' تعیین کوئری بر اساس انتخاب‌های لیست باکس دوم
strSQL = "SELECT * FROM YourTable WHERE YourColumn IN (" & selectedItems & ");"

' اجرای کوئری و نمایش نتایج در دیتاگرید
Adodc1.RecordSource = strSQL
Adodc1.Refresh
DataGrid1.Refresh
End Sub

در این کد، ما ابتدا انتخاب‌های انجام شده در لیست باکس دوم را به یک رشته به نام selectedItems اضافه می‌کنیم. سپس کوئری SQL را با استفاده از این انتخاب‌ها تشکیل می‌دهیم. در نهایت، کوئری را به Adodc1 که به دیتاگرید متصل است، اختصاص می‌دهیم و نتایج را نمایش می‌دهیم. اطمینان حاصل کنید که نام جدول و نام ستون مورد نظر خود را به جای YourTable و YourColumn در کد قرار دهید.
همچنین، مطمئن شوید که کلیدهای انتخابی در لیست باکس دوم تنظیم شده‌اند و پس از انتخاب، دکمه فیلتر را فشار دهید تا فیلتر اجرا شود.