Chuyển đến nội dung chính

Liên kết VBA với Microsoft ACCESS

Như các bạn đã biết thì Microsoft Access là một phần mềm dữ liệu đơn giản, và chúng ta đặt câu hỏi làm thế nào liên kết VBA trong AutoCAD với phần mềm này, tạo nên một cơ sở dữ liệu để sử dụng. Ví dụ giải bài toán Nền móng, có rất nhiều bảng dữ liệu hay bài toán kiểm định dầm bê tông... Một thư viện MBD của Microsoft Access sẽ được gọi trong VBA, và sử dụng lệnh của VBA để vẽ chúng ra thì thật là tuyệt phải không?
Hướng dẫn dưới đây sẽ giúp bạn hiểu đơn giản về Access và các kết nối Access với VBA trong AutoCAD.
1. Sơ lược về M.Access
a. Tạo 1 bảng dữ liệu đơn giản.
Tạo một bảng trong Access: Chọn NEW để lập một bảng mới sau đó dùng Design để tạo các trường trong bản đó.
Bước 2 Đó là các trường (fields) trong bảng (table) ngồm có: IDNAMEFULLNAME,ADDRESS
Để làm thử các câu lệnh QUERRY trong Access Chọn New -> Design View -> Close
b. Hướng dẫn dùng câu lệnh QUERRY trong Access

Ví dụ bạn gõ lên SELECT như trên, và bấm RUN. Một bảng dữ liệu sẽ được trả về cho bạn
Câu lệnh SELECT Dùng để chọn tất các dữ liệu trong bảng: Cú pháp:
SELECT [TÊN CÁC CỘT] FROM [TÊN BẢNG] WHERE [ĐIỀU KIỆN1] [OR, AND,IN,=,>,<] [ĐIỀU KIỆN 2]
Hoặc SUBQUERRY
SELECT [TÊN CÁC CỘT] FROM [TÊN BẢNG] WHERE [ĐIỀU KIỆN1 =, IN (CÂU LỆNH SELECT KHÁC)]
VD: Select * From VBAADO Chọn tất cả dữ liệu trong bảng VBAADO
Select * from VBAADO Where Na me =’VD’ Chọn tất cả các dữ liệu nào có tên là VD trong bảng đó
Câu lệnh CHÈN INSERT cú pháp:
INSERT INTO [TÊN BẢNG] VALUES([TẬP HỢP DỮ LIỆU CẦN ĐƯA VÀO BẢNG])
VD: INSETRT INTO VBAADO VALUES(‘6’,’VD1’,’VD1’,’VD1’) Chèn dữ liệu trên vào bảng của VBAADO
Câu lệnh UPDATE Cú pháp :
UPDATE [Tên bảng] SET [Trường dữ liệu cần update] WHERE [Điều Kiện]
VD: Update VBAADO SET ADDRESS=’Vi du VBA MDB’ WHERE NAME =’VD’
Tức là câu lệnh này sẽ update dữ liệu cho trường ADDRESS cho những người có tên ‘VD’
 Có thể bỏ WHERE nhưng như thế câu lệnh sẽ tự update hết cho tất cả.
Câu lệnh DELETE Cú pháp:
DELETE FROM [TÊN BẢNG] WHERE [Điều Kện]
VD: DELETE * FROM VBAADO WHERE ID='1'  xóa tất cả dữ liệu tại những trường có ID là 1
2. Kết nối Database với VBA AUTOCAD
Giả sử tôi có file dữ liệu là Testmdb.mdb như ở trên có một bảng VBAAD. Tôi sẽ copy file này đường dẫn như trên ảnh. (thư mục mà bạn cài Autocad).
- Trong VBA bạn chọn: Liên kết Reference Bạn vào Tool -> Reference.
Hộp References sẽ hiện ra, vấn đề ở đây bạn phải tìm được MICROSOFT DAO 3.6 Object Library, chức năng của thư viện này là để giúp bạn truy cập vào thư viện MDB hay M.ACCESS.
Để liên kết được với thư viện này trong VBA bạn sử dụng lệnh sau:
Dim db As Database
Dim rs As Recordset
Dim index As Integer
index = 0

Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\ [Tên file mdb (trong trường hợp này là Testado.mdb nhưở trên)] ")
Set rs = db.OpenRecordset([Câu lệnh SELECT ])
[Nơi bạn viết tiếp mã lệnh]
Sau khi làm việc với Database xong phải đóng Database đó lại bằng 2 hàm sau:
Set db = Nothing
Set rs = Nothing
Ví dụ dưới đây giúp bạn hiểu hơn về đọc dữ liệu từ M.Access 1 listBox
Bạn cần tạo một form như sau.
Với Listbox1 : sẽ có các thuộc tính sau: ở List Box Properties chú ý đến:
+ ColumnCount: Số lượng cột
+ ColumnHeads: Hiện hay ẩn tiêu đề của cột

