Phát triển AutoCAD bằng ActiveX & VBA - Chương 12: Tương tác với ứng dụng khác, cơ sở dữ liệu và Windows API

7 9 0
Phát triển AutoCAD bằng ActiveX & VBA - Chương 12: Tương tác với ứng dụng khác, cơ sở dữ liệu và Windows API

Đang tải... (xem toàn văn)

Thông tin tài liệu

Việc trao đổi thông tin với các ứng dụng được hỗ trợ ActiveX liên quan đến việc tham chiếu tới các mô hình đối tượng ActiveX của ứng dụng khác và viết mã lệnh cần thiết để sử dụng các [r]

(1)

Phát triển ứng dụng ActiveX VBA || 228877

T

TƯƯƠƠNNGG TTÁÁCC VVII NNGG DDNNGG K

KHHÁÁCC,, CCƠƠ SS DD LLIIUU VVÀÀ W

WIINNDDOOWWSS AAPPII11

12

Trong chương này

ƒ Tương tác với ứng dụng Visual LISP

ƒ Tương tác với ứng dụng trên Windows

ƒ Sử dụng Data Access Objects (DAO) để truy cập thông tin sở dữ liệu

ƒ Truy cập hàm Windows API từ VBA

Công nghệ ActiveX tạo khả trao đổi thông tin cách dễ dàng với ứng dụng khác AutoCAD ứng dụng hỗ trợ ActiveX khác Microsoft Excel hay Microsoft Word Nội dung đề cập chương tìm hiểu thủ tục thực tương tác với ứng dụng khác

(2)

1 Tương tác vi ng dng Visual LISP

Ứng dụng Visual LISP truy cập tới tất phạm vi đối tượng ActiveX Chúng gọi phương thức ActiveX, gán lấy thuộc tính đối tượng ActiveX Ngồi ứng dụng Visual LISP gọi Macro VBA qua lệnh VBARUN

ActiveX ứng dụng VBA thực ứng dụng Visual LISP thông qua phương thức SendCommand để gửi câu lệnh đến dịng lệnh AutoCAD Để tìm hiểu thêm truy cập đối tượng ActiveX thông qua Visual LISP, tham khảo “Visual LISP Developer’s Guide

2 Tương tác vi ng dng Windows

Công nghệ ActiveX AutoCAD cho phép trao đổi thông tin cách dễ dàng với ứng dụng hỗ trợ ActiveX Microsoft Excel Microsoft Word Khả cho phép tập hợp, lưu trữ biểu diễn thông tin AutoCAD theo định dạng khác ngồi dạng vẽ Ngồi ra, đọc thông tin từ ứng dụng khác vào AutoCAD để trực tiếp tạo tác động lên đối tượng AutoCAD Một ví dụ sử dụng cơng nghệ tạo hoá đơn vật liệu tính Excel từ đối tượng vẽ AutoCAD

Các chương trước hướng dẫn viết mã lệnh sử dụng mơ hình đối tượng ActiveX AutoCAD Việc trao đổi thông tin với ứng dụng hỗ trợ ActiveX liên quan đến việc tham chiếu tới mơ hình đối tượng ActiveX ứng dụng khác viết mã lệnh cần thiết để sử dụng đối tượng chúng

CHÚ Ý Chương giới thiệu cách vắn tắt khả lập trình ứng dụng chéo Những tài liệu vấn đề hướng tập trung AutoCAD chúng

đề cập tài liệu Microsoft hướng dẫn lập trình độc lập Chúng đề cập sâu tài liệu “VBA Foundations for AutoCAD” “VBA Solutions for AutoCAD” hãng Autodesk

Ba bước để thực trao đơi thơng tin mơ hình đối tượng ActiveX:

1 Tham chiếu đến mô hình đối tượng ActiveX ứng dụng khác Cần biết tên mối quan hệ đối tượng mơ hình đối tượng khác

2 Tạo đại diện ứng dụng khác

Bước tạo đối tượng hợp lệ đại diện cho đối tượng mơ hình đối tượng khác

(3)

Phát triển AutoCAD ActiveX VBA || 228899

2.1 Tham chiếu thư vin đối tượng ActiveX ca ng dng khác

Để lập trình truy cập tới ứng dụng khác cần cho VBA cách tạo đối tượng sử dụng ứng dụng Việc thiết lập cách tạo tham chiếu tới thư viện đối tượng Đó tệp máy tính nơi định nghĩa tất đối tượng, phương thức, thuộc tính, số kiện ứng dụng

Tạo tham chiếu tới thư viện đối tượng VBA IDE, chọn menu Tools˜References:

