Giáo trình đào tạo Visual Basic 6.0

261 15 0
  • Loading ...
1/261 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 28/11/2016, 05:24

Giáo trình đào tạo Visual Basic 6.0 Mục lụ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 xoá 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/261 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/261 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 69 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 70 6.5.1 kiện chuột 70 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/261 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/261 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 123 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 124 11.3 Trình đóng gói triển khai ứng dụng 124 11.3.1 Phát hành ứng dụng 124 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 .125 11.3.5 Thi hành Wizard chế độ silent .125 11.3.6 Setup toolkit .126 11.4 Bài tập 127 12 Những khái niệm CSDL 128 12.1 Cơ sở liệu gì? 128 12.1.1 Bộ máy (Engine) sở liệu gì? 128 12.1.2 Bản trường 129 12.1.3 Recordset ? .130 12.1.4 Các kiểu sở liệu 130 12.1.5 Tạo lược đồ sở liệu 131 12.1.6 Dùng Visual Basic để tạo sở liệu 131 12.1.7 Các mối quan hệ .141 FPT Software Solution Trang:5/261 Giáo trình đào tạo Visual Basic 6.0 12.1.8 Chuẩn hoá 142 12.2 Sử dụng cửa sổ xem liệu 144 12.3 Tạo trình thiết kế môi trường liệu 146 12.3.1 Tạo giao diện người sử dụng với thiết kế DATAENVIRONMENT 147 12.4 Sử dụng điều khiển liệu để tạo giao diện người sử dụng 148 12.4.1 Kết nối với sở liệu làm việc với mẩu tin .149 12.4.2 Tạo giao diện người sử dụng .151 12.4.3 Thao tác mẩu tin thông qua điều khiển ADO Data 152 12.4.4 Các thuộc tính quan trọng khác điều khiển ADO DATA 156 12.5 Tổng kết 157 12.6 Hỏi Đáp 158 13 Các đối tượng truy cập liệu .159 13.1 Sử dụng mô hình đối tượng DAO 159 13.1.1 Lập trình với đối tượng 161 13.1.2 Sử dụng điều khiển DAO Data 161 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 161 13.2 Sử dụng DAO để làm việc với liệu 162 13.2.1 Dùng đối tượng DataBase để kết nối với CSDL 162 13.2.2 Sử dụng đối tượng Recordset 163 13.2.3 Chỉ tuỳ chọn cho Recordset 164 13.3 Sử dụng đối tượng Field để thao tác với trường 164 13.4 Sửdụng phương thức duyệt với đối tượng Recorset 165 13.4.1 Sử dụng BOF EOF để duyệt qua Recordset .165 13.4.2 Dùng BOF EOF để xác định Recordset có rỗng hay không 165 13.4.3 Dùng thuộc tính RecordCout để xác định số mẩu tin recordset 166 13.4.4 Dùng phương thức Edit để sửa đổi giá trị mẩu tin 166 13.4.5 Sử dụng phương thức AddNew Update để tạo mẩu tin .167 13.4.6 Sử dụng AppendChunk để nối liệu vào trường nhị phân 168 13.4.7 Sử dụng phương thức Close để đóng Recordset 169 13.5 Tìm kiếm liệu Recordset bảng 169 13.5.1 Sử dụng phương thức Find để định vị mẩu tin recordset 169 13.5.2 Sử dụng phương thức Seek để thi hành tìm kiếm theo mục 170 13.5.3 Lặp qua suốt tập hợp Indexes TableDef 171 13.5.4 Sử dụng thuộc tính Bookmark để ghi nhớ vị trí Recordset 172 13.5.5 sử dụng tập hợp Errors đối tượng Error để xử lý lỗi 172 FPT Software Solution Trang:6/261 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 173 13.6.1 Tạo CSDL .173 13.6.2 Sử dụng đối tượng TableDef để thao tác với bảng 174 13.7 Làm việc với tài liệu nơi chứa CSDL 179 13.8 Tạo sử dụng thuộc tính hiệu chỉnh đối tượng DataBase 180 13.9 Tổng kết 181 13.10 Hỏi đáp 182 14 Thiết lập báo cáo Xuất thông tin .183 14.1 Sử dụng thiết kế DataReport 183 14.1.1 Thiết kế với DataReport 184 14.1.2 Xem xuất DataReport 186 14.2 Sử dụng Microsoft Access để làm báo cáo 186 14.2.1 Thi hành báo cáo Access từ Visual Basic 186 14.3 Sử dụng Crystal report để lập báo cáo 191 14.3.1 Cài đặt Crystal Reports 191 14.3.2 Dùng Crystal Reports tạo báo cáo 192 14.3.3 Thi hành báo cáo ứng dụng với điều khiển ActiveX Crystal Reports 194 14.3.4 Sử dụng Crystal Reports 194 15 ODBC đối tượng liệu từ xa 195 15.1 Định cấu hình sử dụng ODBC 195 15.1.1 Kiến trúc ODBC 195 15.1.2 Tạo nguồn liệu 195 15.1.3 Truy cập nguồn liệu với điều khiển DAO DATA ODBCDIRECT 198 15.2 Truy cập liệu dùng điều khiển liệu từ xa 199 15.2.1 Sử dụng RDC 199 15.3 Sử dụng RDO chương trình 200 15.3.1 Quy định thuộc tính máy sở liệu dùng đối tượng RDOENGINE 201 15.3.2 Truy cập môi trường đối tượng rdoEnvironment 201 15.3.3 Thiết lập kết nối dùng đối tượng rdoConnection 202 15.3.4 Đáp ứng kiện RDO 204 15.4 Tạo kết nốI với trình thiết kế uerconnecttion 205 15.5 Truy cập truy vấn với trìng thiết kế UserConnection 207 15.5.1 Gọi thủ tục chứa sẵn trình thiết kế UserConnection .207 FPT Software Solution Trang:7/261 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 209 15.6 Sử dụng liệu với đối tượng rdorerultset 210 15.7 Thi hành truy vấn với đối tượng rdoQuery 210 16 Truy cập sở liệu với lớp 212 16.1 Làm việc với lớp đối tượng 213 16.1.1 Tạo phân nhánh lớp với tiện ích xây dựng lớp 213 16.1.2 Sử dụng biểu mẫu lớp .217 16.2 Tạo Intance bội cho biểu mẫu 219 16.2.1 Sử dụng lớp đối tượng truy cập sở liệu 219 16.3 Tạo lớp cần sử dụng liệu 222 16.3.1 Tạo lớp xuất liệu 224 16.3.2 Triển khai lớp thành Active Server 225 16.4 Tổng kết 230 17 Truy cập liệu từ xa 231 17.1 Client / Server thành phần 231 17.1.1 Cấu trúc Cilent/Server Three- Tier 231 17.2 252 18 Đối tượng liệu ActiveX 253 18.1 Xây dựng ứng dụng Visual basic với ADO 253 18.1.1 Tìm hiểu cấu trúc OLE DB / ADO 253 18.1.2 Cài đặt thiết lập tham chiếu đến ADO ứng dụng Visual basic 254 18.1.3 Sử dụng ADO với thư viện đối tượng truy cập liệu khác 255 18.1.4 Dùng đối tượng connection ADO để kết nối với nguồn liệu .255 18.1.5 Làm việc với trỏ 256 18.1.6 Khoá ghi ADO .258 18.1.7 Sử dụng đối tượng Recordset ADO để thao tác với liệu 258 18.1.8 Tạo Recordset ngắt kết nối 259 18.2 Sử dụng dịch vụ liệu từ xa ADO 260 FPT Software Solution Trang:8/261 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à 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 chuyên 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/261 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/261 Giáo trình đào tạo Visual Basic 6.0 Giá trị “T” thuộc tính Replicable đối tượng sở liệu tự động đổi thuộc tính KeepLocal thành “F” iii 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 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 FPT Software Solution Trang:247/261 Giáo trình đào tạo Visual Basic 6.0 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 : 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 soá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 hoá) 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 hoá 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 FPT Software Solution Trang:248/261 Giáo trình đào tạo Visual Basic 6.0 Thông thường, ta không muốn truyền toà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 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 toà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 toà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, 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 FPT Software Solution Trang:249/261 Giáo trình đào tạo Visual Basic 6.0 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 chuyển đổi thành toàn phần Tuy nhiên, chụp toàn liệu Bản thiết kế gốc vào cách quy định thuộc tính ReplicaFilter True 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, 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 FPT Software Solution Trang:250/261 Giáo trình đào tạo Visual Basic 6.0 Private Sub cmdReplicate_Click() ' Open partial replica in exclusive mode Set db = OpenDatabase(ReplicaPath, True) Set td = db.TableDefs("tblCustomer") 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, 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 FPT Software Solution Trang:251/261 Giáo trình đào tạo Visual Basic 6.0 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 hoá Bản thiết kế gốc toàn phần, không cho phép đồng hoá phần khác Điều cung cấp linh hoạt trường hợp mà bạn muốn đồng hoá nhiều 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:252/261 Giáo trình đào tạo Visual Basic 6.0 18 Đối tượng 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à 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:253/261 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ệ 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 quán, 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 FPT Software Solution Trang:254/261 Giáo trình đào tạo Visual Basic 6.0 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 - 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 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 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 soá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 ADO để kết nối với nguồn 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ó 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 hoàn toà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 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:255/261 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 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 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à kết FPT Software Solution Trang:256/261 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 Ngoà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: Kiểu trỏ Hằng Mô tả 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 toà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 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 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 FPT Software Solution Trang:257/261 Giáo trình đào tạo Visual Basic 6.0 adApproxPosition Thuộc tính AbsolutePage AbsolutePosition có sẵn; chúng 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 adBookmark Có thể quy định đánh dấu trang sách Recordset adDelete Bản ghi xoá Recordset adHoldRecords Bản ghi trả từ sở liệu mà không cần ghi sửa đổi có vào server adMovePrevious Có thể cuộn tới lui Recordset adResync Phương thức có sẵn adUpdate Recordset cập nhật adUpdateBatch 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 18.1.6 Khoá 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 khoá ghi Hằng Mô tả 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 khoá ghi hay không 18.1.7 Sử dụng đối tượng Recordset ADO để thao tác với 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:258/261 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 ghi 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:259/261 Giáo trình đào tạo Visual Basic 6.0 18.2 Sử dụng dịch vụ liệu từ xa 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:260/261 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:261/261
- Xem thêm -

Xem thêm: Giáo trình đào tạo Visual Basic 6.0, Giáo trình đào tạo Visual Basic 6.0, Giáo trình đào tạo Visual Basic 6.0

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập