<< Chapter < Page | Chapter >> Page > |
Học xong chương này, sinh viên có thể:
Kiến thức cần thiết:
Tài liệu tham khảo:
Visual Basic 6.0 và Lập trình cơ sở dữ liệu - Chương 21, trang 637 - Nguyễn Thị Ngọc Mai (chủ biên) – Nhà xuất bản Giáo dục - 2001.
SỬ DỤNG MICROSOFT ACCESS ĐỂ LẬP BÁO CÁO
Có hai kỹ thuật để thi hành một báo cáo Access từ ứng dụng VB:
- Sử dụng Automation để phóng một thể hiện (instance) của Microsoft Access, thi hành báo cáo trực tiếp từ trong ứng dụng. Automation là một kỹ thuật cho phép giao tiếp giữa các ứng dụng trên Windows. Ở đây Microsoft Access sẽ làm Automation Server.
- Dùng VSREPORTS của VideoSoft cho phép người sử dụng VB thi hành báo cáo của Microsoft Access bất kể máy của họ có cài đặt Microsoft Access hay là không. Đây là một điều khiển ActiveX chuyển đổi báo cáo từ tập tin MDB thành một định dạng mà ta có thể cung cấp cùng ứng dụng.
Trong bài giảng này, chúng tôi chỉ trình bày cách thứ nhất mặc dù cách này có nhiều hạn chế. Đối với cách thứ hai, để có thể thực hiện được ta cần phải cài đặt một số thư viện liên kết động (DLL). Các thư viện này tương đối khó tìm và nhất là chúng đòi hỏi bản quyền.
Bất lợi của kỹ thuật dùng Automation là buộc người dùng phải chạy một thể hiện (instance) của Microsoft Access cũng như phải cài đặt Microsoft Access trên máy. Để lập trình theo kỹ thuật này, ta tiến hành theo các bước sau:
- Tham chiếu đến Microsoft Access bằng cách từ menu Project chọn Preferences ->Microsoft Access 9.0 Object Library.
- Sau đó ta tạo một đối tượng như là đối tượng ứng dụng của Access như sau:
Dim MSAccess As Access.Application
Set MSAccess = New Access.Application
MSAccess.OpenCurrentDatabase(“Database Name”)
- Sử dụng thuộc tính DoCmd để thi hành báo cáo:
MSAccess.DoCmd.OpenReport "Report Name",acViewNormal
- Đóng cơ sở dữ liệu:
MSAccess.CloseCurrentDatabase
Lưu ý: Tránh dùng ràng buộc trễ với Automation
Phiên bản cũ của Automation là OLE Automation, dùng trong VB 3.0 và Microsoft Access 2.0.
Trong VB 3.0, ta có thể viết chương trình như sau:
Dim MSAccess As Object
Set MSAccess = CreateObject(“Access.Application”)
Đoạn chương trình trên hoạt động tốt đối với VB 3.0 nhưng có một cách khác tốt hơn. Thay vì dùng kiểu Object, ta nên chỉ rõ kiểu dữ liệu đối tượng mà Automation Server cung cấp (chẳng hạn Access.Aplication nếu là Access). Bởi vì khi đó, VB không cần thi hành câu truy vấn trên Automation Server mỗi khi ta truy cập nó để xác định kiểu đối tượng cần tạo. Kỹ thuật này gọi là ràng buộc trễ, giờ đây chỉ phủ hợp với 2 tình huống:
Notification Switch
Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?