với CommandButton1: khi bấm cho để nó có thể đọc dữ liệu từ file MDB vào ta làm các lệnh như sau:
Dim db As Database
Dim rs As Recordset
Dim index As Integer
index = 0
Set db = DBEngine.Workspaces(0).OpenDatabase(Application.Path & "\Testado.mdb")
Set rs = db.OpenRecordset("Select Name from VBAADO")
If rs.EOF = False Then
While Not rs.EOF
ComboBox1.AddItem rs("Name"), index
index = index + 1
DoEvents rs.MoveNext Wend End If
Set db = Nothing Set rs = Nothing
Giải thích:
DBEngine.Workspaces(0).OpenDatabase(Application.Path & "\Testado.mdb")
Mở dữ liệu từ file TestADO.mdb
db.OpenRecordset("Select Name from VBAADO"):
Mở bảng dữ liệu qua câu lệnh SELECT Name from VBAADO rs.EOF = Flase : kiểm tra xem trong bản đã có dữ liệu không?
While Not rs.EOF : nếu mà bản có dữ liệu thì vòng lệnh sẽ cho phép RecordSet đọc dữ liệu của bảng ra cho đến khi hết.
ComboBox1.AddItem rs("Name"), index
Thêm dữ liệu vào Combox tại vị trí theo Số thứ tự của Combox index = index + 1: Tằng lên theo số thứ tự của Combox DoEvents : Thự hiện các sự kiện rs.MoveNext : Nhẩy tới dong tiếp thoe của bảng dữ liệu
Wend: Lệnh của vong lặp While.
Sau khi chạy thử và bấm CommandButton1 ta sẽ có một Combox được đọc dữ liệu từ file mdb vào Combox như hình dưới.

Với ListBox tương tự, nhưng chú ý đển là là listbox có số lượng ColumnCount và RowCount
Để đưa dữ liệu vào Listbox chúng ta có 2 cách như sau:
ListBox1.ColumnCount = 3
ListBox1.AddItem "Row 1, Col 1" ListBox1.List(0, 1) = "Row 1, Col 2" ListBox1.List(0, 2) = "Row 1, Col 3"
ListBox1.AddItem "Row 2, Col 1" ListBox1.List(1, 1) = "Row 2, Col 2" ListBox1.List(1, 2) = "Row 2, Col 3"
ListBox1.AddItem "Row 3, Col 1" Tunt Nguyen 22 tunguyen2309@gmail.com
ListBox1.List(2, 1) = "Row 3, Col 2" ListBox1.List(2, 2) = "Row 3, Col 3"
ListBox1.TextColumn = 3
Hoặc theo kiểu Mảng như sau:
Dim i As Single ListBox1.ColumnCount = 3 For i = 0 To 5
MyArray(i, 0) = i Next i
MyArray(0, 1) = "Zero" MyArray(1, 1) = "One" MyArray(2, 1) = "Two" MyArray(3, 1) = "Three" MyArray(4, 1) = "Four" MyArray(5, 1) = "Five"
MyArray(0, 2) = "Zero" MyArray(1, 2) = "Un ou Une" MyArray(2, 2) = "Deux" MyArray(3, 2) = "Trois" MyArray(4, 2) = "Quatre" MyArray(5, 2) = "Cinq"
ListBox1.List() = MyArray
3. Dưới đây là Mã nguồn của toàn bài ví dụ:
Dim MyArray(6, 3)
Private Sub CommandButton1_Click() Dim db As Database Dim rs As Recordset Dim index As Integer index = 0 Set db = DBEngine.Workspaces(0).OpenDatabase(Application.Path & "\Testado.mdb") Set rs = db.OpenRecordset("Select Name from VBAADO")
If rs.EOF = False Then
While Not rs.EOF ComboBox1.AddItem rs("Name"), index index = index + 1 DoEvents rs.MoveNext
Wend End If
Set db = Nothing Set rs = Nothing
End Sub
Private Sub CommandButton2_Click() Dim i As Single ListBox1.ColumnCount = 3 For i = 0 To 5
MyArray(i, 0) = i Next i
'Load columns 2 and three of MyArray MyArray(0, 1) = "Zero" MyArray(1, 1) = "One" MyArray(2, 1) = "Two" MyArray(3, 1) = "Three" MyArray(4, 1) = "Four" MyArray(5, 1) = "Five"
MyArray(0, 2) = "Zero" MyArray(1, 2) = "Un ou Une" MyArray(2, 2) = "Deux" MyArray(3, 2) = "Trois" MyArray(4, 2) = "Quatre" MyArray(5, 2) = "Cinq"
ListBox1.List() = MyArray End Sub
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3
ListBox1.AddItem "Row 1, Col 1", 0 ListBox1.List(0, 1) = "Row 1, Col 2" ListBox1.List(0, 2) = "Row 1, Col 3"
ListBox1.AddItem "Row 2, Col 1" ListBox1.List(1, 1) = "Row 2, Col 2" ListBox1.List(1, 2) = "Row 2, Col 3"
ListBox1.AddItem "Row 3, Col 1" ListBox1.List(2, 1) = "Row 3, Col 2" ListBox1.List(2, 2) = "Row 3, Col 3"
ListBox1.TextColumn = 3 End Sub
Private Sub ListBox1_Change() TextBox1.Text = ListBox1.Text End Sub
Sau khi chạy chương trình sẽ được như sau: Giải thích một số lệnh cơ bản: ListBox1_Change() khi bấm vào Listbox trên màn hình thì TextBox1 sẽ nhận được giá trị của ListBox UserForm_Initialize() Khi khởi động form tất cả giá trị trong vòng lệnh này sẽ được thực hiện không cần thao tác.
Mã nguồn một số ví dụ:


