СообЧа > База Знаний > Программирование > Visual Basic > Базы данных

Вопрос

Как связать поле типа 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 Сообщество Чайников
Контактная информация