Private Sub dbcActorName_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer) Dim S As String Dim F As String Select Case KeyCode Case Is >= 48 S = dbcActorName(Index).Text datActors.Recordset.FindFirst "[ActorName] LIKE '" & S & "*'" If datActors.Recordset.NoMatch = False Then F = datActors.Recordset.Fields("ActorName").Value dbcActorName(Index).Text = F dbcActorName(Index).SelText = F dbcActorName(Index).SelStart = Len(S) dbcActorName(Index).SelLength = Len(dbcActorName(Index).Text) - 1 End If End Select End Sub
dbcActorName - имя DBCombo, у меня их несколько на форме поэтому используется Index datActors - объект Data указанный в свойстве RowSource объекта DBCombo [ActorName] - поле ListField объекта DBCombo их которого составляется список Примечание
Поиск русских имён будет работать некорректно если значение CollatingOrder вашей аксесовской таблицы будет равным 1033 (англ.яз) (вы можете его посмотреть запустив тот же Data Manager). Эта проблема часто встречается и при сортировке русских слов ORDER BY. Для русского языка это значение должно быть равным 1049, в Data Manager - его изменить нельзя (ReadOnly). Проще всего изменить в Access'е: откройте свой файл, затем Сервис/Параметры/Общие/Порядок сортировки баз данных, поставьте "Русский". Затем Сервис/Служебные программы/Сжать базу данных. У меня стоит Access 97 поэтому владельцам более новых версий придётся немного поискать самим