Несколько вопросов по DataGrid

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Несколько вопросов по DataGrid

Сообщение Dummiel » 01.03.2007 (Чт) 19:59

Хай, други мои!
Хочешь прибавить себе забот, начинай изучать (читай - переходить на) другой контрол. :) Подскажите по мелочам, please!

1. Можно ли в отдельной ячейке (не придирайтесь к терминологии) сделать текст жирным по определенному признаку? Например, если у пипла нэйм "Вася", то его выделить?

2. Как реализовать вывод в тултипе DataGrid'а значение (содержимое) той ячейки, над которой находится курсор?

3. Можно ли выделить определенную строку определенным цветом по определенному признаку? Например, вывести фон строки красным, если возраст пипла больше 60 лет?

В MSFlexGrid это все реализовывалось легко, а вот в DataGrid?

Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Сообщение Dummiel » 06.03.2007 (Вт) 13:52

И никому-то я ваще не нужен!!! :cry:

Али все в отпуске?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.03.2007 (Вт) 14:37

1. Нет.
2. Есть свойство TooltipText, событие MouseMove и функции ColContaining и RowContaining.
3. Нет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Соответствие ADO и Grid'a

Сообщение Summer.05 » 07.07.2007 (Сб) 21:55

Подскажите, специалисты, пожалуйста:
если я использую ADOdc, то с какими еще Grid's он совместим, кроме DBGrid?
Спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.07.2007 (Сб) 23:33

Со всеми, кто поддерживает ADO.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 08.07.2007 (Вс) 8:25

GSerg писал(а):Со всеми, кто поддерживает ADO.


Для такого ответа не надо быть мастером. А если быть специалистом, то можно было дать конкретный ответ. Или ссылку на текст, где об этом можно почитать. Не сочти за упрек!

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

Сообщение Antonariy » 08.07.2007 (Вс) 9:41

ya.ru - "грид поддерживающий ado".
Кстати DBGrid с ADO не совместим, в отличие от DataGrid.
Лучший способ понять что-то самому — объяснить это другому.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 08.07.2007 (Вс) 17:13

Antonariy
Ты, как всегда, прав, спасибо!
Я думал, что практика наработала варианты совместимости и они для спецов есть азбука.
Оказывается, нет.
Буду искать, еще раз, спасибо!

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.07.2007 (Вт) 12:01

лучше посмотри в другую сторону - отказа от использования ADODC-контрола и жить тебе станет легче 8)

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 11.07.2007 (Ср) 9:21

Konst_One
Спасибо, профессор!
Пару советов - наводок не дашь, что в этой стороне надо увидеть в первую очередь?
Каков механизм работы без контрола?

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 11.07.2007 (Ср) 9:42

ADODB.Connection???
Утро добрым не бывает!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 11.07.2007 (Ср) 18:28

Буду пробовать, спасибо!

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 12.07.2007 (Чт) 0:20

Я юзаю сеточку True DBGrid® Pro 8 фирмы ComponentOne. Очень качественный продукт, есть встроенный механизм вывода на печать грида с предварительным просмотром.
С уважением, Сергей.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.07.2007 (Чт) 9:00

sergey-911 писал(а):Я юзаю сеточку True DBGrid® Pro 8 фирмы ComponentOne. Очень качественный продукт

Поддерживаю, тоже юзаю (правда седьмую версию).
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 12.07.2007 (Чт) 22:34

Коллеги, спасибо! Я ее скачал, разбираюсь. Просто прелесть! Пока освоил цвета, фиксацию размеров колонок, ищу другие изюминки. А вот вывод на печать - это здорово! Но, как я понимаю, эта сеточка работает только с Data?

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 13.07.2007 (Пт) 17:58

Перешел на TDBGrid. Нравится.
Однако перестал работать вот этот код (VB6, mdb):

Private Sub Command7_Click()
Text2.Visible = False
Text3.Visible = False

'поиск по ключевым словам темы
Dim KeyWord As String

KeyWord = InputBox("Ведите буквы ключевого слова" + vbCrLf + _
"(можно не полностью)", "Поиск", "")
If KeyWord <> "" Then
Data1.RecordSource = "SELECT * FROM DB where Title like " + _
Chr(39) + "%" + KeyWord + "%" + Chr(39)
End If
Data1.Refresh ' выполнить запрос
Text2.Visible = True
Text2.Text = KeyWord + " ..."

Text3.Visible = True
Text3.Text = TDBGrid1.ApproxCount
End Sub

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 13.07.2007 (Пт) 19:21

Какую выдает ошибку?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 13.07.2007 (Пт) 19:58

