DBGrid and SelStart

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

DBGrid and SelStart

Сообщение fishh » 16.12.2008 (Вт) 15:04

Здравствуйте! Помогите, пожалуйста
Мне нужно, чтобы в ячейке DBGrid можно было выделить программно часть слова. Я пытаюсь сделать это следующим образом:
Код: Выделить всё
DBGr.Columns(1).SelStart = (Len(IX) + 1)

Выдает ошибку Object doesn't support this property or method (Error 438)

fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Re: DBGrid and SelStart

Сообщение fishh » 17.12.2008 (Ср) 9:35

Вот пример, который выполняет то что надо, но только с Text:
Код: Выделить всё
    Text4 = ZV
    Text4.SelStart = Len(IX)
    Text4.SelLength = Len(ZV) - Len(IX)
    Text4.SetFocus


Вот почти тоже самое но с DBGRID:
Код: Выделить всё
    DBGr.Columns(ColIndex) = ZV
    DBGr.Columns(ColIndex).SelStart = Len(IX)
    DBGr.Columns(ColIndex).SelLength = Len(ZV) - Len(IX)

Но не работает. Подскажите, пожалуйста, решение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: DBGrid and SelStart

Сообщение Antonariy » 17.12.2008 (Ср) 10:51

Код: Выделить всё
DBGrid1.EditActive = True
SendKeys String(Len(IX), "{RIGHT}")
SendKeys "^+{RIGHT}"
Лучший способ понять что-то самому — объяснить это другому.

fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Re: DBGrid and SelStart

Сообщение fishh » 17.12.2008 (Ср) 13:40

У меня это не получается. На второй строке выдает ошибку Invalid procedure call or argument (Error 5)

Поясняю для чего мне это надо. Существует БД. В DBGrid вводятся повторяющиеся записи и чтобы не вводить одно и тоже по несколько раз. Хочу чтобы в БД выполнялся поиск по первой, по второй и т.д. букве и найденное слово выводилось в соответствующую ячейку.Например, ввели первую букву слова оставшаяся часть вылезла, но она выделена. Если поиск не удачный, вводим вторую букву, выделенная часть удаляется. Затем поиск уже по двум буквам и т.д.

fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Re: DBGrid and SelStart

Сообщение fishh » 17.12.2008 (Ср) 14:23

Что я не так делаю?
Код: Выделить всё
Private Sub DBGr_Change()
If Option1(0).Value = True And DBGr.Row > 0 Then
    IX = DBGr.Columns(1)
    Set rstF1 = DB.OpenRecordset("SELECT * FROM Структура WHERE Завод like " & Chr(39) & IX & Chr(42) & Chr(39) & "")
    ZV = rstF1!Завод
    DBGr.Columns(1) = ZV
    DBGr.EditActive = True
    SendKeys String(Len(IX), "{RIGHT}")
    SendKeys "^+{RIGHT}"
End If
End Sub

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: DBGrid and SelStart

Сообщение Antonariy » 17.12.2008 (Ср) 15:27

Понятия не имею. Выложи тестовый проект.
Лучший способ понять что-то самому — объяснить это другому.

fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Re: DBGrid and SelStart

Сообщение fishh » 18.12.2008 (Чт) 6:39

Спасибо за помощь
Вложения
Проект.zip
(19.04 Кб) Скачиваний: 32

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: DBGrid and SelStart

Сообщение Antonariy » 18.12.2008 (Чт) 15:21

Блин, вот я тормоз… Дважды.
1) Ошибка возникала из-за того, что String размножает 1 символ, поэтому в SendKeys передавалось "{{{"
2) DBGrid.SelStart, DBGrid.SelLength и т.д.

И, кстати, будет тебе еще геморой при изменении содержимого в событии изменения содержимого.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 94

    TopList