Giáo trình đào tạo Visual Basic 6.0 1 M cl c 1 2 Mục lục ppt

260 379 0
Giáo trình đào tạo Visual Basic 6.0 1 M cl c 1 2 Mục lục ppt

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình đào tạo Visual Basic 6.0 M cl c Mục lục .1 Làm quen với visual basic 6.0 2.1 Xây dựng ứng dụng ban đầu 2.1.1 Viết ứng dụng ban đầu 2.1.2 Xây dựng tính Calendar 2.1.3 Thêm tính Clock 11 2.2 Các tính Visual basic 6.0 11 2.2.1 Khái quát vắn tắt Visual basic 6.0 11 2.2.2 Khai thác mạnh điều khiển mở rộng 12 2.3 Làm việc với mơi trường lập trình Visual basic .12 2.3.1 Tìm hiểu phần IDE 12 2.3.2 Thêm xố cơng cụ IDE Visual basic 13 2.3.3 Thêm điều khiển vào hộp công cụ 14 2.3.4 Định hướng thông qua cửa sổ form code 14 2.3.5 Quản lý ứng dụng với project explorer 14 2.3.6 Cửa sổ properties 14 2.3.7 Hiển thị IDE 14 2.3.8 Trợ giúp 15 Tìm hiểu Visual basic 16 3.1 Thuộc tính phương thức kiện 16 3.1.1 Đối tượng 16 3.1.2 Thuộc tính 16 3.1.3 Phương thức 17 3.1.4 Sự kiện 18 3.1.5 Mối quan hệ phương thức, thuộc tính kiện 18 3.1.6 Cửa sổ Properties 19 3.1.7 Viết chương trình sử dụng thuộc tính, phương thức kiện 20 3.2 Làm việc với đề án 24 3.2.1 Định nghĩa 24 3.2.2 Cửa sổ Project Explorer 25 3.2.3 Tạo đề án 25 3.2.4 Đổi thuộc tính đề án 25 3.2.5 Lưu đặt tên đề án 26 FPT Software Solution Trang:1/260 Giáo trình đào tạo Visual Basic 6.0 3.2.6 Mở đề án có sẵn 26 3.2.7 Thêm xoá lưu tập tin đề án 27 3.2.8 Thêm điều khiển vào đề án 29 3.2.9 Tạo tệp tin EXE 30 3.2.10 Sửa đổi thuộc tính đề án 31 3.3 Làm việc với nhiều đề án 32 3.3.1 Sử dụng Project Group 32 3.3.2 Thêm đề án vào nhóm đề án 32 3.3.3 Xoá đề án nhóm đề án 33 Làm việc với điều khiển .34 4.1 Các loại điều khiển .34 4.1.1 Thao tác với điều khiển 34 4.2 Các điều khiển nội 37 4.2.1 Nút lệnh 37 4.2.2 Hộp văn 38 4.2.3 Điều khiển cuộn 38 4.2.4 Điều khiển Timer 39 4.2.5 Điều khiển nhãn 39 4.2.6 Checkbox: 39 4.2.7 Một số thuộc tinh thông dụng: 39 4.2.8 4.2.9 Hộp danh sách (Listbox) 39 4.3 Các điều khiển M ới 40 Nhập môn lập trình 41 5.1 Chuẩn lập trình (Coding convention) 41 5.1.1 Coding conventions 41 5.1.2 Form design standard 46 5.1.3 Report design standard (for Crystal Report) 49 5.1.4 Database design standards 50 5.2 Thiết kế trước viết chương trình 51 5.3 Các thao tác thông dụng cửa sổ Code .51 5.3.1 Soạn thảo Code 51 5.3.2 Một số chức tự động 52 5.4 Biến kiểu liệu 52 5.4.1 Khai báo biến 52 5.4.2 Khai báo ngầm 52 FPT Software Solution Trang:2/260 Giáo trình đào tạo Visual Basic 6.0 5.4.3 Khai báo tường minh 53 5.4.4 Khai báo biến Static 53 5.4.5 Hằng 53 5.5 Hàm thủ tục 60 5.6 Cấu trúc điều khiển 61 5.6.1 Cấu trúc chọn 61 5.6.2 Cấu trúc lặp 62 5.6.3 Làm việc với cấu trúc 63 5.7 Gỡ rối chương trình 63 5.7.1 Một số giải pháp giảm lỗi 63 5.7.2 Gỡ rối 64 5.8 Bẫy lỗi 65 5.8.1 Lệnh On Error 65 5.8.2 Kết thúc bẫy lỗi 65 Lập trình xử lý giao diện 66 6.1 Menu 66 6.1.1 Dùng trình soạn thảo menu để tạo menu 66 6.1.2 Viết chương trình điều khiển menu 67 6.2 Hộp thoại 67 6.2.1 Thông điệp(Message box) 67 6.2.2 Hộp nhập(Input box) 68 6.2.3 Các hộp thoại thông dụng(Common dialog) 68 6.2.4 Hộp thoại hiệu chỉnh 68 6.3 Thanh công cụ(ToolBar) 69 6.3.1 Trong ứng dụng đơn giản 69 6.3.2 Nhúng đối tượng 69 6.4 Thanh trạng thái 69 6.5 Xử lý chuột bàn phím 69 6.5.1 kiện chuột 69 6.5.2 Hiệu chỉnh trỏ chuột 70 6.5.3 Sự kiện bàn phím 70 Xử lý tập tin 72 7.1 Mô hình FSO(File System Object model) 72 7.2 Xử lý tập tin với dòng lệnh hàm I/O cổ điển 72 7.2.1 Các kiểu truy cập tập tin 72 7.3 Các điều khiển hệ thống tập tin 75 7.3.1 Hộp danh sách ổ đĩa 75 FPT Software Solution Trang:3/260 Giáo trình đào tạo Visual Basic 6.0 7.3.2 Hộp danh sách thư mục 75 7.3.3 Hộp danh sách tập tin 76 7.4 Điều khiển richtextbox .76 7.4.1 Phương thức loadfile 77 7.4.2 Phương thức savefile 77 Sử dụng DLL Windows API 78 8.1 DLL cấu trúc Windows 78 8.1.1 Các hộp thoại thông dụng 78 8.2 WIN API 79 8.3 Sử dụng API .80 8.3.1 Tìm kiếm API 80 8.3.2 Các DLL Windows 80 8.3.3 Gọi API 81 8.4 Dùng API khai thác khả Multimedia 84 8.4.1 Lớp multimedia 84 Thêm trợ giúp vào ứng dụng 96 9.1 Thêm hỗ trợ cho Help 96 9.1.1 Thuộc tính HelpFile 96 9.1.2 Thuộc tính HelpContextID 96 9.2 Thêm hỗ trợ cho WHAT’S THIS HELP 97 9.2.1 Kích hoạt What’s This Help cho biểu mẫu 97 9.3 Cung cấp help với ứng dụng 98 9.3.1 Cung cấp WinHelp 98 9.3.2 Cung cấp HTML Help 98 10 Lập trình hướng đối tượng 99 10.1 Giới thiệu đối tượng 99 10.1.1 Đối tượng VB 100 10.1.2 Modul Lớp 100 10.1.3 Tham số tuỳ chọn 105 10.1.4 Sự kiện lớp 106 10.1.5 Huỷ đối tượng 107 10.2 Biến đối tượng .108 10.2.1 Tạo điều khiển lúc thi hành 108 10.2.2 Sự kiện mảng điều khiển 109 10.2.3 Quản lý điều khiển biến đối tượng 110 10.2.4 Khai báo biến đối tượng 112 FPT Software Solution Trang:4/260 Giáo trình đào tạo Visual Basic 6.0 10.3 Tập hợp 114 10.3.1 Thuộc tính Controls 114 10.3.2 Xác định điều khiển biểu mẫu 114 10.4 Biểu mẫu MDI .117 10.4.1 Biểu mẫu (Child Form) 117 10.4.2 Tạo Instance biểu mẫu 117 10.4.3 Xác định biểu mẫu 118 10.4.4 Tạo danh sách cửa sổ 118 11 Công cụ VB6 120 11.1 ADD-INS .120 11.2 Các công cụ ADD-INS 120 11.2.1 Trình cài đặt ứng dụng 120 11.2.2 Trình đối tượng liệu tự động 120 11.2.3 Trình xây dựng liệu tự động 121 11.2.4 Trình thiết kế Add-ins tự động 122 11.2.5 Trình thiết kế tự động 122 11.2.6 Tiện ích xây dựng lớp 123 11.2.7 Trình tạo cơng cụ tự động 123 11.3 Trình đóng gói triển khai ứng dụng 123 11.3.1 Phát hành ứng dụng 123 11.3.2 Trình đóng gói triển khai ứng dụng 124 11.3.3 Mở trình đóng gói triển khai VB 124 11.3.4 Mở trình đóng gói triển khai ứng dụng độc lập 124 11.3.5 Thi hành Wizard chế độ silent 125 11.3.6 Setup toolkit 125 11.4 Bài tập 126 12 Những khái niệm CSDL 127 12.1 Cơ sở liệu gì? 127 12.1.1 Bộ máy (Engine) sở liệu gì? 127 12.1.2 Bản trường 128 12.1.3 Recordset ? 129 12.1.4 Các kiểu sở liệu 129 12.1.5 Tạo lược đồ sở liệu 130 12.1.6 Dùng Visual Basic để tạo sở liệu 130 12.1.7 Các mối quan hệ 140 FPT Software Solution Trang:5/260 Giáo trình đào tạo Visual Basic 6.0 12.1.8 Chuẩn hố 141 12.2 Sử dụng cửa sổ xem liệu 143 12.3 Tạo trình thiết kế mơi trường liệu .145 12.3.1 Tạo giao diện người sử dụng với thiết kế DATAENVIRONMENT 146 12.4 Sử dụng điều khiển liệu để tạo giao diện người sử dụng 147 12.4.1 Kết nối với sở liệu làm việc với mẩu tin 148 12.4.2 Tạo giao diện người sử dụng 150 12.4.3 Thao tác mẩu tin thông qua điều khiển ADO Data 151 12.4.4 Các thuộc tính quan trọng khác điều khiển ADO DATA 155 12.5 Tổng kết 156 12.6 Hỏi Đáp .157 13 Các đối tượng truy cập liệu 158 13.1 Sử dụng mơ hình đối tượng DAO 158 13.1.1 Lập trình với đối tượng 160 13.1.2 Sử dụng điều khiển DAO Data 160 13.1.3 Sử dụng thuộc tính Connect điều khiển DAO Data để truy cập nguồn liệu bên 160 13.2 Sử dụng DAO để làm việc với liệu 161 13.2.1 Dùng đối tượng DataBase để kết nối với CSDL 161 13.2.2 Sử dụng đối tượng Recordset 162 13.2.3 Chỉ tuỳ chọn cho Recordset 163 13.3 Sử dụng đối tượng Field để thao tác với trường 163 13.4 Sửdụng phương thức duyệt với đối tượng Recorset 164 13.4.1 Sử dụng BOF EOF để duyệt qua Recordset 164 13.4.2 Dùng BOF EOF để xác định Recordset có rỗng hay khơng 164 13.4.3 Dùng thuộc tính RecordCout để xác định số mẩu tin recordset 165 13.4.4 Dùng phương thức Edit để sửa đổi giá trị mẩu tin 165 13.4.5 Sử dụng phương thức AddNew Update để tạo mẩu tin 166 13.4.6 Sử dụng AppendChunk để nối liệu vào trường nhị phân 167 13.4.7 Sử dụng phương thức Close để đóng Recordset 168 13.5 Tìm kiếm liệu Recordset bảng 168 13.5.1 Sử dụng phương thức Find để định vị mẩu tin recordset 168 13.5.2 Sử dụng phương thức Seek để thi hành tìm kiếm theo mục 169 13.5.3 Lặp qua suốt tập hợp Indexes TableDef 170 13.5.4 Sử dụng thuộc tính Bookmark để ghi nhớ vị trí Recordset 171 13.5.5 sử dụng tập hợp Errors đối tượng Error để xử lý lỗi 171 FPT Software Solution Trang:6/260 Giáo trình đào tạo Visual Basic 6.0 13.6 Tạo đối tượng để thao tác cấu trúc CSDL 172 13.6.1 Tạo CSDL 172 13.6.2 Sử dụng đối tượng TableDef để thao tác với bảng 173 13.7 Làm việc với tài liệu nơi chứa CSDL .178 13.8 Tạo sử dụng thuộc tính hiệu chỉnh đối tượng DataBase 179 13.9 Tổng kết 180 13.10 Hỏi đáp 181 14 Thiết lập báo cáo Xuất thông tin 182 14.1 Sử dụng thiết kế DataReport 182 14.1.1 Thiết kế với DataReport 183 14.1.2 Xem xuất DataReport 185 14.2 Sử dụng Microsoft Access để làm báo cáo 185 14.2.1 Thi hành báo cáo Access từ Visual Basic 185 14.3 Sử dụng Crystal report để lập báo cáo 190 14.3.1 Cài đặt Crystal Reports 190 14.3.2 Dùng Crystal Reports tạo báo cáo 190 14.3.3 Thi hành báo cáo ứng dụng với điều khiển ActiveX Crystal Reports 193 14.3.4 Sử dụng Crystal Reports 193 15 ODBC đối tượng liệu từ xa 194 15.1 Định cấu hình sử dụng ODBC 194 15.1.1 Kiến trúc ODBC 194 15.1.2 Tạo nguồn liệu 194 15.1.3 Truy cập nguồn liệu với điều khiển DAO DATA ODBCDIRECT 197 15.2 Truy cập liệu dùng điều khiển liệu từ xa .198 15.2.1 Sử dụng RDC 198 15.3 Sử dụng RDO chương trình 199 15.3.1 Quy định thuộc tính máy sở liệu dùng đối tượng RDOENGINE 200 15.3.2 Truy cập môi trường đối tượng rdoEnvironment 200 15.3.3 Thiết lập kết nối dùng đối tượng rdoConnection 201 15.3.4 Đáp ứng kiện RDO 203 15.4 Tạo kết nốI với trình thiết kế uerconnecttion 204 15.5 Truy cập truy vấn với trìng thiết kế UserConnection 206 15.5.1 Gọi thủ tục chứa sẵn trình thiết kế UserConnection 206 FPT Software Solution Trang:7/260 Giáo trình đào tạo Visual Basic 6.0 15.5.2 Dùng Microsotf Query để xây dựng chuỗi SQL trình thiết kế UserConnection 208 15.6 Sử dụng liệu với đối tượng rdorerultset 209 15.7 Thi hành truy vấn với đối tượng rdoQuery 209 16 Truy cập sở liệu với lớp 211 16.1 Làm việc với lớp đối tượng .212 16.1.1 Tạo phân nhánh lớp với tiện ích xây dựng lớp 212 16.1.2 Sử dụng biểu mẫu lớp 216 16.2 Tạo Intance bội cho biểu mẫu 218 16.2.1 Sử dụng lớp đối tượng truy cập sở liệu 218 16.3 Tạo lớp cần sử dụng liệu 221 16.3.1 Tạo lớp xuất liệu 223 16.3.2 Triển khai lớp thành Active Server 224 16.4 Tổng kết 229 17 Truy cập liệu từ xa 230 17.1 Client / Server thành phần 230 17.1.1 Cấu trúc Cilent/Server Three- Tier 230 17.2 251 18 Đối tượng liệu ActiveX 252 18.1 Xây dựng ứng dụng Visual basic với ADO 252 18.1.1 Tìm hiểu cấu trúc OLE DB / ADO 252 18.1.2 Cài đặt thiết lập tham chiếu đến ADO ứng dụng Visual basic 253 18.1.3 Sử dụng ADO với thư viện đối tượng truy cập liệu khác 254 18.1.4 Dùng đối tượng connection ADO để kết nối với nguồn liệu 254 18.1.5 Làm việc với trỏ 255 18.1.6 Khoá ghi ADO 257 18.1.7 Sử dụng đối tượng Recordset ADO để thao tác với liệu 257 18.1.8 Tạo Recordset ngắt kết nối 258 18.2 Sử dụng dịch vụ liệu từ xa ADO 259 FPT Software Solution Trang:8/260 Giáo trình đào tạo Visual Basic 6.0 Làm quen v i visual basic 6.0 2.1 Xây d ng ng d ng ban đ u 2.1.1 Vi t ng d ng ban đ u Cách tốt để học lập trình viết chương trình Vậy thử viết chương trình hiển thị lịch biểu, cho phép người sử dụng: • Hiển thị lịch biểu tháng hành • Duyệt qua tháng • Hiển thị đồng hồ báo hành Nếu bạn cho chương trình nặng nề cho người học, đừng lo lắng Visual basic làm hết việc cho bạn Khác với ngôn ngữ C++, bạn phải viết thứ ít, Visual basic cung cấp mức đọ cao lập trình tự động Như vậy, bạn làm nhiều thứ mà khơng phải lập trình nhiều Tuy nhiên, đừng hiểu sai “khơng lập trình nhiều” nghĩa “khơng có nhiều tính mạnh” Visual basic ngơn ngữ mạnh Ta lập trình để làm “mọi thứ” cần Ta khai thác khả tự động Visual basic để viết chương trình thật nhanh Chọn lựa người lập trình Visual basic đủ linh hoạt để hỗ trợ cho người lập trình từ người học đến lập trình chun nghiệp 2.1.2 Xây d ng tính Calendar Bây ta bắt đầu xây dựng tính ứng dụng Đầu tiên, ta cần lịch biểu Ta tự tạo sử dụng lịch biểu có sẵn Visual basic (đây điều khiển ActiveX) Ta chọn cách thứ Từ menu Project, chọn Components Bởi vì, mặc định tất điều khiển ActiveX Visual basic không nạp tự động Muốn dùng bạn phải chọn từ menu Components Trong hộp thoại Components chọn Windows Common Controls 2.6.0 nhấn OK FPT Software Solution Trang:9/260 Giáo trình đào tạo Visual Basic 6.0 ActivateX gì? ActivateX sản phẩm Microsoft cho phép ta tạo chương trình nhỏ, gọi thành phần(componet) điều khiển (control) để thêm vào chương trình lớn Đó chương trình độc lập (Standalone program) hay chương trình chạy Internet Ta dùng Visual basic để tự tạo điều khiển ActivateX Phần trình bày riêng Đến điều khiển lịch nạp vào công cụ Tên thức điều khiển ActivateX MonthView Kế tiếp ta đưa điều khiển vào biểu mẫu Thêm điều khiển MonthView vào biểu mẫu Chọn biểu tượng điều khiển MonthView từ hộp công cụ Nhấn đúp chuột lên biểu tượng điều khiển để đưa vào biểu mẫu Bạn vừa tạo xong chương trình nhấn F5 để chạy FPT Software Solution Trang:10/260 Giáo trình đào tạo Visual Basic 6.0 Dùng thuộc tính ReplicableBool để biến đối tượng thành đối tượng hỗ trợ chụp Chú ý thuộc tính hiệu chỉnh ta dùng đến có giá trị ký tự - ký tự T hay F thể giá trị Boolean True hay False Bởi chúng giới thiệu cho Jet, thuộc tính sở liệu hiệu chỉnh chứa giá trị ký tự Trong Jet 3.51, thuộc tính hiệu chỉnh chứa tập hợp phong phú gồm nhiều kiểu liệu Nhờ đó, giúp ta tạo thuộc tính gắn liền với Replication DAO cách dễ dàng ta thích dùng True / False thay T / F iii Nếu muốn thuộc tính Replicable đối tượng sở liệu dùng giá trị Boolean, ta tạo định thuộc tính ReplicableBool thay Replicable.ReplicatonBool dùng giá trị Boolean, thay chuỗi ký tự Private Sub cmdMakeTableBool_Click() On Error GoTo ErrHandler Set db = OpenDatabase(MasterDBPath, True) Set td = db.TableDefs("tblCustomer") td.Properties("ReplicableBool") = True On Error GoTo MsgBox "The Replicable property of " & _ td.Name & _ " has been set to " & _ td.Properties("Replicable") Set db = Nothing ' Release exclusive lock on DB Exit Sub ErrHandler: If Err.Number = 3270 Then Set pr = td.CreateProperty("ReplicableBool", dbBoolean, True) td.Properties.Append pr Else MsgBox "Error " & Err & " - " & Error End If End Sub Khi tạo dùng thuộc tính ReplicableBool, thuộc tính Replicable trở thành có sẵn, thuộc tính trả giá trị, nghĩa ta quy định ReplicableBool True, đọc thuộc tính Replicable, ta thấy “T” iv Lập trình với DAO để tạo sở liệu Tạo sở liệu từ Bản thiết kế gốc cách thi hành phương thức MakeReplica đối tượng Database Cú pháp : FPT Software Solution Trang:246/260 Giáo trình đào tạo Visual Basic 6.0 db.MakeReplica ,[], [] • • • tập tin sở liệu mà ta muốn tạo chuỗi ký tự Tham số tuỳ chọn Tham biến hay hai giá trị Tuỳ chọn thứ nhất, dbRepMakePartial, tạo phần, nghĩa ta kiểm sốt mẩu tin copy từ Bản thiết kế gốc vào Tuỳ chọn thứ hai, dbRepMakeReadOnly, cho phép tạo đọc với người sử dụng (Tuy nhiên, ta gửi liệu đối tượng liệu đến thơng qua đồng hố) Private Sub cmdSpawn_Click() Dim db As Database Set db = OpenDatabase(MasterDBPath, True) db.MakeReplica ReplicaDBPath, "MyReplica" db.Close Set db = Nothing End Sub v Lập trình với DAO để tiến hành đồng hố Trong chương trình, tạo đối tượng Database thể sở liệu Thi hành phương thức Synchronize đối tượng Database để tiến hành đồng hoá với Bản thiết kế gốc Phương thức Synchronize dùng tên tập tin sở liệu thiết kế gốc làm tham biến Trong đoạn chương trình sau, nreplica.mdb sao, nmaster.mdb Bản thiết kế gốc Private Sub cmdSynch_Click() Dim db As Database Set db = OpenDatabase(MasterDBPath) Screen.MousePointer = vbHourglass db.Synchronize ReplicaDBPath Screen.MousePointer = vbNormal End Sub Thuộc tính MousePointer đối tượng Screen dùng để báo cho người sử dụng Replication tiến hành vi Sao chụp phần Thông thường, ta khơng muốn truyền tồn liệu từ Bản thiết kế gốc đến Nhất việc khơng thích hợp khơng thực tế phải gửi toàn nội dung sở liệu gốc đến người sử dụng xa Những khơng nên truyền thơng tin bí mật kinh doanh lương bổng, thông tin bảo mật sở liệu nhưu ID mật FPT Software Solution Trang:247/260 Giáo trình đào tạo Visual Basic 6.0 người sử dụng Cơ sở liệu ta cần liệu gắn liền với cá nhân người sử dụng chụp vào máy tính họ Kiểu chụp hiệu kiểu chụp tồn phần tạo liệu mà người sử dụng cần đến Một phần sở liệu khơng chụp tồn liệu Bản thiết kế gốc Để tạo phần, ta theo bước sau: Tạo phần dùng phương thức MakeReplica đối tượng Database, tuỳ chọn dbRepMakePartial Quy định thuộc tính ReplicaFilter đối tượng TableDef mẩu tin copy vào phần ReplicaFilter cho ta quy định mệnh đề Where câu SQL đến số mẩu tin cần copy vào phần từ sở liệu nguồn Ngoài ra, quy định thêm thuộc tính PartialReplica đối tượng Relation số mẩu tin copy vào dựa kết nối bảng Thi hành phương thức PopulatePartial đối tượng Database để copy liệu từ Bản thiết kế gốc vào phần Đối với phần, ta lọc mẩu tin, khơng thể lọc trường Để hạn chế số cột hiển thị người sử dụng, ta xem xét bảo mật sở liệu để hạn chế quyền truy cập đối tượng sở liệu 17.1.1.3.4.5 Dùng phương thức MakeReplica để tạo phần Ta tạo phần từ Bản thiết kế gốc từ toàn phần khác (Ta tạo phần từ phần khác) Option Explicit ' References DAO 3.51 Private db As Database Private td As TableDef Const MasterDBPath = " \ \DB\nmaster.mdb" Const ReplicaPath = " \ \DB\npartial.mdb" Private Sub cmdMakePartial_Click() Set db = OpenDatabase(MasterDBPath) db.MakeReplica ReplicaPath, "Partial", dbRepMakePartial db.Close Set db = Nothing End Sub Bản phần tạo từ chương trình chứa cấu trúc sở liệu sao, chưa có liệu Khi tạo phần, ta khơng thể chuyển đổi thành tồn phần Tuy nhiên, chụp tồn liệu Bản thiết kế gốc vào cách quy định thuộc tính ReplicaFilter True FPT Software Solution Trang:248/260 Giáo trình đào tạo Visual Basic 6.0 17.1.1.3.4.6 Tiến hành chụp phần Sau tạo phần, ta copy mẩu tin từ toàn phần Bản thiết kế gốc theo bước sau : Trong chương trình sử dụng DAO, khai báo quy định giá trị cho biến đối tượng Database sở liệu phần Khai báo biến TableDef cho bảng phần để chứa liệu chụp Quy định thuộc tính ReplicaFilter đối tượng TableDef điều kiện WHERE câu SQL Nó xác định mẩu tin copy vào phần Thi hành phương thức PopulatePartial đối tượng Database, đường dẫn tên tập tin thiết kế gốc toàn phần mà ta muốn copy từ Có thể dùng thuộc tính ReplicaFilter đối tượng TableDef để chụp tập mẩu tin từ sở liệu đến sở liệu phần Thuộc tính ReplicaFilter chứa giá trị : • Nếu ReplicaFilter True, toàn mẩu tin sở liệu nguồn copy vào sở liệu phần • Nếu ReplicaFilter False, khơng có mẩu tin từ sở liệu nguồn copy vào phần • Nếu ReplicaFilter chuỗi, máy sở liệu xem mệnh đề WHERE câu SQL Để gán lọc copy mẩu tin từ Bản thiết kế gốc toàn phần vào phần, dùng đoạn chương trình sau : Option Explicit ' References DAO 3.51 Private db As Database Private td As TableDef Const MasterDBPath = " \ \DB\nmaster.mdb" Const ReplicaPath = " \ \DB\npartial.mdb" Private Sub cmdMakePartial_Click() Set db = OpenDatabase(MasterDBPath) db.MakeReplica ReplicaPath, "Partial", dbRepMakePartial db.Close Set db = Nothing End Sub Private Sub cmdReplicate_Click() ' Open partial replica in exclusive mode Set db = OpenDatabase(ReplicaPath, True) Set td = db.TableDefs("tblCustomer") FPT Software Solution Trang:249/260 Giáo trình đào tạo Visual Basic 6.0 td.ReplicaFilter = "State = 'CA'" ' Populate with data from design master db.PopulatePartial MasterDBPath ' Release exclusive lock on database Set db = Nothing End Sub Khi ta thi hành đoạn chương trình trên, khách hàng sống tiểu bang California copy vào phần TỔNG KẾT Chương đề cập vấn đề chủ yếu phân phát liệu qua mạng đến nhiều người sử dụng Trong phần đầu, bạn tìm hiểu cách thức sử dụng thành phần ActiveX để truy cập liệu theo hướng đối tượng Nó thảo luận triển khai DCOM với thành phần ActiveX, cho phép ta triển khai đối tượng kinh doanh qua mạng LAN Trong phần thứ hai, ta tìm hiểu cách thức chụp sở liệu Jet qua mạng để phân phát liệu qua hay nhiều tập tin sở liệu Mặc dù chủ đề thành phần tầng trung gian ActiveX chụp sở liệu nói phần riêng, khơng có nghĩa chúng loại trừ lẫn Trong chương trình, bạn phối hợp hai kỹ thuật để phân phát liệu theo diện xa rộng Dùng kỹ thuật tuỳ thuộc vào cấu trúc chương trình, số người sử dụng cần hỗ trợ, mức độ yêu cầu giữ cho liệu quán HỎI VÀ ĐÁP Hỏi : Tôi vừa tạo thư viện ActiveX DLL dùng để truy cập liệu Tơi có cần biên dịch lại thành Active EXE để truy cập chúng qua mạng từ xa không ? Đáp: Không Nếu bạn dùng Microsoft Transaction Server, bạn đóng gói thư viện ActiveX DLL truy cập chúng từ xa Triển khai thành phần từ xa dùng kỹ thuật MTS trình bày đầu chương Hỏi : Khi tiến hành chụp sở liệu, hệ thống sở liệu chủ yếu off-line Vậy để biết tốn ? Đáp: Bởi có nhiều yếu tố ảnh hưởng, lượng liệu ta cần thao tác, băng thơng mạng, tốc độ máy tính xử lý mẩu tin Nếu gặp phải rắc rối tiến hành chụp sở liệu, bạn thử trình tự động ( viết ứng dụng Visual Basic để đồng hoá liệu lúc sở liệu không sử dụng nhiều – vào ban đêm chẳng hạn ) Bạn thử dùng phần để giảm thiểu lượng liệu copy Hỏi: Bởi chụp phần cho phép tuỳ chọn không chụp, chụp phần chụp toàn mẩu tin; thực tế, ta chuyển đổi qua lại chụp phần toàn phần, không để tất chụp phần ? Đáp: Bạn đồng hố Bản thiết kế gốc tồn phần, khơng cho phép đồng hố phần khác Điều cung cấp linh hoạt trường hợp mà bạn muốn đồng hố nhiều FPT Software Solution Trang:250/260 Giáo trình đào tạo Visual Basic 6.0 với để giảm bớt áp lực phải xử lý máy tính chứa Bản thiết kế gốc 17.2 FPT Software Solution Trang:251/260 Giáo trình đào tạo Visual Basic 6.0 18 Đ i tư ng d li u ActiveX • Xây dựng ứng dụng Visual basic với ADO • Sử dụng dịch vụ liệu từ ADO Cho đến Visual basic 5.0, ADO (Dữ liệu đối tượng ActivateX - ActivateX Data Object) trở thành tảng ký thuật truy cập liệu Internet Trong Visual basic 6.0, ADO 2.0 cang quan trọng - mạnh mẽ Ta dùng ADO không để truy cập sở liệu thông qua trang web, mà cịn dùng để lấy liệu từ ứng dụng viết Visual basic ADO giao diện dựa đối tượng cho công nghệ liệu gọi OLE DB OLE DB thiết kế để thay ODBC phương thức truy cập liệu ODBC thời tiêu chuẩn phía Client sử dụng Windows phổ biến để truy cập liệu quan hệ thiết lập Server sở liệu quan hệ tổng quát tốt đến ứng dụng Client OLE DB sâu bước, cách làm cho tất nguồn liệu trở thành tổng quát ứng dụng Client 18.1 Xây d ng ng d ng Visual basic v i ADO ADO công nghệ truy cập sở liệu hướng đối tượng tương tự DAO RDO ADO Microsoft xem kỹ thuật để truy cập sở liệu từ Web server Bởi ADO cung cấp dạng thư viện ActivateX Server (tương tự DAO RDO), ta thoải mái dùng ADO ứng dụng Visual basic Trong thực tế, nhiều cách, ta thấy sử dụng ADO để làm việc với sở liệu Client/Server dễ kỹ thuật khác 18.1.1 Tìm hi u c u trúc OLE DB / ADO Phần lớn nhà lập trình viên Visual basic không thao tác trực tiếp với OLE DB Thay vào đó, họ lập tình với ADO, mơ hình đối tượng cung cấp giao diện với OLE DB Client Workstation Client Application Remote Data Object ActiveX Data Object ODBC Driver OLE DB Datta Provider ODBC Driver Manager OLE DB Document Server Email Server Relational Database Hình: Sử dụng ADO OLE DB để tăng cường truy cập thông tin sở liệu FPT Software Solution Trang:252/260 Giáo trình đào tạo Visual Basic 6.0 Trình cung cấp OLE DB khơng nhiều trình cung cấp ODBC số lượng tăng lên đáng kể từ ADO 2.0 phát hành vào năm 1998 Phiên đưa vào Visual basic 6.0 bao gồm trình cung cấp cục cho SQL Server, Oracle Microsoft Jet/ access Có nhiều khả bạn dùng ADO OLE DB để đạt nguồn liệu quan hệ khơng có trình cung cấp OLE DB cụ Bởi có tình cung cấp OLE DB tổng quát cho sở liệu quan hệ ODBC Ta cần lập trình với phần giao diện Người sử dụng phía Client Bởi việc truy cập liệu trình duyệt Web ứng dụng Visual basic chuyển hết phía ActivateX Server, ta bảo đảm logic chương trình ln qn, loại ứng dụng dùng Sau cấu trúc truy cập sở liệu ODBC dùng trình cung cấp ODBC OLE DB Client Application ActiveX Data Object OLE DB ODBC Provider ODBC Driver ODBC Driver Manager OLE DB Relational Database Cấu trúc cho phép ta dùng thành phần lập trình ActivateX thơng dụng trình duyệt Web ứng dụng Client Visual basic 18.1.2 Cài đ t thi t l p tham chi u đ n ADO ng d ng Visual basic ADO cài đặt phần Visual basic 6.0 Phiên của ADO cho phép tải xuống miễn phí từ địa http://www.Microsoft.com/data/ado Sau cài đặt xong, ta bắt đầu sử dụng cách thiết lập tham chiếu đến thư viện ADO ứng dụng Visual basic, tương tự ta thiết lập tham chiếu đến thư viện DAO hay RDO FPT Software Solution Trang:253/260 Giáo trình đào tạo Visual Basic 6.0 - Trong project Visual basic chọn references, hộp thoại references xuất Chọn vào hộp đánh dấu “Microsoft ActivateX Data Objects 2.0 Library” nhấn OK Chú ý tham chiếu ADO phải đảm bảo khơng có tham chiếu đến thư viện “Microsoft ActivateX Data Objects 2.0 Recordset” Đây phiên loại nhẹ thư viện ADO thiết kế để sử dụng phía Client Nó hỗ trợ Recordset Field 18.1.3 S d ng ADO v i thư vi n đ i tư ng truy c p d li u khác Nếu bạn tạo ứng dụng thiết kế để sử dụng ADO kết hợp với thư viện đối tượng truy cập liệu khác, DAO, cần phải phân biệt giữa, ví dụ đối tượng RecordSet DAO Recordset ADO Chúng đổi chỗ cho Nếu ta tham chiếu đến vừa ADO vừa DAO khai báo biến Recordset, làm để phân biệt Recordset DAO hay ADO? Câu trả laời thứ tự tham chiếu vào đề án Nếu thêm tham chiếu đối tượng DAO trước Recordset DAO ngược lại Để tránh nhầm lẫn ta nên khai báo tường minh sau: ADODB.Recorset Nếu không muốn tham chiếu trực tiếp đến thư viện đối tượng chương trình, ta có cách khác Ta kiểm sốt thư viện đối tượng nao truy cập mặc định cách dùng giá trị mực ưu tiên hộp References 18.1.4 Dùng đ i tư ng connection c a ADO đ k t n i v i ngu n d li u Vị trí đối tượng Connection mơ hình ADO:(Xem hình dưới): Dùng phương thức Open đối tượng Connection để thiết lập kết nối với nguồn liệu Để thông báo cho ADO cách nối với nguồn liệu ta phải cung cấp thông tin dạng chuối kết nối ODBC Ta dùng thuộc tính ConnectionString để thực điều Ta cịn có khả tuỳ chọn để chọn trình cung cấpnào dùng cách quy định giá trị thuộc tính Provider đối tượng Connection 18.1.4.1 Ch trình cung c p OLE DB chu i k t n i Nếu khơng trình cung cấp, ta khơng dùng đối tượng Connection, ta có trình cung cấp mặc định, trình cung cấp ODBC, MSDASQL Thuộc tính Provider đối tượng Connection chuỗi ký tự kết nối mà trình cung cấp OLE DB dùng Dùng chuỗi kết nối ADO để cung cấp thông tin cách thức kết nối với Server sở liệu Khi ta dùng trình cung cấp ODBC cho OLE DB, chuỗi kết nối tương tự chuỗi kết nối ODBC Điều có nghĩa thơng tin xác mong chờ trình điều khiển ODBC thay đổi tuỳ theo cách thực Đối với trình cung cấp khác, chuỗi kết nối có cú pháp hồn tồn khác Khi ta dùng trình cung cấp ODBC, thuộc tính ConnectionString DSN (tên nguồn liệu) hay kết nối khơng có DSN Đây ví dụ kết nối đến sở liệu dùng trình cung cấp ODBC với DSN: FPT Software Solution Trang:254/260 Giáo trình đào tạo Visual Basic 6.0 Connection Object Property Arttributes CommandTimeOut ConnectionString ConnectionTimeOut CursorLocation DefaultDataBase Errors collection Isolation Level Mode Properties collection Provider State Version Methods BeginTrans Cancel Close CommitTrans Execute Open OpenSchema RollbackTrans Events BeginTransComplete CommittranCopmlete ConnectionComplete Disconnect ExexuteComplete InfoMessage RollBackTransComplete WillConnect WillExecute Errors collection Error Object Properties collection Property object Recordset object Command object Cn.Provider = “MSDASQL” Cn.ConnectionString = “DSN = Novelty;” Sử dụng DSN chuỗi kết nối dĩ nhiên yêu cầu DSN tên Novelty phải thực tồn máy Client Trường hợp kết nối khơng có DSN: Cn.Provider = “MSDASQL” Cn.ConnectionString = “DRIVER = {SQL Server}; DATABASE = Novelty; UID = sa ; PD = ;” Kết nối nối kết Server nhanh khơng cần đọc thơng tin DSN từ bảng đăng ký Windows Tuy nhiên, linh hoạt gắn chặt thơng tin với chương trình biên dịch 18.1.5 Làm vi c v i tr Tương tự RDO DAO, ADO hỗ trợ số kiểu trỏ Ngoài việc cung cấp hỗ trợ duyệt qua ghi thời điểm, kiểu trỏ khác cho phép ta điều khiển cách quản lý Recordset Quy định vị trí trỏ cách gán giá trị cho thuộc tính Recordset Sau kiểu trỏ đối tượng Connection: Kiểu trỏ Hằng Mơ tả Phía Client adUseClient Tạo trỏ phía Client Phía Server adUseServer Tạo trỏ phía Server Chọn trỏ kiểu Client nghĩa ADO OLE DB xử lý hoạt động trỏ Con trỏ Client thường khơng có sẵn server Ví dụ, ADO, ta tạo Recordset khơng kết nối, cho phép ta thao tác với ghi mà khơng có kết FPT Software Solution Trang:255/260 Giáo trình đào tạo Visual Basic 6.0 nối thường xuyên đến server Khả chức thư viện trỏ phía Client Trong ADO, thuộc tính CursorLocation áp dụng cho đối tượng Recordset Connection Nếu ta gán thuộc tính CursorLocation đối tượng Connection, tất Recordset mà ta tạo từ kết nối có vị trí trỏ đối tượng Connection Ngồi việc vị trí trỏ, ta có khả tạo kiểu trỏ khác ADO Việc chọn lựa trỏ tuỳ theo cân đối chức khả hoạt động Chỉ kiểu trỏ cách gán thuộc tính CursorType đối tượng Recordset Sau kiểu trỏ tạo ADO: Hằng Mô tả Kiểu trỏ Forward-only adOpenForwardOnly Khơng dùng trỏ - ta chuyển phía trước Recordset; sử dụng phương thức MovePrevious MoveFirst sinh lỗi Keyset(Trong adOpenKeyset Ta tháy ghi ADO gọi người dùng khác thêm vào, dynaset) họ sửa đổi hay xoá tin làm ảnh hưởng đến Recordset ta làm việc; kiểu trỏ hiệu nhất, đặc biệt Recordset lớn Dynamic adOpenDynamic Ta thấy tồn thay đổi liệu người sử dụng khác thực ta mở Recordset; kiểu trỏ hiệu mạnh mẽ Static(Trong adOpenStatic Bản toàn liệu DAO gọi Recordset; kiểu đặc biệt hữu dụng snapshot) ta tìm kiếm liệu hay thi hành báo cáo; kiểu trỏ hữu dụng cho Recordset nhỏ Dĩ nhiên, lý để ta chọn trỏ kiểu forward-only thay keyset hay dynamic khả hoạt động - ta hiển thị liệu chứa sở liệu – trỏ kiểu forward-only làm khả hoạt động ứng dụng hiệu Lưu ý rằng, trình cung cấp liệu khơng thể tạo điều khiển trỏ mà ta yêu cầu, tạo trỏ mà Nói chung, khơng báo lỗi ta cố thi hành tác vụ vốn bị cấm kiểu trỏ Xác định trỏ tính khác hỗ trợ trình cung cấp Bởi OLE DB ADO thiết kế phép truy cập đến nhiều nguồn liệu, ứng dụng cần xác định tính trình cung cấp định hỗ trợ Có thể hệ sở liệu quan hệ cho phép tạo trỏ kiểu forword-Only phía server, hệ sở liệu máy cá nhân sở liệu dựa tập tin khơng có tính Phương thức supports đối tượng ADO Recordset xác định kiểu trỏ trình cung cấp liệu hỗ trợ Bảng sau liệt kê giá trị truyền vào phương thức Supports để xác định tính hỗ trợ đối tượng Recordset: Hằng Mô tả adAddnew Thêm ghi vào Recordset adApproxPosition Thuộc tính AbsolutePage AbsolutePosition có sẵn; chúng FPT Software Solution Trang:256/260 Giáo trình đào tạo Visual Basic 6.0 adBookmark adDelete adHoldRecords adMovePrevious adResync adUpdate adUpdateBatch 18.1.6 dùng để kết hợp với thuộc tính Pagesize PageCount đối tượng Recordset phép xác định trang chứa ghi hành Có thể quy định đánh dấu trang sách Recordset Bản ghi xoá Recordset Bản ghi trả từ sở liệu mà khơng cần ghi sửa đổi có vào server Có thể cuộn tới lui Recordset Phương thức có sẵn Recordset cập nhật Recordset cập nhật hàng loạt với phương thức UpdateBatch Ta nạp sửa đổi nhiều mẫu tin hoạt động nhất, cải tiến hiệu Client/Server Khoá b n ghi ADO Tương tự mơ hình đối tượng truy cập sở liệu khác, ADO cho phép quy định kiểu khoá ghi(Record - locking) khác Ta dùng tính cần kiểm soát cách thức cập nhật ghi với nhiều người sử dụng sở liệu Quy định chế độ khoá cho đối tượng Recordset ADO thơng qua thuộc tính LockType Dưới danh sách kiểu khố ghi Mơ tả Hằng adLockReadOnly Cấm cập nhật ghi adLockPressimistic Bản ghi Recordset bị khoá bắt đầu sửa đổi, tiếp tục bị khoá đến thi hành phương thức Update hay chuyển sang ghi khác adlockOptimistic Bản ghi bị khoá thi hành phương thức Update hay di chuyển sang ghi khác adlockBatchOptimistic Hỗ trợ cập nhật nhiều ghi lúc Điểm quan trọng cần lưu ý phương thức khoá mặc định ADO adLockReadOnly Đây điểm khác biệt đáng kể lập trình ADO DAO, DAO mặ định Recordset phép sửa đổi Điều có nghĩa ta khơng đổi thuộc tính LockType CursorType, Recordset DAO đọc Sự diện kiểu khoá ghi phụ thuộc vào trình cung cấp liệu hỗ trợ Ta dùng phương thức support đối tượng Recordset để xác định trình cung cấp có hỗ trợ kiểu khố ghi hay khơng 18.1.7 S d ng đ i tư ng Recordset c a ADO đ thao tác v i d li u Đối tượng Recordset ADO, tương tự Recordset DAO rdoresultset RDO, phương pháp truy cập thông tin trả từ trình cung cấp liệu Recordset ADO có nhiều thuộc tính phương thức trùng với Recordset mơ hình khác, làm việc với chúng tương tự Recordset khác Vị trí Recordset ADO mơ hình đối tượng ADO: FPT Software Solution Trang:257/260 Giáo trình đào tạo Visual Basic 6.0 Recordset Object Property AbsolutePage AbsolutePosition ActiveCommand ActiveConnection BOF Bookmark CacheSize CursorLocation Methods Addnew Cancel CancelBatch CancelUpdate Clone CompareBookmark Delete Find Events EndOfRecorset FetchCopmlete FetchProgress FieldChangeComplete MoveComplete RecordChangeComplete RecordsetChangeComplete WillChangeField Fields collection Field Object Properties collection Property object Thủ tục tạo Recordset cảu ADO tương tự tạo rdorseultset RDO Tuy nhiên, ADO thêm thay đổi lý thú: khả tạo đối tượng Recordset khơng địi hỏi đối tượng Connection ngầm 18.1.7.1 Dùng đ i tư ng Recordset đ c p nh t thêm b n ghi m i Thêm cập nhật ghi ADO tương tự DAO Thêm ghi: - Mở Recordset - Thi hành phương thức AddNew - Gán giá trị cho trường đối tượng Recordset - Lưu ghi phương thức Update Recordset Cập nhật ghi: - Mở Recordset - Gán giá trị cho trường Recordset - Lưu ghi thi hành phương thức Update 18.1.8 T o Recordset ng t k t n i Khi dùng trỏ phía Client ADO, ta có khả ngắt kết nối với server tiếp tục làm việc với liệu Cách làm cho ứng dụng trở nên linh hoạt, nhiều người sử dụng làm việc với liệu họ khơng cần kết nối đến Server Để ngắt kết nối với Server ADO, ta quy định thuộc tính ActiveConnection đối tượng Recordset Nothing Client tiếp tục làm việc với liệu chí khơng kết nối với server FPT Software Solution Trang:258/260 Giáo trình đào tạo Visual Basic 6.0 18.2 S d ng d ch v d li u t xa c a ADO Dịch vụ liệu từ xa (Remote Data Service - RDS) dùng để lấy Recordset ADO từ web server Thư viên kèm với ADO, chủ yếu cho phép ta dùng HTTP làm vận chuyển mạng cho ứng dụng sở liệu Chủ yếu dùng ứng dụng trình duyệt web, hoạt động tốt với Client Visual basic Lưu ý RDS có tên cũ Nối liệu nâng cao (Advance Data Connector) bạn tìm hiểu thêm địa chỉ: http://www.Microsoft.com.data/ado/rds Ta dùng đối tượng DataControl RDS để lấy đối tượng Recordset ADO Internet Đối tượng này, phục vụ từ máy tính chạy với IIS 3.0(microsoft Internet Infomation Server) trở lên, có khả trả đối tượng Recordset ADO đến Client qua HTTP Cách dễ để minh hoạ cách dùng RDS thi hành truy vấn Web server dùng đối tượng DataControl RDS - Tạo đề án Standard EXE - Trong menu Project Referances, lập tham chiếu đến Microsoft ActivateX Data Objects 2.0 Recordset Library - Tạo hộp văn bản, nút lệnh, danh sách biểu mẫu - Đưa đoạn chương trình sau: Option Explicit Private rdc As RDS.DataControl Private Sub cmdQuery_Click() Screen.MousePointer = vbHourglass Set rdc = New RDS.DataControl rdc.SQL = "select * from tblCustomer where state = 'IN'" rdc.ExecuteOptions = adcExecAsync rdc.Connect = "DSN=JetNovelty;" rdc.Server = "http://localhost/" rdc.Refresh While rdc.ReadyState = adcReadyStateLoaded ' busy DoEvents Wend Do Until rdc.Recordset.EOF With rdc.Recordset lstCustomer.AddItem.Fields("FirstName") & " " & _ Fields("LastName") MoveNext End With Loop Set rdc = Nothing Screen.MousePointer = vbNormal End Sub FPT Software Solution Trang:259/260 Giáo trình đào tạo Visual Basic 6.0 Trong ví dụ này, server “localhost” dùng Đây cách gọi tắt Web server chứa máy Nó tiện dụng cần kiểm nghiệm chương trình.Vịng lặp While Wend dùng để chờ đáp ứng server Đây tính bất đồng lênh gọi HTTP Ta chắn lâu server đáp ứng, ta phải chờ FPT Software Solution Trang:260/260 ... 12 0 11 .1 ADD-INS . 12 0 11 .2 C? ?c công c? ?? ADD-INS 12 0 11 .2 .1 Trình c? ?i đặt ứng dụng 12 0 11 .2. 2 Trình đối tượng liệu tự động 12 0 11 .2. 3 Trình xây... 12 1 11 .2. 4 Trình thiết kế Add-ins tự động 12 2 11 .2. 5 Trình thiết kế tự động 12 2 11 .2. 6 Tiện ích xây dựng lớp 12 3 11 .2. 7 Trình tạo c? ?ng c? ?? tự động 12 3 11 .3... 12 7 12 .1 C? ? sở liệu gì? 12 7 12 .1. 1 Bộ m? ?y (Engine) sở liệu gì? 12 7 12 .1. 2 Bản trường 12 8 12 .1. 3 Recordset ? 12 9 12 .1. 4 C? ?c kiểu sở liệu 12 9

Ngày đăng: 22/07/2014, 22:22

Từ khóa liên quan

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

Tài liệu liên quan