Вопрос
Как связать поле типа OLE с объектом OLE на форме? Можно ли использовать word и html одновременно?
Ответ
Размести на форме 2 OLE-объекта(в первом (OLE1) не помещай никакого объекта, а во втором (OLE2) объект MSWord). Пять кнопок (первая (cmdNew) будет создавать БД с полем типа OLE, вторая (command1) — переносить данные из OLE2 в OLE1, третья (command2(0)) — "добавить новою запись", четвертая (command2(1)) — "Сохранить изменения"), пятая (command2(2)) — "Удалить запись") и, для удобства, стандартный объект VB6 — Data (пусть имя остается по умолчанию — "Data1"). Далее не забудь указать в Project->References ссылку на Microsoft DAO 2.5/3.5 Compatibility Library.
Теперь впиши код в форму:
Private Sub cmdNew_Click()
Dim NewDB As Database
Dim NewWs As Workspace
Dim NewTbl As TableDef
Dim F1 As DAO.Field
Set NewWs = DBEngine.Workspaces(0)
Set NewDB = NewWs.CreateDatabase("ПУТЬ_К_БАЗЕ_ДАННЫХ", dbLangGeneral)
Set NewTbl = NewDB.CreateTableDef("QWERTY")
Set F1 = NewTbl.CreateField("ASD", dbLongBinary) 'OLE-объект
NewTbl.Fields.Append F1
Set F1 = Nothing 'освобождаем память
NewDB.TableDefs.Append NewTbl
NewDB.Close
NewWs.Close
Set NewDB = Nothing 'освобождаем память
Set NewWs = Nothing 'освобождаем память
Set NewTbl = Nothing 'освобождаем память
Data1.DatabaseName = "ПУТЬ_К_БАЗЕ_ДАННЫХ"
Data1.Connect = dbLangGeneral
Data1.RecordSource = "QWERTY"
Data1.Refresh
Data1.Recordset.AddNew
' в результате у тебя будет создана БД с таблицей QWERTY и полем _
с типом данных OLE — ASD
end sub
Private sub command2_click(index as integer)
Select Case Index
Case 0
Data1.Recordset.AddNew
Case 1
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified
Case 2
With Data1.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
End Select
end sub
Private Sub Data1_Reposition()
data1.Caption = "Запись № " & Data1.Recordset.AbsolutePosition + 1
End Sub
Ревягин_Алексей
Copyright 2000-2004 Сообщество Чайников
Контактная информация