List и БД

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

List и БД

Сообщение serix » 19.12.2003 (Пт) 20:40

Пытаюсь сделать вывод в TextBox поля из базы данных по клику на ListBox
вот код
Код: Выделить всё
Private Sub List1_Click()
Dim pDB As String
Dim subj As String
pDB = Trim(List1.Text)
subj = "caption='" & pDB & "'"
Data1.Recordset.FindFirst subj
End Sub

Но при запуске вылазит сообщение
Object doesn't support this proprerty or method

P.S. это происходит из-за того что я при загрузке формы загоняю в ListBox данные из БД
Код: Выделить всё
While Not Data1.Recordset.EOF
List1.AddItem Data1.Recordset.Fields(4)
Data1.Recordset.MoveNext
Wend

Как бы сделать чтоб при клике на ListBox ошибки не выскакивало...
Псибо...
ZU

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Игнорировать???

Сообщение hCORe » 20.12.2003 (Сб) 13:47

Чтобы игнорировать ошибки, в начале вызова ставь

Код: Выделить всё
On Error Resume Next


а в конце

Код: Выделить всё
Err.Clear


ЗЫ. Вообще это плохо, что ошибки в твоей программе возникают во время работы. Такого быть не должно (или почти не должно :wink: )
Моду создают модоки, а распространяют модозвоны.

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 20.12.2003 (Сб) 17:45

Все бы это конечно хорошо, я согласен,
что Вообще это плохо, что ошибки в твоей программе возникают во время работы. Такого быть не должно (или почти не должно )
, но предлеженный способ, к сожалению, не помог, осталось то же сообщение об ошибке( я еще забыл сказать что при нажатии OK это сообщение выскакивает снова и снова...).
Непонятно то, что если данные в ListBox внести ручками( т.е. самаму загнать) то все замечательно работает, но вот если их вводить через цЫкл то происходит такая мастдайная шляпа...
ZU

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 20.12.2003 (Сб) 17:57

Эврика! Через цЫкл ты перебираешь их всех и используешь
Код: Выделить всё
Data1.Recordset.MoveNext


После окончания цикла ты доходишь до конца. Попробуй вызвать
Код: Выделить всё
Data1.Recordset.MoveFirst

Должно помочь.

ЗЫ. И есть еще одно НО: существует специальный контрол (MSовский), который работает с БД дружественнее :wink: Microsoft Data List называется.

ЗЗЫ. Работоспособность приведенного кода не гарантируется, вирусы на мыло мне НЕ СЛАТЬ :!: :!: :!:
Моду создают модоки, а распространяют модозвоны.

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 21.12.2003 (Вс) 20:59

Пасиба бальшая, MoveFirst работает
З.Ы. Есть еще одна проблемка: при загрузке данных из БД в ListBox, непонятно как и зачем, VB меняет названия некоторых элементов списка, т.е., например, если сначала был список:
Эл-т 1
Эл-т 2
Эл-т 3
Эл-т 4
То он может стать таким:
Эл-т 1
Эл-т 2
Эл-т 1
Эл-т 3
Причем vb вносит изменения в сам файл БД, так что с каждым новым запуском дублированных элементов становится все больше и больше....
Если защитить файл БД от записи, то VB выдает ошибку.
Подскажи пжаллста что можно сделать...
вирусы на мыло мне НЕ СЛАТЬ

З.Ы. Если бы я не был чайником и знал как эти вирусы пишутся, то отправил бы с удовольствием :wink: ...
ZU

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 21.12.2003 (Вс) 21:44

Извини, я в БД такой чайник, что тебе и не снилось :cry:
Поэтому про это явление ничего не знаю (к сожалению).

Эй! Может кто поможет человеку хорошим советом! Есть же на форуме добрые люди, работавшие с базами данных :wink:
Моду создают модоки, а распространяют модозвоны.

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

Сообщение Rainbow » 22.12.2003 (Пн) 13:52

Да не, не VB это, я так думаю...
Ты же сам своими руками заполняешь листбокс

1) Возьми свой запрос, который ты используешь для инициализации ListBox'а, выполни его в базе и посмотри, все ли там правильно (что элементы разные)
2) если запрос правильный - закомментируй всю работу с листбоксом по поиску и тд (оставь только заполнение) - проверь именно его (что-нибудь, где-нибудь сам обновляешь).

А данные в базе у тебя как обновляются?


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 3

    TopList