Автор вопроса: Гагик | Web-сайт:vanembroidery.narod.ru
Помогите плз решить проблему.
Имеется база Access, в базе одна таблица, обозначим tab1, в таблице несколько текстовых полей и поле объекта OLE с рисунок jpg.
Далее имеется проект на VB6, форма, на ней Adodc и элемент PictureBox. Adodc связан с базой.
Проблема такова: как можно при прокрутке Adodc добиться того, чтобы в PictureBox-е увидеть рисунки jpg из базы.
Привет! Не получится, вб такой фишки не поддерживает, не зачитывает он картинки из Акса.
Лекарство следующее:
1. Выкидывай картинки из БД(тем самым уменьшишь размер БД).
2.Вместо поле объекта OLE делаешь текстовое.
3. В нем пишешь путь картинки(лучше всего относительный). Если нужно пользваться в аксе не выкидывай, создай столбец и пропиши путь.
4.В форме рисуешь image или picture
5.Если тебе в форме нужен грид - рисуешь грид.В какой-то колонке будет путь картинки.Если грид не нужен нарисуй просто лейбл. Можешь сделать его невидимым. Источник данных Adodc1, DataField - ну понятно столбец в таблице БД, где прописан путь.
6. Дальше рисуешь четыре кнопки:
cmdFirst,cmdNext,cmdPrevios, cmdLast.
7. Получается такой код:
Private Sub cmdFirst_Click()
Adodc1.Recordset.MoveFirst
img1.Picture = LoadPicture(Label2.Caption)
End Sub
Private Sub cmdLast_Click()
Adodc1.Recordset.MoveLast
img1.Picture = LoadPicture(Label2.Caption)
End Sub
Private Sub cmdNext_Click()
Adodc1.Recordset.MoveNext
img1.Picture = LoadPicture(Label2.Caption)
If Adodc1.Recordset.EOF Then MsgBox "Конец просмотра": Adodc1.Recordset.MoveFirst
End Sub
Private Sub cmdPrevios_Click()
Adodc1.Recordset.MovePrevious
img1.Picture = LoadPicture(Label2.Caption)
If Adodc1.Recordset.BOF Then MsgBox "Конец просмотра": Adodc1.Recordset.MoveLast
End Sub
8. Если будет грид, то:
Код меняется на:
img1.Picture =
LoadPicture(DataGrid1.Columns(номер).text)
Естественно можешь объявить переменную для Label2, или DataGrid1.Columns(номер).text ну типа picpath