






 ) для узнавания реального ListIndex, т.к. в этом случае он часто бывает -1.
 ) для узнавания реального ListIndex, т.к. в этом случае он часто бывает -1.
 



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
 Bank.rar
 Bank.rar

GSerg писал(а):Внимательно читаем вопрос.
Нужен не фильтр.
 Find.rar
 Find.rar

 
 
I = rs!ID - 1  For I = lstNames.ListCount - 1 To 0 Step -1
    If r!ID = lstNames.ItemData(I) Then Exit For
  Next I autosearch.zip
 autosearch.zip
alibek писал(а):Я сам удивился, но на паре сотен записей работает на удивление быстро.
 autosearch.rar
 autosearch.rar


Andrey Fedorov писал(а):Я бы все-же предпочел не делать запросы на каждую букву, а искать уже в заполненом ListBox-е - чтобы зря сетку не грузить...

alibek писал(а):Но в этом конкретном случае в листбоксе поля слиты в одно, их не выделить.
alibek писал(а):Чтобы не грузить запросами сервер, можно на клиентском рекордсете фильтры делать (клон-фильтр-клон-фильтр).

 
 Перепутал с Find, в котором можно указывать только одно поле.
 Перепутал с Find, в котором можно указывать только одно поле.


Сейчас этот форум просматривают: AhrefsBot и гости: 16