Взаимодействие с другими приложениями, базами данных и windows api — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Взаимодействие с другими приложениями, базами данных и windows api

2021-06-30 34
Взаимодействие с другими приложениями, базами данных и windows api 0.00 из 5.00 0 оценок
Заказать работу

Для взаимодействия с другими приложениями через ActiveX нужно выполнить три основных операции:

· установить ссылку на другое приложение;

· создать экземпляр этого приложения;

· написать программу, использующую методы и свойства приложения.

Чтобы сделать ссылку на объектную библиотеку другого приложения, нужно в меню Tools - References указать нужное, после чего в окне просмотрщика объектов будут доступны объекты другого приложения. Чтобы создать экземпляр приложения, например, MSExcel, объявляется переменная-ссылка

Dim ExcelAppObj as Excel.Application и устанавливается указательSet ExcelAppObj = New Excel.Application

По окончании работы нужно закрыть запущенный экземпляр приложения: ExcelAppObj.Application.Quit. Пример переноса атрибутов из Autocad в Excel:

Sub Extract() Dim Excel As Excel.Application Dim ExcelSheet As Object Dim ExcelWorkbook As Object Dim RowNum As Integer,Header As Boolean Dim elem As AcadEntity,Array1 As Variant Dim Count As Integer ' Запуск Excel. Set Excel = New Excel.Application ' Создаемкнигу Excel иищемактивныйлист Set ExcelWorkbook = Excel.Workbooks.Add Set ExcelSheet = Excel.ActiveSheet ExcelWorkbook.SaveAs "Attribute.xls" RowNum = 1 Header = False ' Проходим по пространству модели в поисках блочных ссылокFor Each elem In ThisDrawing.ModelSpaceWith elem    ' Если найдена блочная ссылка проверить атрибутоыIf StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then       If.HasAttributes Then          ' Читаематрибуты          Array1 =.GetAttributes          ' Копируемихв Excel          For Count = LBound(Array1) To UBound(Array1)              If Header = False Then                If StrComp(Array1(Count).EntityName, "AcDbAttribute", 1) = 0 Then                   ExcelSheet.Cells(RowNum, Count + 1).value = Array1(Count).TagString                End If              End If          Next Count          RowNum = RowNum + 1          For Count = LBound(Array1) To UBound(Array1)              ExcelSheet.Cells(RowNum, Count + 1).value = Array1(Count).textString          Next Count          Header = True       End If    End If End With Next elem Excel.Application.QuitEnd Sub

Работас DAO (Data Access Object) длядоступакбазамданным

Спомощью DAO можноработатьслюбойбазойданных, поддерживающихинтерфейс Microsoft Jet, (Access, dBase, FoxPro, Paradox, атакжебазамиданных ODBC MS SQL Server и Oracle). Возможности следующие: создание БД, изменение структуры, добавление таблиц, определение связей между ними, создание и выполнение запросов, добавление, изменение или удаление записей. Для всего это нужно выполнить три основных шага:

1. Создать ссылку на объектную библиотеку MS DAO.

2. Открыть базу данных.

3. Написать код, используя объектные модели Autocad и DAO.

Для выполнения первого из этих шагов следует в среде VBA IDE выбрать пункт меню Tools - References ипоставитьгалочкупротив Microsoft DAO Object Library. После чего все объекты, методы и свойства DAO станут доступными для просмотра в "просмотрщике" объектов. Причем установленная ссылка действует только для текущего проекта.

Второй шаг (открытие базы данных) можно выполнить так:

Dim db As DatabaseSet db = DBEngine.Workspaces(0).OpenDatabase("C:\TEST.MDB")

Наиболее важным и часто используемым объектом в DAO является объект RecordSet представляющий набор записей, возвращаемых таблицей на основе запроса SQL. Вообще по этому поводу необходимо ознакомиться со справочной системой Microsoft Access.

Доступ к Windows API из VBA

Функции Windows API доступны для любых приложений и позволяют реализовать все возможности программирования под Windows. Чтобы этим воспользоваться, следует сначала объявить функцию Windows API, с помощью оператора Declare. В качестве параметров требуется указание имени динамической библиотеки (DLL), содержащей нужную функцию, имя процедуры как она называется в DLL, имя процедуры, как она будет называться в вашей программе, параметров процедуры, которые она ожидает, типа возвращаемых данных, если процедура вызывается как функция.

Оператор Declare можно поместить в любое место программы, так если его поместить в стандартном модуле, то процедура будет доступна для любого модуля программы, если конечно не ограничить диапазон ее действия ключевым словом Private. Если объявить процедуру в модуле формы или класса, то она только там и будет доступна. Использование оператора Declare довольно сложно и требует хороших знаний от программиста, т.к. очень легко ошибиться, что может привести к тяжелым последствиям. Для облегчения данного процесса Microsoft создала специальные файлы в которых уже прописано объявление большинства часто используемых процедур. Они хранятся в файле Win32api.txt, поставляемым совместно с Visual Basic и Office. За дополнительной информацией обращаться к MSDN.


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.