Theo viet3g.com

Nhận xét

Bài đăng phổ biến từ blog này

Hướng Dẫn Thiết Kế Navigation với Photoshop

Nav­i­ga­tion rõ ràng là một trong những khía cạnh quan trọng nhất của thiết kế web về tính khả dụng, nhưng, ngoài ra, nó còn có là một tâm điểm của diện mạo thiết kế. Các But­ton của thanh Nav­i­ga­tion, thanh Bar và Menu mang đến cho nhà thiết kế cơ hội tuyệt vời để sáng tạo và bổ sung một vài phong cách mới vào thiết kế. Đối với mục đích này, công cụ nào được sử dụng tốt hơn Photoshop? Đây là một bộ sưu tập gồm 45 hướng dẫn sẽ giúp bạn tạo ra một thanh Nav­i­ga­tion hoàn hảo. Một số hướng dẫn tạo ra kết quả cuối cùng tương tự như một hướng dẫn khác trong danh sách này, nhưng bạn có thể tìm hiểu một điều khác lạ từ mỗi một hướng dẫn vì cách tiếp cận tới mỗi bài hướng dẫn này là khác nhau. Stun­ning Vista inspired menu từ PSDTuts Slick blue nav­i­ga­tion menu từ SigTutorials Glossy nav­i­ga­tion bar từ Core GFX Quick glass buttons từ Bits O’ NewMedia Basic sleek button từ psFreak.com Sleek but­tons từ OriginMaker Vista styled button ...

Download AutoCAD 2012 Full + Crack, AutoCAD 2012 Full,

Update: More on AutoCAD would be available on Mastering AutoCAD 2012 The next release of AutoCAD is in development & codenamed “Ironman”. If you are interested to be part of the testing team for AutoCAD 2012., register at https://beta.autodesk.com/signup/ AutoCAD 2012 | CAD Professor: The next release of AutoCAD is in development & codenamed Ironman. If you are inte... http://bit.ly/ezBIRD

[File Cad] Khách Sạn Kaya – 4 Sao

Là đơn vị trực thuộc công ty xây dựng Hiệp Hòa, khách sạn Kaya mang đẳng cấp quốc tế tiêu chuẩn tương đương 4 sao tọa lạc tại số 238 đại lộ Hùng Vương – Trung tâm TP. Tuy Hòa, Tỉnh Phú Yên. Dưới đây là 1 số bản vẽ Mặt Bằng, Mặt Cắt, Kết Cấu.. của Khách Sạn Kaya này mà mình sưu tầm được. Công trình gồm 1 tầng hầm, 1 trệt, 1 lửng và 13 lầu.Với tổng chiều cao 55.4m Tên File: File Cad – Kaya Hotel (4 Sao) – Cty XD Hiệp Hòa – TP. Tuy Hòa – Phú Yên Download: Mặt Bằng – Kaya Hotel (01 File .DWG – Size: 4.5 Mb) Download: Mặt Cắt – Kaya Hotel (01 File .DWG – Size: 1.9 Mb) Download: Kết Cấu – Kaya Hotel (05 File .DWG – Size: 2.5 Mb) Download: Phối Cảnh – Kaya Hotel (02 File .JPG – Size: 1.5 Mb) Link Download Toàn Bộ File Trên: http://www.mediafire.com/?gi9e2e82awvdvse (10 Mb) Thông Tin: Nguồn: Sưu Tầm – Upload by www.danxaydung.tk Hình Demo: (theo danxaydung.tk)