Доступ к внешним данным из приложений Office

Страницы работы

Содержание работы

Современные программные средства  Часть 3

Тема  Передача данных между приложениями Windows

Лекция 2 Доступ к внешним данным из приложений Office

DAO (Data Access Oobject) - отдельная библиотека объектов и связанных с ними методов

1. Установление ссылки на библиотеку

Меню Ссылки в модуле VB

2.   Иерархия объектов доступа к данным

DBEngine                 Database  TableDef  QueryDef   RecordSet   Field   Index

3. Доступ к данным внешних баз данныхформата JET:

Наиболее быстрая связь с БД в формате Jet (.MDB файлы)

Пример связи БД

Sub  JetConnect()

Dim db As DataBase

Dim rs As RecordSet

Set db = OpenDatabase(“C:\MSOffise\Access\Sampes\Nwind.MDB”)

Set rs = db.OpenRecordSet(“Customers”, dbOpenTable)

MsgBox “База “& db.name & “открыта успешно”

db.Close

End Sub

OpenDatabase(имя_БД, исключ_доступ, только_для_чтения, источник)

true/false                               true/false

db.OpenRecordSet (имя_табл/запроса/SQL, тип, опции

Тип: dbOpenTable, dbOpenDynaset, dbOpenSnapShot,

Опции: dbAppendOnly, dbReadOnly

4.   Доступ к данным внешних баз данныхформата НЕ  JET:

Sub  NonJetConnect()

Dim db As DataBase

Dim rs As RecordSet

Dim tdFox As TableDef

Set db = OpenDatabase(“C:\MSOffise\Access\Sampes\Nwind.MDB”)

Set tdFox=db.CreateTableDef(“Linked FoxPro Table”)

tdFox.Connect=”FoxPro 2.6;DATABASE=C:\Progra-1\Common~1\Msquery”

tdFox.SourseTableName = “Customer”

Присоединить таблицу для создания связи

db.TableDefs.Append  tdFox

Открыть набор записей

Set rs = db.OpenRecordSet(“Linked FoxPro Table”, dbOpenSnapshot)

MsgBox “База “& db.name & “открыта успешно”

db.Close

End Sub

tdFox.Connect = тип_базы; DATABASE=путь тип_базы: dBase III,  dBase IV,  dBase 5,  Paradox 3.x, Paradox 4.x, Paradox 5.x, Btrieve, FoxPro 2.0, FoxPro 2.5, FoxPro 2.6, Exel 3.0, Exel 4.0, Exel 5.0, Exel 7.0, Text

5.   Связь БД в программной среде клиент/сервер

tableDef.Connect = “ODBC; DATABASE=имя_БД; UID = идентиф_пользователя;  PWD = пароль; DSN =имя_источника_данных

6.   Работа с объектами RecordSet

Процедура Excek для получения имен полей из БД

Sub  DispleyField()

Dim db As DataBase

Dim rs As RecordSet

Dim fld As Field

Dim i As integer

Set db = OpenDatabase(“C:\MSOffise\Access\Sampes\Nwind.MDB”)

Set rs = db.OpenRecordSet(“Customers”, dbOpenSnapshot)

Активизировать окно Field Info

WorkSheets(“Field Info”).Activate

With WorkSheets(“Field Info”). [B1]

.Clear

.Offset(1).Clear

.Offset(3,-1).CurrentRegion.Offset(0,1).Clear

.Offset(1).Value = rs.Name

Перечислить поля набора

For i=0 To rs.field.Count - 1

Application.StatusBar=”Нумерация полей: “& i+1

Set fld = rs.Fields(i)

.Offset(3,i).Value = fld.Name

.Offset(4,i).Value = fld.AllowZeroLength

. . . . . . . . . . . . . . . . . . . ..

.Offset(1,i).EntireColumn.Autofit

Next i

.Value = db.Name

End With

db.Close

Application.StatusBar = False

End Sub

7.   Открытие таблицы с помощью SQL

Sub  DispleyField()

Dim db As DataBase

Dim rs As RecordSet

Dim selectStr As String

Set db = OpenDatabase(“C:\MSOffise\Access\Sampes\Nwind.MDB”)

selectStr = “SELECT CompanyName, Region, Country  FROM  Customers”& _

“FROM Customers “ &_

“WHERE Country = ‘Canada’ “ & _

“ORDER BY  CompanyName”

Set rs = db.OpenRecordSet(selectStr)

. . . . . . . . . . . . . . . . . . . ..

db.Close

End Sub

Похожие материалы

Информация о работе