VVitafresh
Никакой ошибки нет. Просто грид становится пустым, а счетчик отобранных строк показывает =0

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 13.07.2007 (Пт) 20:31

Используй ADO. Должно все работать:
Код: Выделить всё
Option Explicit

Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Private Sub Form_Load()
    Dim SQL As String
    Dim KeyWord As String
   
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.CursorLocation = adUseClient
    cn.Provider = "Microsoft.Jet.OLEDB.4.0;"
    cn.Open "Data Source=d:\db2.mdb"
   
    KeyWord = "ищем"
    If KeyWord <> "" Then
        SQL = "SELECT * FROM db where Title like " + _
            Chr(39) + "%" + KeyWord + "%" + Chr(39)
        rs.Open SQL, cn, adOpenStatic, adLockReadOnly
        Set TDBGrid1.DataSource = rs
    End If
    Text3.Text = TDBGrid1.ApproxCount
End Sub
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 14.07.2007 (Сб) 10:31

VVitafresh

Спасибо большое!
Я немного модифицировал:

Option Explicit
Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Private Sub Form_Load() 'ввод формы
LoadKeyboardLayout "00000419", KLF_ACTIVATE 'вызов русского языка в форму

Dim SQL As String
Dim KeyWord As String
strPath = App.Path & "\" & "\" & "DB\ped.mdb"

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cn.Open "Data Source = " & strPath & ""
KeyWord = InputBox("Ведите буквы ключевого слова" + vbCrLf + _
"(можно не полностью)", "Поиск", "")
'KeyWord = "ищем"
If KeyWord <> "" Then
SQL = "SELECT * FROM db where Title like " + _
Chr(39) + "%" + KeyWord + "%" + Chr(39)
rs.Open SQL, cn, adOpenStatic, adLockReadOnly
Set TDBGrid1.DataSource = rs
End If
Text3.Text = TDBGrid1.ApproxCount
End Sub


Результат тот же: никаких ошибок, но грид пустой.

Я заменил TDBGrid1 на DataGrid1 - вся конструкция работает безукоризненно.
Может быть, что-то в специфических настройках TDBGrid1?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 14.07.2007 (Сб) 11:05

Значит твой запрос возвращает пустой рекордсет.
Посмотри, что выводит debug.print SQL и выполни этот запрос непосредственно в Access. Посмотри на результат.

Еще может быть ты начудил со свойствами грида? Удали его с формы и размести по-новой.

P.S.: Оформляй код в теги syntax="vb", иначе никто не будет читать и разбираться в твоем безформенном коде.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 14.07.2007 (Сб) 12:51

VVitafresh
Спасибо, что уделяешь мне столько внимания!

1. Я разместил новый TDBGrid без установки каких-либо его свойств. Не реагирует.
2. Включил в текст кода (запрос был слова "школ").
Debug.Print SQL
и получил ответ:
SELECT * FROM db where Title like '%школ%'
3. В темах диссертаций, где ведется поиск, слово "школ" встречается более нескольких тысяч раз, так что запрос должен был его найти.
4. При смене грида - все работает.
Даже предположить не могу причины, так как я далеко не программист...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 14.07.2007 (Сб) 13:06

А грид какой размещаешь?
У меня седьмая версия и в ней есть просто True DBGrid Pro 7.0, а есть True DBGrid Pro 7.0 (OLEDB). При работе через ADO использовать нужно именно последний.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 14.07.2007 (Сб) 13:28

VVitafresh
Я использую True DBGrid Pro v6.0 (c) APEX Software
Где можно взять названные тобой?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 14.07.2007 (Сб) 17:19

См. личку
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 15.07.2007 (Вс) 2:40

Попробуй заменить
Код: Выделить всё
Set TDBGrid1.DataSource = rs

на
Код: Выделить всё
Set TData1.SourceRecordset = rs
С уважением, Сергей.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 15.07.2007 (Вс) 6:16

sergey-911 писал(а):Попробуй заменить
Код: Выделить всё
Set TDBGrid1.DataSource = rs

на
Код: Выделить всё
Set TData1.SourceRecordset = rs


Спасибо, Сергей!
Попробовал = method or data member not found

Переформатировал - Set Data1.RecordSource = rs
Попробовал = invalid use of property

Просто занятно даже!

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 15.07.2007 (Вс) 13:11

Привет Summer.05, напиши мне на маил, что-нить придумаем.
С уважением, Сергей.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 15.07.2007 (Вс) 19:35

VVitafresh
Все, спасибо, работает! Вопрос закрыт.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 15.07.2007 (Вс) 22:37

Summer.05, а в чём проблема была? Почему не работало? В компоненте было дело?
С уважением, Сергей.

След.

Вернуться в Базы данных

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 251

    TopList