alibek писал(а):Эх, убегаю, времени ответить нет
alibek писал(а):Если до завтра терпит, то попробую код выложить
GSerg писал(а):Есть комбо, дублирующий содержимое колонки
skiperski писал(а):Тогда нет смысла ещё и грид таскать.
skiperski писал(а):И потом как искать по двум полям?
GSerg писал(а):А действительно, как?
Id Фамилия Имя
1 А А
2 А Б
3 Б А
4 Б Б
5 В Б
6 В А
lord0n писал(а):1. а что мешает собрать ФИО в одну колонку?
тогда можно будет реализовать поиск через комбо
skiperski писал(а):Во-первых, сами по себе данные в двух комбо будут смотреться по меньшей мере странно.
skiperski писал(а):Во-вторых, как должен быть отсортирован второй? В-третьих, при поиске в первом, например Б, получим Id=3, затем ищем во втором, тоже Б, и получаем Id=2. Хотя надо проверить.
Private Sub txFind_Change()
Dim s As String, ss As String, i As Integer, b As Boolean
Dim r As ADODB.Recordset, jc As GridEX20.JSColumn
s = Trim$(txFind.Text)
If s = "*" Then s =vbNullString
Screen.MousePointer = vbHourglass
Set r = Grid.ADORecordset
If Len(s) Then
If Left$(s, 1) <> "*" Then s = "*" & s
If Right$(s, 1) <> "*" Then s = s & "*"
s = Replace(s, "'", "''"): ss = vbNullString
For Each jc In Grid.Columns
If jc.Visible Then
If Len(ss) Then ss = ss & " OR "
ss = ss & "[" & jc.DataField & "] LIKE '" & s & "'"
End If
Next jc
r.Filter = ss
Else
r.Filter = 0
End If
Grid.HoldFields
Set Grid.ADORecordset = r
b = Grid.ItemCount
For i = 1 To TB.Buttons.Count
' Кнопки Edit & Delete на Toolbar-e
TB.Buttons(i).Enabled = b
Next i
Grid.Enabled = b
Screen.MousePointer = vbDefault
End Sub
GSerg писал(а):Внимательно читаем вопрос.
Нужен не фильтр.
I = rs!ID - 1
For I = lstNames.ListCount - 1 To 0 Step -1
If r!ID = lstNames.ItemData(I) Then Exit For
Next I
alibek писал(а):Я сам удивился, но на паре сотен записей работает на удивление быстро.
Andrey Fedorov писал(а):Я бы все-же предпочел не делать запросы на каждую букву, а искать уже в заполненом ListBox-е - чтобы зря сетку не грузить...
alibek писал(а):Но в этом конкретном случае в листбоксе поля слиты в одно, их не выделить.
alibek писал(а):Чтобы не грузить запросами сервер, можно на клиентском рекордсете фильтры делать (клон-фильтр-клон-фильтр).
Сейчас этот форум просматривают: AhrefsBot и гости: 69