Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с DBGrid, Как то странно работает DBGrid1.Row = i 
:(
    Опции темы
Leoo
Дата 10.11.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: нет
Всего: 3



Не могу ни как понять как работает DBGrid1.Row = i
На форму я поместил DBGrid на котором отображается например 9 записей.
При выборке у меня получается 18 записей.
И как только DBGrid1.Row = 10 происходит ошибка.
Как перейти на 10 запись. Типа там нодо провернуть скрол. А у меня не получается.

Код

 i = 0
        For i = 0 To DBGrid1.ApproxCount - 1
            DBGrid1.Row = i
            If CCur(DBGrid1.Columns(2).Text) < CCur(DBGrid1.Columns(3).Text) Then
                MsgBox CStr(i)
            End If
        Next



--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
Voldemar2004
Дата 10.11.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Leoo @ 10.11.2005, 11:12)
Как перейти на 10 запись.
Код
Option Explicit

Private Sub Command1_Click()

Dim i As Long

For i = 0 To 9
Data1.Recordset.MoveNext
Next i

        Data1.Recordset.Edit
        Data1.Recordset.Fields(0) = 0
        Data1.Recordset.Update

End Sub



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Leoo
Дата 10.11.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: нет
Всего: 3



Спасибо с этой проблемой справился, только появилась еще одна.

У меня в DBGrid есть пять полей. Четыре из них берутся из БД, а в последнее значения я должен заносить сам.
Я пытаюсь записать след. образом:
Код

For i = 0 To DBGrid1.ApproxCount - 1
            Data1.Recordset.MoveNext
            DBGrid1.Columns(4).Text = i
Next i

но в гриде ни чего не появляется.


--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
Voldemar2004
Дата 11.11.2005, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Leoo @ 10.11.2005, 14:00)
а в последнее значения я должен заносить сам.
Вручную? Или так:
Код
Option Explicit

Private Sub Command1_Click()
Dim i As Long

For i = 0 To StrCount(Data1, TDBGrid1) - 1
        Data1.Recordset.Edit
            
        ' скопировать в 5-ый столбец Grid'а выбранные значения из 1-го столбца:
        Data1.Recordset.Fields(4) = Val(TDBGrid1.SelText) ' можно и без Val()
            
        Data1.Recordset.Update
        Data1.Recordset.MoveNext
   
Next i

End Sub

Private Function StrCount(DataControl As Data, Grid As TDBGrid) As Long
    DataControl.Recordset.MoveLast
    StrCount = DataControl.Recordset.RecordCount
    DataControl.Recordset.MoveFirst
End Function

Аругмент Grid функции StrCount в твоем случае должен быть типа DataGrid:
Код
Private Function StrCount(DataControl As Data, Grid As DataGrid) As Long
Я просто не пользуюсь MS DataGrid Control.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Leoo
Дата 11.11.2005, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: нет
Всего: 3



Я попробовал, и все равно то же самое. Грида ни чего не отображает.

Правда вместо TDBGrid я использовал DBGrid


--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
Voldemar2004
Дата 11.11.2005, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Leoo @ 11.11.2005, 10:01)
Правда вместо TDBGrid я использовал DBGrid
Я кажись объяснил: вместо TDBGrid1 везде напиши datagrid1 (или что там у тебя)
Код

Option Explicit    
Private Sub Command1_Click()    
Dim i As Long    
For i = 0 To StrCount(Data1, datagrid1) - 1    
        Data1.Recordset.Edit    
             
        ' скопировать в 5-ый столбец Grid'а выбранные значения из 1-го столбца:    
        Data1.Recordset.Fields(4) = Val(TDBGrid1.SelText) ' можно и без Val()    
             
        Data1.Recordset.Update    
        Data1.Recordset.MoveNext    
    
Next i    
End Sub    
Private Function StrCount(DataControl As Data, Grid As datagrid1) As Long    
    DataControl.Recordset.MoveLast    
    StrCount = DataControl.Recordset.RecordCount    
    DataControl.Recordset.MoveFirst    
End Function



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Leoo
Дата 11.11.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: нет
Всего: 3



так я все и исправил на DBGrid и ни чего.

А если создать в БД таблицу с пятью палями при выполнении запроса помещать туда результат, а последний столбец редактировать.

Только как создавать таблицу при загрузки программы, а при закрытии удалять ету таблицу я не знаю.




--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
Voldemar2004
Дата 11.11.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Leoo @ 11.11.2005, 10:29)
при закрытии удалять ету таблицу я не знаю

Код
dim j as long
    For j = 0 To Data1.Recordset.RecordCount - 1
        Data1.Recordset.Delete
    Next j


Это сообщение отредактировал(а) Voldemar2004 - 11.11.2005, 13:24


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Staruha
Дата 11.11.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Цитата
Правда вместо TDBGrid я использовал DBGrid

Вот хотелось бы знать там три вида Grid ,что для чего. С элементом Grid поработала понравилась.Только вот как много строк можно туда добавлять?


--------------------
Возмездие настигнет
PM MAIL   Вверх
Voldemar2004
Дата 11.11.2005, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Staruha @ 11.11.2005, 15:04)
Вот хотелось бы знать там три вида Grid ,что для чего. С элементом Grid поработала понравилась.Только вот как много строк можно туда добавлять?
Из всех я выбрал Apex True DataGrid Control - не надо связываться с ADO, хватит и DAO DataControl + мощь бОльших возможностей в отличие от MS DataGrid. А насчет строк не интересовался, но у меня на работе БД ~ 37500 строк (sic!) столбцов ок. 200. Все работает просто замечательно. Только при создании дистрибутива придется попотеть.
Добавлено @ 22:29
Читаем здесь: smile http://msdn.microsoft.com/library/rus/defa...adWriteData.asp


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.