Hộp thoại xuất chứa danh sách liệt kê thư viện đối tượng mà VBA tìm thấy hệ thống Đánh dấu vào thư viện cần sử dụng danh sách, thư viện lựa chọn sẵn sàng cho việc tham chiếu dự án hành Ví dụ, để tham chiếu thư viện đối tượng Microsoft Excel, chọn thư viện đối tượng Microsoft Excel danh sách hình minh hoạ

Khi tạo tham chiếu đến thư viện đối tượng ứng dụng khác sử dụng Object Browser VBA để xem danh sách đối tượng ứng dụng

(4)

2.2 To đại din1 ca ng dng

Khi muốn tham chiếu đến thư viện đối tượng ứng dụng, ta phải tạo đại diện ứng dụng Đây việc thơng báo ta bắt đầu làm việc với ứng dụng biến đối tượng cụ thể

Để thực điều này, trước hết cần khai báo biến đại diện cho ứng dụng cách sử dụng lệnh Dim rõ ứng dụng khai báo Ví dụ sau khai báo biến đối tượng kiểu Excel.Application:

Dim ExcelAppObj as Excel.Application

Sau khai báo biến, sử dụng lệnh Set từ khoá New để gán biến đại diện thực thi ứng dụng Ví dụ sau, câu lệnh Set gán biến khai báo cho ứng dụng Excel, từ khoá New khởi động phiên làm việc Excel

Set ExcelAppObj = New Excel.Application

CHÚ Ý Một vài ứng dụng cho phép có đại diện thực thi thời

điểm Sử dụng từ khoá New ứng dụng thiết lập tham chiếu tới đại diện khơng khởi động thêm đại diện

2.3 Lp trình vi đối tượng ca ng dng khác

Sau tạo tham chiếu đến thư viện đối tượng tạo đại diện ứng dụng ta tạo thao tác với đối tượng ứng dụng Tất đối tượng, phương thức thuộc tính định nghĩa mơ hình đối tượng sẵn sàng sử dụng Ví dụ, dùng biến khai báo từ phần trước, dòng mã lệnh hiển thị chương trình Excel:

ExcelAppObj.Visible = TRUE

Để lập trình xây dựng ứng dụng ta cần thơng thạo mơ hình đối tượng ứng dụng, ngồi ta sử dụng Object Browser VBA tài liệu trợ giúp ứng dụng để tìm hiểu mơ hình đối tượng cần tham chiếu tới

2.3.1.Thoát khỏi ứng dụng khác

Khởi động ứng dụng lập trình làm tăng nhớ máy tính, nên đóng chúng lại khơng sử dụng để tài nguyên hệ thống giải phóng Mặc dù mơ hình đối tượng khác hầu hết có phương thức Quit dùng để đóng ứng dụng Ví dụ, dịng lệnh sau đóng chương trình Excel, sử dụng khai báo biến phần trên:

ExcelAppObj.Application.Quit

(5)

Phát triển AutoCAD ActiveX VBA || 229911 Liệt kê thuộc tính AutoCAD bảng tính Excel

Thủ tục thực tìm kiếm tham chiếu khối vẽ tại, sau tìm thuộc tính gắn với khối liệt kê chúng bảng tính Excel

Trình tự thực

1 Mở vẽ có chứa khối tham chiếu thuộc tính gắn với chúng (bản vẽ mẫu dùng có đường dẫn sample/activeX/attrib.dwg)

2 Mở VBA IDE dòng lênh VBAIDE AutoCAD

3 Trong menu Tools ˜ References, chọn đối tượng Microsoft Excel 11.0 Object (hoặc phiên khác đối tượng này)

4 Sao chép đoạn thủ tục vào cửa sổ viết mã lệnh Code VBA thực nó:

Sub Ch12_Extract()

Dim Excel As Excel.Application Dim ExcelSheet As Object

Dim ExcelWorkbook As Object Dim RowNum As Integer

Dim Header As Boolean Dim elem As AcadEntity Dim Array1 As Variant Dim Count As Integer ’ Khởi động Excel

Set Excel = New Excel.Application

’ Tạo workbook tìm kiếm bảng tính hoạt động Set ExcelWorkbook = Excel.Workbooks.Add

Set ExcelSheet = Excel.ActiveSheet ExcelWorkbook.SaveAs "Attribute.xls" RowNum =

Header = False

’ Lặp trình tìm kiếm khơng gian vẽ tất ’ tham chiếu khối

For Each elem In ThisDrawing.ModelSpace With elem

’ Khi tham chiếu khối tìm thấy ’ kiểm tra ln thuộc tính

If StrComp(.EntityName, "AcDbBlockReference", 1)= Then If HasAttributes Then

