TextBox и DataGrid

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

TextBox и DataGrid

Сообщение Lorik » 14.11.2003 (Пт) 12:39

Подскажите, пожалуйста, можно ли найти элемент в DataGrid по нескольким начальным буквам или первому слову из TextBox?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 14.11.2003 (Пт) 12:54

А что у тебя за проблема?
Ты не знаешь, как перебрать все элементы в гриде? Используй Col и Row.
Ты не знаешь, как сравнить строки? Используй операции со строками - Instr, Left...

Очень общий вопрос у тебя - конкретизируй.

Lorik
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.05.2003 (Ср) 6:58

Сообщение Lorik » 14.11.2003 (Пт) 13:19

Есть DataGrid с кодом и наименованием параметра и TextBox
При вводе в TextBox первых букв наименования параметра в DataGrid должна подсвечиватся (или как-то выделяться) строка с параметром, начинающимся на эти буквы.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 14.11.2003 (Пт) 14:51

Слови событие Change от своего текстбокса
У тебя грид связан с рекордсетом? Поищи в самом рекордсете - грид сам встанет на нужную запись

Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find "CategoryName LIKE '" & Text1.Text & "*'"

Единственно только, если ничего не нашли (Recordset.EOF), нужно это как-то обработать...

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 17.11.2003 (Пн) 18:27

Можно не как-то, а поставить

On Error Goto Err_

Exit Function
Err_:

' обработка


И не мучаться :).
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 17.11.2003 (Пн) 19:03

Неа, не то имелось в виду.
Просто если записи не найдет и будет Recordset.EOF, то текущей будет последняя строчка. Мне было бы приятнее, чтобы строчка осталась той же. Попробуй так:

Код: Выделить всё
    i = DataGrid1.Bookmark
    Adodc1.Recordset.MoveFirst
    Adodc1.Recordset.Find "CategoryName LIKE '" & Text1.Text & "*'"

    If Adodc1.Recordset.EOF Then
        DataGrid1.Bookmark = i 'встанет на строчку с номером i
    End If


А обработку ошибок - это обязательно! Тебе же легче будет потом понять, почему ничего не работает :lol:

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 17.11.2003 (Пн) 22:12

Э ... не ...

If Adodc1.Recordset.EOF Then RaiseError ...

Вот чего имелось ввиду у меня :). Это к тому, что так проще обрабатывать (ИМХО) всякие неприятные ситуации.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 18.11.2003 (Вт) 12:44

Ну, если считать, что такое поведение должно быть общее для ряда ситуаций (эта + какие-нибудь непредвиденные ошибки), тогда да - в этом случае RaiseError оправдан. А так - ну дошли до конца рекордсета (=ничего не нашли), это НОРМАЛЬНАЯ ситуация - чего сразу ошибками кидаться? :)


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

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

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

    TopList  
cron