пустой грид - ошибка

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

пустой грид - ошибка

Сообщение lord0n » 05.09.2005 (Пн) 10:26

мож кто поможет.
проблемма в следующем:
Код: Выделить всё

Private Sub grdP_Click()

Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Appath & "Hranenie.mdb;Mode=Share Deny None;"

Set RS = New ADODB.Recordset
RS.Open "select №_поставки, Поставшик, №_машины from Hran where №_поставки = '" & grdP.Text & "' Order by Артикул", db, adOpenDynamic, adLockOptimistic

txtNumPost.Text = RS.Fields(0)
txtPostavshik.Text = RS.Fields(1)
txtNumMash.Text = RS.Fields(2)

RS.Close

RS.Open "select Артикул, Наименование, Количество, Партия, Срок_годности, Блокировка, Еденица_измерения, Адрес_места from Hran where №_поставки = '" & grdP.Text & "' Order by Артикул", db, adOpenDynamic, adLockOptimistic

Set grd.DataSource = RS

End Sub


если грид пустой, то вылитает ошибка

можно ли как то проверить грид пустой или нет?
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

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

Сообщение Konst_One » 05.09.2005 (Пн) 10:40

Код: Выделить всё
if rs is nothing then
  msgbox "Ошибка"
elseif rs.Eof or rs.Bof then
  msgbox "Нет записей"
else
  msgbox "OK"
  ....
end if

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 05.09.2005 (Пн) 10:41

да это понятно
а как мона проверить пустой грид или нет
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

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

Сообщение Konst_One » 05.09.2005 (Пн) 11:26

rs.Eof or rs.Bof

Booozer
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 30.08.2005 (Вт) 17:41
Откуда: Москва

Сообщение Booozer » 05.09.2005 (Пн) 11:33

При наличии хотя-бы одной строки Len(grd.Columns(0).Text) будет больше 0.

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

Сообщение GSerg » 05.09.2005 (Пн) 11:39

Да?
А ты уверен, что grd.Columns(0).Text существует, когда нет ни одной строки?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Booozer
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 30.08.2005 (Вт) 17:41
Откуда: Москва

Сообщение Booozer » 05.09.2005 (Пн) 11:45

В том-то и дело, что в случае отсутствия строк ничего не сформируется. Проверял.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 05.09.2005 (Пн) 13:06

После селекшена нуно проверить как писали выше на наличие данных
Код: Выделить всё
If (.EOF Or .BOF) Then
'Данных в выборке нет, отдыхаем
Else
'Можно работать с данными в выборке
End if
А по гриду - count
Бороться и искать, найти и перепрятать!

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 05.09.2005 (Пн) 14:20

MeMBus писал(а):А по гриду - count


что та я в MSHFlexGrid не нашел count :lol:
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

coderx
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 05.09.2005 (Пн) 10:44
Откуда: Узбекистан

Сообщение coderx » 05.09.2005 (Пн) 15:18

В MSHFlexGrid'е нету метода Count. Ты можешь использовать методу Rows, для определение строк грида, и Cols, для определение столбцов. :!: :!: :!: :wink:

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 06.09.2005 (Вт) 4:17

А я разве говорил про свойство Count у MSHFlexGrid? :) Я говорил о подсчете количества (вот оно самое count) строк, а для подсчета кол-ва для каждого контрола (будь то MSHFlexGrid или к примеру DataGrid) оно свое...
Бороться и искать, найти и перепрятать!


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

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

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

    TopList  
cron