’ Lấy giá trị thuộc tính Array1 = GetAttributes

’ Sao chép Tagstrings thuộc tính vào bảng Excel

For Count = LBound(Array1) To UBound(Array1) If Header = False Then

If StrComp(Array1(Count).EntityName, _ "AcDbAttribute", 1) = Then

ExcelSheet.Cells(RowNum,Count + 1).value = _ Array1(Count).TagString

End If End If Next Count

RowNum = RowNum +

(6)

ExcelSheet.Cells(RowNum, Count + 1).value = _ Array1(Count).textString

Next Count Header = True End If

End If End With Next elem

Excel.Application.Quit End Sub

3 S dng DAO để truy cp thông tin ca cơ s d liu

Các đối tượng truy cập liệu (DAO - Data Access Objects ) cho phép làm việc với liệu sở liệu Đặc biệt sử dụng DAO ta truy cập vào sở liệu cung cấp Microsoft Jet, bao gồm:

ƒ Cơ sở liệu Desktop Access, dBase, FoxPro Paradox ƒ Cơ sở liệu ODBC Microsoft SQL Server Oracle®

DAO tạo điều kiện hoàn thiện điều khiển sở liệu từ mã lệnh VBA nên ta có thể:

ƒ Tạo sở liệu thay đổi cấu trúc sở liệu cũ ƒ Thêm bảng vào sở liệu, định nghĩa quan hệ bảng; định nghĩa

và thi hành câu truy vấn

ƒ Thêm, sửa xoá ghi liệu ƒ Bảo mật sở liệu

Có bước để sử dụng DAO lập trình VBA

1 Tham chiếu đến thư việc đối tượng DAO Microsoft (Microsoft DAO Object Library)

2 Mở sở liệu mà ta muốn làm việc, điều tạo thể đối tượng DAO

3 Viết mã lệnh sử dụng mơ hình đối tượng AutoCAD mơ hình đối tượng DAO

CHÚ Ý Chương cung cấp giới thiệu vắn tắt khả lập trình với DAO Những tài liệu vấn đề hướng tập trung AutoCAD chúng

(7)

Phát triển AutoCAD ActiveX VBA || 229933 Tạo tham chiếu đến thư viện đối tượng ứng dụng khác

1 Trong VBA IDE, mở menu Tools ˜ References

2 Tìm lựa chọn mục Microsoft DAO Object Library

3 Chọn OK để đóng hộp thoại cập nhật thay đổi

Khi tạo tham chiếu đến thư viện đối tượng DAO, ta sử dụng VBA Object Browser để nhìn thấy tất đối tượng thư viện đối tượng DAO

CHÚ Ý: Phải gán tham chiếu cho dự án VBA có sử dụng mơ hình đối tượng việc thiết lập tham chiếu khơng thực tựđộng cho dự án Điều

đó lý hiệu suất chương trình

3.2 M cơ s d liu

Để làm việc với liệu sở liệu, ta cần mở sở liệu VBA Phương thức để mở sở liệu OpenDatabase đối tượng Workspace mặc định mơ hình đối tượng DAO Dịng mã lệnh mở sở liệu có tên X.MDB:

Dim db As Database

Set db = DBEngine.Workspaces(0).OpenDatabase("C:\X.MDB")

Dòng mã lệnh tham chiếu đến đối tượng DBEngine sau tham chiếu đến đối tượng Workspace mặc định DAO Nó mở sở liệu đối tượng Workspace mặc định gán sở liệu cho biến đối tượng sở liệu

3.3 Lp trình vi mơ hình đối tượng ca DAO

Sau tham chiếu đến thư viện đối tượng DAO, thực tạo mở sở liệu, ta tiến hành truy vấn liệu sở liệu Tất đối tượng, phương thức thuộc tính định nghĩa mơ hình đối tượng DAO sử dụng

Phần lớn thao tác với liệu sở liệu liên quan tới đối tượng Recordset DAO Đối tượng thể tập hợp gồm hàng trả bảng, truy vấn lựa chọn (bằng đối tượng truy vấn câu lệnh SQL) đối tượng Recordset khác Đây đối tượng lập trình với liệu yếu tố bật mã lệnh thao tác với liệu

Để tự làm quen tìm hiểu thêm mơ hình đối tượng DAO, ta sử dụng VBA Object Browser tài liệu hướng dẫn DAO Micrsoft Các tài liệu tham khảo DAO bao gồm mã lệnh ví dụ để giúp cho người học bắt đầu

4 Truy cp hàm Windows API t VBA

Ngày đăng: 09/03/2021, 03:33

Tài liệu cùng người dùng

Tài liệu liên quan