Bài tập Lập trình hướng sự kiện

Bài tập 1:Phân tích và thiết kếphần mềm tra cứu & nhập sách trong thưviện Bài tập 2:Phân tích và thiết kếphần mềm quản lý lịch làm việc cá nhân Bài tập 3:Phân tích và thiết kếphần mềm tra cứu từ điển tin học Bài tập 4:Phân tích và thiết kếphần mềm quản lý điểm thi của một lớp Bài tập 5:Phân tích và thiết kếphần mềm quản lý hàng hoá cho một cửa hàng. Bài tập 6:Phân tich, thiết kếvà xây dựng một Website giới thiệu hàng hoá. Bài tập 7:Phân tích, thiết kếvà xây dựng một Website đặt hàng (Sản phẩm có thể là quần áo, giầy dép, điện thoại .)qua mạng. Bài tập 8: Phân tích, thiết kế ứng dụng thi trắc nghiệm trên WEB Bài tập 9:Phân tích, thiết kếphần mềm dạy học trên VB Bài tập 10:Phân tích, thiết kếphần mềm chơi cờCARO.

pdf173 trang | Chia sẻ: aloso | Lượt xem: 2667 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài tập Lập trình hướng sự kiện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
---------------------------------------------------------------------- '/// Nạp các sản phẩm vào nút nhà cung cấp. Nút này có mà là MaNCC '/// Vì trường Key của mỗi nút chứa xâu "M1" & SupplierID, do vậy khi Select cần phải bỏ '/// xâu "M1" đi bằng cách viết Mid(MaNCC,3). '/// Cũng giống như trường SupplierID, trường ProductID cũng là trường số, do vậy cần '/// phải thêm một xâu, ví dụ "M2" vào thuộc tính Key. '----------------------------------------------------------------------------------------------------------------------- Sub NapSanPhamVaoNCC(MaNCC As String) Dim MaSP As String, TenSP As String adoSanPham.ConnectionString = strConn adoSanPham.CommandType = adCmdText adoSanPham.RecordSource = "Select * from Products where SupplierID=" & Mid(MaNCC,3) adoSanPham.Refresh Do While adoSanPham.Recordset.EOF = False MaSP = adoSanPham.Recordset!ProductID TenSP = adoSanPham.Recordset!ProductName tvwNhaCC.Nodes.Add MaNCC, tvwChild, "M2" & MaSP, TenSP adoSanPham.Recordset.MoveNext Loop adoSanPham.Recordset.Close End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Khởi tạo Listview: Tạo ra 3 cột là OrderID, UnitPrice và Quantity Sub KhoiTaoListView() lvwCTDonHang.ColumnHeaders.Add , , "Mã đơn hàng" lvwCTDonHang.ColumnHeaders.Add , , "Giá ($)" lvwCTDonHang.ColumnHeaders.Add , , "Số lượng" lvwCTDonHang.View = lvwReport BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 150 lvwCTDonHang.GridLines = True End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Hiển thị tất cả các hoá đơn có xuất hiện mặt hàng vừa được click chọn '/// Vì nút đang được chọn có MaSP = "M2" & ProductID, do vậy để lấy ra mã sản phẩm '/// thực sự cho câu lệnh truy vấn thì cần phải bỏ xâu "M2", tức là viết : Mid(MaSP,3) '/// Trong câu lệnh SELECT ta đã thêm một trường mới và đặt tên là GiaTri. '----------------------------------------------------------------------------------------------------------------------------------- Sub CTDonHang(MaSP As String) Dim MucMoi As ListItem, strSQL As String strSQL = "Select OrderID, UnitPrice, Quantity, (UnitPrice * Quantity) As [GiaTri] " strSQL = strSQL & FROM [Order details] " strSQL = strSQL & "Where ProductID = " & Mid(MaSP, 3) adoCTDonHang.ConnectionString = strConn adoCTDonHang.CommandType = adCmdText adoCTDonHang.RecordSource = strSQL adoCTDonHang.Refresh lvwCTDonHang.ListItems.Clear Do While adoCTDonHang.Recordset.EOF = False Set MucMoi = lvwCTDonHang.ListItems.Add(, , adoCTDonHang.Recordset!OrderID) MucMoi.SubItems(1) = adoCTDonHang.Recordset!UnitPrice MucMoi.SubItems(2) = adoCTDonHang.Recordset!Quantity MucMoi.SubItems(3) = adoCTDonHang.Recordset!GiaTri adoCTDonHang.Recordset.MoveNext Loop adoCTDonHang.Recordset.Close End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Khi người dùng click một nút thì cần trích 2 ký tự đầu để biết là người dùng click vào '/// nút gốc (M0), tên nhà cung cấp (M1) hay sản phẩm (M2) để có xử lý phù hợp. '/// Thuộc tính Node sẽ cho biết thông tin (trỏ đến) nút được chọn. '----------------------------------------------------------------------------------------------------------------------------------- Private Sub tvwNhaCC_NodeClick(ByVal Node As MSComctlLib.Node) Select Case Left(Node.Key, 2) '/// Lấy 2 ký tự đầu Case "M0" '/// Click vào nút gốc Case "M1" '/// Click vào Nhà cung cấp Case "M2" '/// Click vào sản phẩm lblCTDonHang.Caption="C¸c ®¬n hµng cã SP " &tvwNhaCC.SelectedItem.Parent.Text CTDonHang Node.Key End Select End Sub d. Ghi chú: • Có thể thay đổi tên trường trong kết quả như sau: Select OrderID As MaDonHang, UnitPrice AS DonGia v.v... • Hoặc bổ sung thêm giá trị vào trường trong kết quả, ví dụ: Select OrderID , (UnitPrice & ' $') As DonGia BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 151 Bài 12: Thực hiện yêu cầu như bài tập 5 nhưng chỉ sử dụng đối tượng Connection và đối tượng Recordset để thao tác với CSDL. a. Thiết kế giao diện Hình 5.36 – Tên các điều khiển trên Form b. Hướng dẫn: Sử dụng đối tượng Connection và phương thức Execute của đối tượng này. Trước khi khai báo biến Connection cần phải tham chiếu đến thư viện Microsoft ActiveX Data Control 2.x. Cú pháp gọi phương thức Execute như sau: • Set RS = Cn.Execute ("Câu lệnh SQL") --> Nếu muốn lấy kết quả trả về (Cách này thường áp dụng khi câu lệnh SQL là một câu lệnh SELECT. Kết quả trả về sẽ là một tập các bản ghi (tương đương với một bảng), do vậy có thể gán kết quả này để hiển thị trong một DataGrid control. • Cn.Execute "Câu lệnh SQL" --> Nếu chỉ muốn thực thi một câu lệnh SQL mà không cần lấy kết quả trả về (Ví dụ câu lệnh Delete, Insert, Update). c. Chương trình mẫu Option Explicit Dim Cn As New ADODB.Connection '----------------------------------------------------------------------------------------------------------------------------------- Private Sub Form_Load() Dim strConn As String On Error GoTo Err strConn = "Provider=Microsoft.jet.oledb.4.0;" strConn = strConn & "Data source= " & App.Path & "\Nwind.mdb" Cn.ConnectionString = strConn Cn.CursorLocation = adUseClient Cn.Open cboDSBang.AddItem "Customers" cboDSBang.AddItem "Products" cboDSBang.AddItem "Employees" cboDSBang.AddItem "Categories" cboDSBang.AddItem "Suppliers" cboDSBang.AddItem "Orders" cboDSBang.AddItem "Order details" '/// Bảng này chứa dấu cách cboDSBang.AddItem "Shippers" Exit Sub Err: BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 152 MsgBox "Không thể mở được CSDL ! " & Err.Description, vbCritical End Sub '----------------------------------------------------------------------------------------------------------------------------------- Private Sub cmdXem_Click() Dim RS As ADODB.Recordset Set RS = Cn.Execute("SELECT * FROM " &cboDSBang.Text ) Set dgrHienThi.DataSource = RS '/// Gắn kết quả vào Grid để hiển thị End Sub d. Ghi chú: • Trong một ứng dụng (Cho dù có một hay nhiều form) nếu không có gì đặc biệt thì chỉ cần một đối tượng Connection để thao tác với CSDL. • Phương thức Execute cho phép ta thực hiện bất kỳ một câu lệnh SQL nào được trình điều khiển CSDL hỗ trợ, nhưng chắc chắn là có lệnh SELECT, INSERT, UPDATE, DELETE. Từng này lệnh cũng là quá đủ đối với chúng ta. • Phương thức Execute khi thực hiện SELECT thì chỉ trả về dữ liệu là bản sao của bảng gốc nên sửa đổi kết quả này không tác động đến bảng gốc. • Để biết kết nối đến Cơ sở dữ liệu có thành công hay không, chỉ cần kiểm tra xem thuộc tính State có bằng 1 hay không ? nếu bằng tức là kết nối thành công !. • Phương thức Open chỉ được gọi khi hiện tại biến đối tượng Connection chưa mở đến CSDL nào, nếu không sẽ bị báo lỗi !. Thường được gọi trong Form_Load. Bài tập 13: Làm lại bài 10 với sử dụng đối tượng Connection và Recordset a. Thiết kế giao diện : Như bài tập 10 Hình 5.37 – Tên các điều khiển trên Form b. Hướng dẫn: Sử dụng phương thức Execute của đối tượng Connection c. Chương trình mẫu: Option Explicit Dim Cn As New ADODB.Connection '/// Khai báo biến đối tượng Connection '----------------------------------------------------------------------------------------------------------------------------------- '//// Nạp Mã nhà cung cấp và các sản phẩm của nhà cung cấp đó khi form khởi động Private Sub Form_Load() On Error GoTo Err Dim strConn As String strConn = "Provider=Microsoft.jet.oledb.4.0;" strConn = strConn & "Data source= " & App.Path & "\Nwind.mdb" BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 153 Cn.ConnectionString = strConn Cn.CursorLocation = adUseClient Cn.Open Call NapMaNhaCC Call KhoiTaoListView Exit Sub Err: MsgBox "Khô thể kết nối đến CSDL ! " & Err.Description End Sub '------------------------------------------------------------------------------------------------------------------------ '/// Nạp mã nhà cung cấp vào cây. Khi nạp một NCC thì nạp các sản phẩm ngay vào nút đó Sub NapMaNhaCC() Dim Key As String, Rs As ADODB.Recordset Set Rs = Cn.Execute("SELECT SupplierID, CompanyName FROM Suppliers") tvwNhaCC.Nodes.Clear tvwNhaCC.LabelEdit = tvwManual tvwNhaCC.Nodes.Add , , "M0NUT_GOC", "Tên các nhà cung cấp" Do While Rs.EOF = False tvwNhaCC.Nodes.Add "M0NUT_GOC", tvwChild, Key, Rs!CompanyName Key = "M1" & Rs!SupplierID NapSanPhamVaoNCC Key Rs.MoveNext Loop Rs.Close tvwNhaCC.Nodes("M0NUT_GOC").Expanded = True End Sub '----------------------------------------------------------------------------------------------------------------------- '/// Nạp các sản phẩm vào nút nhà cung cấp. Nút này có mà là MaNCC '/// Vì trường Key của mỗi nút chứa xâu "M1" & SupplierID, do vậy khi Select cần phải bỏ '/// xâu "M1" đi bằng cách viết Mid(MaNCC,3). '/// Cũng giống như trường SupplierID, trường ProductID cũng là trường số, do vậy cần '/// phải thêm một xâu, ví dụ "M2" vào thuộc tính Key. '----------------------------------------------------------------------------------------------------------------------- Sub NapSanPhamVaoNCC(MaNCC As String) Dim MaSP As String, TenSP As String, Rs As ADODB.Recordset Set Rs = Cn.Execute("Select * from Products where SupplierID=" & Mid(MaNCC, 3)) Do While Rs.EOF = False MaSP = Rs!ProductID TenSP = Rs!ProductName tvwNhaCC.Nodes.Add MaNCC, tvwChild, "M2" & MaSP, TenSP Rs.MoveNext Loop Rs.Close End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Khởi tạo Listview: Tạo ra 3 cột là OrderID, UnitPrice và Quantity Sub KhoiTaoListView() lvwCTDonHang.ColumnHeaders.Add , , "Mã đơn hàng" BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 154 lvwCTDonHang.ColumnHeaders.Add , , "Giá ($)" lvwCTDonHang.ColumnHeaders.Add , , "Số lượng" lvwCTDonHang.View = lvwReport lvwCTDonHang.GridLines = True End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Hiển thị tất cả các hoá đơn có xuất hiện mặt hàng vừa được click chọn '/// Vì nút đang được chọn có MaSP = "M2" & ProductID, do vậy để lấy ra mã sản phẩm '/// thực sự cho câu lệnh truy vấn thì cần phải bỏ xâu "M2", tức là viết : Mid(MaSP,3) '----------------------------------------------------------------------------------------------------------------------------------- Sub CTDonHang(MaSP As String) Dim BanGhi As ListItem, Rs As ADODB.Recordset Set Rs = Cn.Execute("Select * FROM [Order details] where ProductID=" & Mid(MaSP, 3)) lvwCTDonHang.ListItems.Clear Do While Rs.EOF = False Set BanGhi = lvwCTDonHang.ListItems.Add(, , Rs!OrderID) BanGhi.SubItems(1) = Rs!UnitPrice & " $" BanGhi.SubItems(2) = Rs.Fields("Quantity") '/// Cach viet khac Rs.MoveNext Loop Rs.Close End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Khi người dùng click một nút thì cần trích 2 ký tự đầu để biết là người dùng click vào '/// nút gốc (M0), tên nhà cung cấp (M1) hay sản phẩm (M2) để có xử lý phù hợp. '/// Thuộc tính Node sẽ cho biết thông tin (trỏ đến) nút được chọn. '----------------------------------------------------------------------------------------------------------------------------------- Private Sub tvwNhaCC_NodeClick(ByVal Node As MSComctlLib.Node) Select Case Left(Node.Key, 2) Case "M0" '/// Click vào nút gốc Case "M1" '/// Click vào Nhà cung cấp Case "M2" '/// Clic vào sản phẩm CTDonHang Node.Key End Select End Sub Bài tập 14: Thao tác CSDL trên nhiều Form a. Thiết kế giao diện Hình 5.38 – Tên các điều khiển trên form : frmMain BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 155 Hình 5.39 – Tên các điều khiển trên form : frmNhapNCC Hình 5.41 – Tên các điều khiển trong form : frmNhapSP b. Hướng dẫn: • Sử dụng một đối tượng Connection duy nhất cho tất cả các form • Thực hiện kết nối đến CSDL trong Module dùng chung. • Yêu cầu ứng dụng chạy thủ tục Sub Main thay vì nạp form mặc định. c. Chương trình mẫu Trước hết cần tham chiếu đến thư viện Microsoft ActiveX Data Object 2.1 và thư viện Microsoft Window Common Controls 6.0 (SP4). Tạo một Module mới (Vào Project --> Add Module), đặt tên là modKetNoi và viết lệnh sau: modKetnoi.bas Option Explicit Public Cn As New ADODB.Connection '/// Khai báo biến toàn cục Connection : Cn Public TrangThaiKetNoi As Boolean '/// Dùng để lưu tình trạng kết nối BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 156 Public strConn As String '/// Xâu chứa thông tin kết nối đến CSDL '----------------------------------------------------------------------------------------------------------------------------------- '/// Muốn thủ tục này chạy đầu tiên, vào Menu Project -> Properties-> Startup Object ->Sub main Sub Main() On Error GoTo Err strConn = "Provider=Microsoft.jet.oledb.4.0;" strConn = strConn & "Data source= " & App.Path & "\Nwind.mdb" Cn.ConnectionString = strConn Cn.CursorLocation = adUseClient Cn.Open TrangThaiKetNoi = (Cn.State = 1) '/// Đây là cách viết ngắn gọn frmMain.Show '/// Hiển thị form : frmMain Exit Sub Err: MsgBox "Không thể mở được CSDL ! " & Err.Description, vbCritical End End Sub frmMain.frm Option Explicit '/// Nạp mã và tên vào cây (Mã gán cho thuộc tính Key, Tên gán cho thuộc tính Text) Sub NapNhaCC() Dim RS As ADODB.Recordset, Key As String Set RS = Cn.Execute("SELECT * FROM Suppliers") tvwNhaCC.Nodes.Add , , "NUT_GOC", "Danh sách các nhà cung cấp" Do While RS.EOF = False Key = "M1" & RS!Supplierid '/// Thêm một xâu vì Key không được là số tvwNhaCC.Nodes.Add "NUT_GOC", tvwChild, Key, RS!CompanyName RS.MoveNext Loop tvwNhaCC.Nodes("NUT_GOC").Expanded = True End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Tạo các cột cho Listview Sub KhoiTaoListView() lvwSanPham.ColumnHeaders.Add , , "Tên sản phẩm" lvwSanPham.ColumnHeaders.Add , , "Mã loại" lvwSanPham.ColumnHeaders.Add , , "Đơn giá" lvwSanPham.View = lvwReport End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Khi form được nạp cần kiểm tra xem trước đó đã kết nối được đến CSDL chưa ? Private Sub Form_Load() If TrangThaiKetNoi = False Then Exit Sub Call KhoiTaoListView Call NapNhaCC End Sub BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 157 '----------------------------------------------------------------------------------------------------------------------------------- '/// Mỗi khi người dùng click vào 1 nút (Tên nhà cung cấp) thì nạp thông tin sản phẩm vào Listview Private Sub tvwNhaCC_NodeClick(ByVal Node As MSComctlLib.Node) If Node.Key = "NUT_GOC" Then Exit Sub '/// Nếu click vào nút gốc thì thoát Dim RS As ADODB.Recordset, MucMoi As ListItem Set RS=Cn.Execute("SELECT * FROM Products WHERE SupplierID=" & Mid(Node.Key, 3)) lvwSanPham.ListItems.Clear Do While RS.EOF = False Set MucMoi = lvwSanPham.ListItems.Add(, , RS!ProductName) MucMoi.SubItems(1) = RS!CategoryID MucMoi.SubItems(2) = RS!UnitPrice RS.MoveNext Loop RS.Close End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Hiển thị frmNhapNCC Private Sub cmdNhapNCC_Click() frmNhapNCC.Show End Sub '----------------------------------------------------------------------------------------------------------------------------------- '///Hiển thị frmNhapSP Private Sub cmdNhapSP_Click() frmNhapSP.Show End Sub frmNhapSP.frm Option Explicit '/// Nạp Mã nhà cung cấp vào một Hộp Combo Sub NapMaNCC() Dim RS As ADODB.Recordset Set RS = Cn.Execute("SELECT SupplierID FROM Suppliers") Do While RS.EOF = False cboSupplierID.AddItem RS!Supplierid RS.MoveNext Loop RS.Close Set RS = Nothing End Sub '----------------------------------------------------------------------------------------------------------------------------------- '/// Nạp mã chủng loại vào một hộp Combo Sub NapMaChungLoai() Dim RS As ADODB.Recordset Set RS = Cn.Execute("SELECT CategoryID FROM Categories") Do While RS.EOF = False cboCategoryID.AddItem RS!CategoryID RS.MoveNext Loop RS.Close Set RS = Nothing End Sub BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 158 '----------------------------------------------------------------------------------------------------------------------------------- '/// Xoá trắng nội dung trong các Textbox Sub XoaFormNhap() Dim Obj As Object For Each Obj In Controls If (TypeOf Obj Is TextBox) Then Obj.Text = "" Next End Sub '----------------------------------------------------------------------------------------------------------------------- '/// Khi thực hiện thêm bản ghi vào Bảng cần đặt biệt lưu ý: Nếu một trường kiểu '/// Text thì dữ liệu thêm vào phải được kèm thêm 2 dấu nháy đơn ở hai đầu. '/// Còn đối với trường kiểu số thì không cần ! '----------------------------------------------------------------------------------------------------------------------- Private Sub cmdThem_Click() On Error GoTo Err Dim strSQL As String, RS As ADODB.Recordset strSQL="INSERT INTO Products (SupplierID, ProductName, CategoryID, UnitPrice)" strSQL = strSQL & "Values (" strSQL = strSQL & cboSupplierID.Text & "," strSQL = strSQL & "'" & txtProductName.Text & "'," strSQL = strSQL & cboCategoryID.Text & "," strSQL = strSQL & txtUnitPrice.Text strSQL = strSQL & ")" Cn.Execute strSQL '/// Thực thi câu lệnh SQL Set RS = Cn.Execute("SELECT * FROM Products") Set dgrSanPham.DataSource = RS Call XoaFormNhap Exit Sub Err: MsgBox "Không thể thêm bản ghi ! " & Err.Description, vbCritical, "Lỗi" End Sub '----------------------------------------------------------------------------------------------------------------------------------- Private Sub Form_Load() If TrangThaiKetNoi = False Then Exit Sub txtProductID.Text = "Mã SP được tăng tự động (vì là trường Autonumber)" txtProductID.Locked = True '/// Không cho sửa đổi. Call NapMaNCC Call NapMaChungLoai End Sub d. Ghi chú: • Nên sử dụng một biến Connection cho tất cả các form. • Biến này nên được đặt trong Module (tất nhiên là Public) • Nên có kiểm tra tình trạng kết nối trước khi thực hiện thao tác với CSDL. • Khi thực hiện chèn dữ liệu vào bảng thì cần phải sử dụng cơ chế bắt lỗi vì lỗi rất hay xảy ra. BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 159 Bài 15: Thiết kế báo cáo và kết xuất ra máy in danh sách các sản phẩm (ver 1) Chuẩn bị: • Tạo một ứng dụng mới • Tạo một Data Report : Vào Project -> Data Report • Vào Menu Project -> Add Data Enviroment, nếu không có mục này thì vào Project -> Components và chọn mục sau: a. Thiết kế giao diện Hình 5.42 – Đặt tên cho Data Enviroment và các thành phần trong đó Hình 5.43 - Thiết kế báo cáo BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 160 › Hướng dẫn chi tiết c. Viết lệnh cho Report ở hình 43: Lưu ý là trong cửa sổ Properties, cần đặt thuộc tính cho đối tượng Connection. Option Explicit Private Sub DataReport_Initialize() Dim strConn As String strConn = "Provider=Microsoft.jet.oledb.4.0;" strConn = strConn & "Data source= " & App.Path & "\Nwind.mdb" DE.cnnMain.ConnectionString = strConn DE.cnnMain.CursorLocation = adUseClient DE.cnnMain.Open End Sub d. Ghi chú: • Có thể tạo ra các báo cáo con bằng cách tạo ra các Sub Header, Subfooter và chọn thuộc tính Grouping khi tạo ra các Command. • Thực tế, khi tạo các báo cáo, người ta thường sử dụng các điều khiển chuyên nghiệp từ các hãng thứ ba như Dynamic Report, Crystal Report v.v... Bài 16 : Giống như bài 15 nhưng thêm các đường kẻ. Hình 5.44 - Tạo đường viền (khung) cho báo cáo bằng đường kẻ (Line) BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 161 C- BÀI TẬP TỰ GIẢI Bài 1. Viết chương trình nhập dữ liệu cho tất cả các bảng trong CSDL NWind. Trong quá trình nhập cần hiển thị kết quả (nội dung của bảng). Bài 2. Viết chương trình nạp tất cả các bản ghi trong bảng Customers vào một điều khiển MS FlexGrid. Bài 3. Viết chương trình tra cứu các hàm, thủ tục trong VB. Bài 4. Viết chương trình định dạng các từ khoá của VB trong tài liệu MS Word, các từ khoá được định dạng thành chữ đậm. Bài 5. Viết chương trình quản lý lý lịch của SV trong một lớp. Bài tập 6 - Bải tập lớn : Xây dựng một ứng dụng E-MAILđơn giản. Trong bài tập lớn này, bạn đọc có thể sử dụng hệ quản trị CSDL Access hoặc SQL Server đều được (vì nếu chỉ dùng để lưu trữ dữ liệu thì không có sự khác nhau nhiều). Tuy nhiên, SQL Server thường được dùng nhiều hơn trong các ứng dụng đòi hỏi tốc độ xử lý nhanh, khả năng quản lý dữ liệu lớn. Việc sử dụng SQL để tạo CSDL cũng như cách kết nối với CSDL SQL Server dành cho bạn đọc tự tham khảo thêm (vì tài liệu có rất nhiều và cũng tương đối đơn giản). BÀI TẬP LỚN m« pháng ch−¬ng tr×nh qu¶n lý th− ®iÖn tö, sö dông hÖ qu¶n trÞ csdl sqlserver 2000 vµ ng«n ng÷ lËp tr×nh visual basic Giíi thiÖu chung Nh− chóng ta ®· biÕt, thùc tÕ trong qu¸ tr×nh göi th− ®iÖn tö th× th«ng tin göi ®i th−êng bao gåm : Tiªu ®Ò th−, ®Þa chØ ng−êi nhËn, néi dung th−, file göi kÌm, ngµy göi (do hÖ thèng tù sinh ra) vµ c¸c th«ng tin nµy ®−îc l−u tr÷ trªn m¸y chñ theo mét giao thøc chuÈn (Giao thøc SMTP vµ POP3). Cßn khi nhËn th− chÝnh lµ qu¸ tr×nh chóng ta lÊy c¸c th«ng tin ë trªn vÒ tõ m¸y chñ. Nh− vËy, nÕu chóng ta sö dông SQLServer ®Ó l−u tr÷ vµ qu¶n lý th«ng tin ®ång thêi kÕt hîp dïng Visual basic ®Ó göi (Insert vµo b¶ng CSDL) vµ nhËn (Select b¶n ghi trong b¶ng) sau ®ã hiÓn thÞ cho ng−êi dïng th× hoµn toµn cã thÓ m« pháng ®−îc hÖ thèng th− ®iÖn tö nµy trong khi ng−êi dïng th× kh«ng thÓ nhËn biÕt ®−îc lµ hÖ thèng cña chóng ta chØ lµ m« pháng (tøc lµ hÖ thèng trong suèt ®èi víi ng−êi dïng). H−íng dÉn ph©n tÝch vÒ d÷ liÖu V× ë ®©y, do thêi gian ng¾n vµ môc ®Ých chÝnh lµ ®Ó sinh viªn thao t¸c thµnh thôc c¸c c©u lÖnh, v× vËy nªn sù ®Çy ®ñ vµ tèi −u c¸c b¶ng d÷ liÖu kh«ng ph¶i lµ yÕu tè quan träng hµng ®Çu. Chóng ta thÊy r»ng, hÖ thèng cã c¸c thùc thÓ sau : Ng−êi (NhËn/göi) (Hä_tªn, ®Þa_chØ, giíi_tÝnh) Th− ®iÖn tö (Tiªu_®Ò, Ng−êi_göi, Ng−êi_nhËn, ngµy_göi, ngµy_nhËn, t×nh_tr¹ng (xo¸ hay ch−a), néi_dung_th−, Tªn file ®Ýnh kÌm, kÝch th−íc file ®Ýnh kÌm, ®−êng dÉn file ®Ýnh kÌm trªn ®Üa) -Do mçi ng−êi cã thÓ göi nhiÒu E-Mail nªn mèi quan hÖ Ng−êi-Th− ®iÖn tö lµ 1 – NhiÒu (Hay 1 – n) BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 162 Nh− vËy viÕt l¹i lμ : Ng−êi (NhËn/göi) (MaNguoiDung, Hä_tªn, ®Þa_chØ, giíi_tÝnh) Th− ®iÖn tö (MaNguoiGui,Tiªu_®Ò, Ng−êi_nhËn, ngµy_göi, ngµy_nhËn, t×nh_tr¹ng (xo¸ hay ch−a), néi_dung_th−, Tªn file ®Ýnh kÌm, kÝch th−íc file ®Ýnh kÌm, ®−êng dÉn file ®Ýnh kÌm trªn ®Üa) Trong ®ã MaNguoiDung trong thùc thÓ Th− §iÖn tö lµ kho¸ ngo¹i. - Do øng víi mçi E-Mail l¹i cã thÓ cã nhiÒu file ®Ýnh kÌm, nªn ta t¸ch ra thùc thÓ File tõ Th− ®iÖn tö, quan hÖ Th− ®iÖn tö - File khi ®ã sÏ lµ 1-n Ta ®−îc 3 thùc thÓ : Ng−êi (NhËn/göi) (MaNguoiDung*, Hä_tªn, ®Þa_chØ, giíi_tÝnh) Th− ®iÖn tö (MaNguoiGui, M·_E-Mail*, Tiªu_®Ò, Ng−êi_nhËn, ngµy_göi, ngµy_nhËn, néi_dung_th−) File (M·_E-Mail, M·_file*, Tªn_file_®Ýnh_kÌm, kÝch_th−íc_file_®Ýnh_kÌm, ®−êng_dÉn_file_®Ýnh_kÌm_trªn_®Üa) - Do mçi mét E-Mail l¹i cã thÓ göi cho nhiÒu ng−êi, do vËy thùc thÓ Th−_§iÖn_Tö l¹i t¸ch ra mét thùc thÓ con lµ Danh s¸ch Ng−êi NhËn Ng−êi (NhËn/göi) (MaNguoiDung*, Hä_tªn, ®Þa_chØ, giíi_tÝnh) Th− ®iÖn tö (MaNguoiDung, M·_E-Mail*, Tiªu_®Ò, ngµy_göi, ngµy_nhËn, néi_dung_th−) File (M·_E-Mail, M·_file*, Tªn_file_®Ýnh_kÌm, kÝch_th−íc_file_®Ýnh_kÌm, ®−êng_dÉn_file_®Ýnh_kÌm_trªn_®Üa) Danh s¸ch Ng−êi nhËn (MaNguoiNhan*, Ma_E-Mail, Tinh_Trang) Tªn c¸c b¶ng trªn ®−îc viÕt t−¬ng øng b»ng tiÕng Anh lµ : tblUserDetail, tblEMails, tblFiles, tblReceivers. BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 1 C ¸ c b ¶ n g d ÷ l i Ö u BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 1 S¥ §å LI£N KÕT GI÷A C¸C B¶NG D÷ LIÖU BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 2 mét sè d÷ liÖu mÉu cho c¸c b¶ng tblUserDetail Table tblEMailes Table BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 3 tblFiles table tblReceivers Table BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 1 c¸c y£U CÇU chÝnh ViÕt mét ch−¬ng tr×nh b»ng Visual Basic thùc hiÖn c¸c c«ng viÖc sau : 1./ T¹o c¬ së d÷ liÖu trªn SQL Server cã tªn lµ TK32 2./ Form nhËp d÷ liÖu cho b¶ng tblUserDetail 3./ LÊy th− vÒ vµ hiÓn thÞ néi dung cña th− cho mét ng−êi nµo ®ã 4./ Göi mét th− ®i cho mét (hoÆc nhiÒu ng−êi) 5./ Xo¸ th− 6./ Chän c¸c th− tho¶ m·n ®iÒu kiÖn nµo ®ã (vÝ dô ®−îc göi tõ congnx, hay n¨m göi lµ n¨m 2004 v.v...) 7./ Cho biÕt lµ nh÷ng th− nµo ch−a ®−îc ®äc, nh÷ng th− nµo ®· cã ng−êi ®äc 8./ Xo¸ vµ kh«i phôc l¹i nh÷ng th− ®· bÞ xo¸ 9./ Thèng kª th«ng tin vÒ nh÷ng e-mail ®· göi ®i cña mét ng−êi nh−: Sè l−îng e-mail, sè file attach, tæng kÝch th−íc cña tÊt c¶ c¸c file attach. 10./ Thèng kÕ sè l−îng e-mail ®−îc göi ®i tõ c¸c ®¬n vÞ 11./ Thay ®æi Password, quyÒn... ®¨ng nhËp 12./ T¹o Account míi th«ng qua ch−¬ng tr×nh. Bài tập 1: Phân tích và thiết kế phần mềm tra cứu & nhập sách trong thư viện Bài tập 2: Phân tích và thiết kế phần mềm quản lý lịch làm việc cá nhân Bài tập 3: Phân tích và thiết kế phần mềm tra cứu từ điển tin học Bài tập 4: Phân tích và thiết kế phần mềm quản lý điểm thi của một lớp Bài tập 5: Phân tích và thiết kế phần mềm quản lý hàng hoá cho một cửa hàng. Bài tập 6: Phân tich, thiết kế và xây dựng một Website giới thiệu hàng hoá. Bài tập 7: Phân tích, thiết kế và xây dựng một Website đặt hàng (Sản phẩm có thể là quần áo, giầy dép, điện thoại….)qua mạng. Bài tập 8: Phân tích, thiết kế ứng dụng thi trắc nghiệm trên WEB Bài tập 9: Phân tích, thiết kế phần mềm dạy học trên VB Bài tập 10: Phân tích, thiết kế phần mềm chơi cờ CARO. BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 2 MỤC LỤC CHƯƠNG I: NGÔN NGỮ LẬP TRÌNH VISUAL BASIC A. ĐỀ BÀI TẬP Bài tập 1: Sử dụng hàm MsgBox và InputBox ..................................................1 Bài tập 2: Minh hoạ cấu trúc If … Then. ...........................................................1 Bài tập 3-Select Case: ......................................................................................1 Bài tập 4: Hiển thị các loại thông báo sử dụng hàm MsgBox. ..........................1 Bài tập 5: Sử dụng cấu trúc Select Case..........................................................1 Bài tập 6: Sử dụng vòng lặp FOR.....................................................................2 Bài tập 7: Sử dụng vòng lặp For với điều khoản Step ......................................2 Bài tập 8: Sử dụng vòng lặp For đếm ngược “FOR … DOWNTO…”. ..............2 Bài tập 9: Sử dụng vòng lặp Do…Loop Until ....................................................2 Bài tập 10: Sử dụng cấu trúc Do While … Loop ...............................................2 Bài tập 11: Thoát khỏi vòng lặp với Exit For, Exit Do........................................2 Bài tập 12: Sự tương đương giữa các cấu trúc lặp. .........................................2 Bài tập 13: Sử dụng vòng lặp FOR...................................................................2 Bài tập 14 – Tính N !:........................................................................................2 Bài tập 15- Tính tổng 1 dãy số:.........................................................................2 Bài tập 16- Tính dãy Fibonasi...........................................................................2 Bài tập 17- Tìm Ứơc số chung lớn nhất : .........................................................2 Bài tập 18-Tối giản phân số :............................................................................2 Bài tập 19- Tìm số nguyên tố:...........................................................................3 Bài tập 20-Đếm ký tự:.......................................................................................3 Bài tập 21-Tính tổng dãy số:.............................................................................3 Bài tập 22 : Bài toán tìm phần tử lớn nhất (nhỏ nhất) trong một danh sách .....3 Bài tập 23: Liệt kê các phần tử lớn nhất (nhỏ nhất) trong danh sách. .............3 Bài tập 24: Sắp xếp một dãy số nguyên. ..........................................................3 Bài tập 25 – Quick Sort.....................................................................................3 Bài tập 26- Heap Sort: ......................................................................................3 Bài tập 27: Sắp xếp ..........................................................................................3 Bài tập 28-Chuẩn hoá xâu: ...............................................................................3 Bài tập 29-Chuẩn hoá xâu ................................................................................3 Bài tập 30-Tách số khỏi xâu: ............................................................................3 Bài tập 31-Tách Câu:........................................................................................4 Bài tập 32-Chuyển đổi Font chữ .......................................................................4 Bài tập 33-Thống kê ký tự trong xâu.................................................................4 Bài tập 34-Thay thế ký tự .................................................................................4 Bài tập 35-Cộng số nguyên lớn: .......................................................................4 Bài tập 36-Ma trận số: ......................................................................................4 Bài tập 37- Kiểm tra "đường thẳng" trong ma trận:...........................................4 Bài tập 38- Mảng bản ghi:.................................................................................4 BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 3 B. HƯỚNG DẪN, GIẢI MẪU Bài tập 1 ...........................................................................................................5 Bài tập 2 ...........................................................................................................6 Bài tập 3 ...........................................................................................................6 Bài tập 5 ...........................................................................................................7 Bài tập 6 ...........................................................................................................8 Bài tập 7 ...........................................................................................................9 Bài tập 8 ...........................................................................................................9 Bài tập 9 ...........................................................................................................9 Bài tập 10 .......................................................................................................10 Bài tập 11 .......................................................................................................11 Bài tập 12 .......................................................................................................11 Bài tập 13 .......................................................................................................13 Bài tập 14: ......................................................................................................14 Bài tập 15: ......................................................................................................15 Bài tập 16 .......................................................................................................15 Bài tập 17: ......................................................................................................16 Bài tập 18: ......................................................................................................17 Bài tập 19: ......................................................................................................17 Bài tập 20 .......................................................................................................18 Bài tập 21: ......................................................................................................19 Bài tập 22 .......................................................................................................19 Bài tập 23 .......................................................................................................20 Bài tập 24 .......................................................................................................20 Bài tập 25 .......................................................................................................21 Bài tập 26 .......................................................................................................23 Bài tập 27 .......................................................................................................24 Bài tập 28: ......................................................................................................25 Bài tập 29 .......................................................................................................26 Bài tập 30 .......................................................................................................27 Bài tập 31 .......................................................................................................28 Bài tập 32 .......................................................................................................28 Bài tập 33 .......................................................................................................29 Bài tập 34 .......................................................................................................30 Bài tập 35 .......................................................................................................30 Bài tập 36 .......................................................................................................31 Bài tập 37 .......................................................................................................32 Bài tập 37 .......................................................................................................33 C. BÀI TẬP TỰ GIẢI CHƯƠNG II: SỬ DỤNG CÁC ĐIỀU KHIỂN CƠ BẢN A. ĐỀ BÀI TẬP BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 4 Bài 1: Viết chương trình giải phương trình bậc 2............................................38 Bài 2: Một form nhập .....................................................................................38 Bài 3: Viết chương trình nhập họ tên sinh viên...............................................39 Bài 4: Viết chương trình như bài số 3,............................................................39 Bài 5: Minh hoạ sử dụng điều khiển Listbox và thuộc tính đa lựa chọn..........39 Bài 6: Minh hoạ sử dụng điều khiển Listbox và hàm tách xâu Split. ...............40 Bài 7: Tách địa chỉ E-Mail sử dụng hàm Split .................................................40 Bài 8: Sắp xếp danh sách theo TÊN...............................................................41 Bài 9: Minh hoạ sử dụng điều khiển ComboBox.............................................41 Bài 10: Minh hoạ thao tác với ComboBox và việc lấy tên font của hệ thống. .42 Bài 11: Minh hoạ sử dụng điều khiển Option button.......................................43 Bài 12 – Minh hoạ sử dụng nhãn....................................................................43 Bài 13 – Minh hoạ sử dụng Label kết hợp với Frame và Timer......................44 Bài 14 : Yêu cầu như bài 13 nhưng tốc độ .....................................................44 Bài 15 - Sử dụng Label, kết hợp với Line để giả lập nút nhấn........................44 Bài 16: Minh hoạ sử dụng điều khiển Timer tạo hiệu ứng chữ chạy. .............45 Bài 17: Sử dụng Timer, viết chương trình “đồng hồ báo thức”. ......................45 Bài 18: Sử dụng điều khiển Timer kết hợp với điều khiển Line vẽ đồng hồ Digital..............................................................................................................45 Bài 19: Sử dụng điều khiển Timer để ghi nhận các phím nhấn – KeyLogger .46 Bài 20: Minh hoạ sử dụng các điều khiển thao tác Tệp, Thư mục và Ổ đĩa. ..46 Bài 21: Minh hoạ khả năng kéo thả (Drag-Drop) file và thư mục....................47 Bài 22: Thao tác với điều khiển FileListbox và khả năng đa lựa chọn. ...........47 Bài 23: Sử dụng điều khiển Image làm ảnh nền cho form. .............................48 Bài 24:Sử dụng điều khiển PictureBox tạo Icon tại khay hệ thống (SystemTray) ..................................................................................................48 B. HƯỚNG DẪN, GIẢI MẪU Bài 1 ...............................................................................................................49 Bài 2: ..............................................................................................................50 Bài 3 ...............................................................................................................51 Bài 4 ...............................................................................................................52 Bài 5 ...............................................................................................................53 Bài 6 ...............................................................................................................54 Bài 7 ...............................................................................................................55 Bài 8. ..............................................................................................................56 Bài 9 ...............................................................................................................58 Bài 10 .............................................................................................................59 Bài 11 .............................................................................................................60 Bài 12 .............................................................................................................62 Bài 13 .............................................................................................................64 Bài 14 .............................................................................................................65 Bài 15 .............................................................................................................66 BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 5 Bài 16 .............................................................................................................67 Bài 17 .............................................................................................................67 Bài 18 .............................................................................................................69 Bài 19 .............................................................................................................70 Bài 20 .............................................................................................................71 Bài 21 .............................................................................................................73 Bài 22 .............................................................................................................74 Bài 23 .............................................................................................................76 Bài 24 .............................................................................................................77 C. BÀI TẬP TỰ GIẢI CHƯƠNG III: SỬ DỤNG HỘP THOẠI CHUẨN VÀ MENU A. ĐỀ BÀI TẬP Bài 1: Xây dựng chương trình soạn thảo văn bản sử dụng điều khiển RichText. ........................................................................................................80 Bài 2: Xây dựng chương trình như bài 1 nhưng có thêm menu "Màu chữ"....80 Bài 3: Xây dựng chương trình như bài 2, nhưng thêm khả năng hiển thị menu ngữ cảnh ........................................................................................................81 Bài 4: Xây dựng chương trình như bài 3 nhưng sử dụng cơ chế đa cửa sổ ..81 Bài 5: Xây dựng chương trình như bài 4, .......................................................81 Bài 6 : Như bài 5 nhưng chương trình có thêm thanh trạng thái ....................82 B. HƯỚNG DẪN, GIẢI MẪU Bài 1 ...............................................................................................................83 Bài 2 ...............................................................................................................85 Bài 3 ...............................................................................................................85 Bài 4 ...............................................................................................................86 Bài 5 ...............................................................................................................88 Bài 6 ...............................................................................................................92 C. BÀI TẬP TỰ GIẢI CHƯƠNG IV: SỬ DỤNG CÁC ĐIỀU KHIỂN NÂNG CAO A. ĐỀ BÀI TẬP Bài 1: Minh hoạ sử dụng điều khiển Carlendar (Lịch).....................................94 Bài 2: Minh hoạ sử dụng điều khiển truyền thông nối tiếp Comm Control ......95 Bài 3 : Minh hoạ điều khiển FlexGrid..............................................................95 Bài 4 : Minh hoạ sử dụng điều khiển Web brower và HTML Object Library. ..96 Bài 5: Minh hoạ sử dụng Internet Control .......................................................96 Bài 6. Sử dụng điều khiển Multimedia MCI để chơi các file nhạc và hình ......97 Bài 7: Sử dụng Script Control để tính toán biểu thức bất kỳ...........................97 Bài 8: Sử dụng điều khiển SSTab và viết chương trình cờ CARO đơn giản ..98 Bài 9: Sử dụng thanh tiến trình (Progressbar) ................................................98 Bài 10 :Sử dụng điều khiển Image Combobox ...............................................99 BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 6 Bài 11 : Sử dụng điều khiển Listview..............................................................99 Bài 12: Sử dụng điều khiển TreeView ..........................................................100 Bài 13: Sử dụng DateTimePicker để nhập trực quan ngày/tháng/năm. .......101 Bài 14: Sử dụng điều khiển Window Media Player .......................................101 B. HƯỚNG DẪN, GIẢI MẪU Bài 1 .............................................................................................................102 Bài 2 .............................................................................................................103 Bài 3 .............................................................................................................104 Bài 4 .............................................................................................................106 Bài 5 .............................................................................................................108 Bài 6 .............................................................................................................109 Bài 7 .............................................................................................................110 Bài 8 .............................................................................................................110 Bài 9 .............................................................................................................112 Bài 10 ...........................................................................................................114 Bài 11 ...........................................................................................................115 Bài 12 ...........................................................................................................117 Bài 13 ...........................................................................................................121 Bài 14 ...........................................................................................................121 C. BÀI TẬP TỰ GIẢI CHƯƠNG V: THAO TÁC VỚI CƠ SỞ DỮ LIỆU A. ĐỀ BÀI TẬP Bài 1: Viết chương trình xem thông tin về khách hàng (Version 1). .............129 Bài 2: Viết chương trình xem thông tin về khách hàng (Version 2) ..............130 Bài 3: Viết chương trình xem thông tin về khách hàng (Version 3) ..............130 Bài 4: Viết chương trình xem thông tin về khách hàng (Version 4) ..............130 Bài 5: Viết chương trình xem một bảng CSDL bất kỳ trong CSDL NWind....131 Bài 6: Viết chương trình nạp tất cả mã nhà cung cấp vào một hộp Combo .131 Bài 7: Viết chương trình liệt kê các sản phẩm do 1 công ty cung cấp (v1) ...131 Bài 8: Viết chương trình liệt kê các sản phẩm do 1 công ty cung cấp (v2) ...132 Bài 9: Như bài 8 nhưng các sản phẩm được hiển thị trong một ListView.....132 Bài 10: Xây dựng cây nhiều mức để xem thông tin về những sản phẩm .....133 Bài 11: Bổ sung thêm một trường mới trong câu lệnh SELECT...................133 Bài 12: Thực hiện như bài tập 5 nhưng sử dụng đối tượng Connection ......134 Bài 13: Làm lại bài 10 sử dụng đối tượng Connection và Recordset ...........134 Bài 14: Thao tác CSDL trên nhiều Form.......................................................134 Bài 15: Thiết kế báo cáo và kết xuất ra máy in danh sách sản phẩm (v1)....135 Bài 16: Thiết kế báo cáo và kết xuất ra máy in danh sách sản phẩm (v2)....136 B. HƯỚNG DẪN, GIẢI MẪU Bài 1 .............................................................................................................136 BÀI TẬP LẬP TRÌNH HƯỚNG SỰ KIỆN Biên soạn: Bộ môn CNPM–ĐHSPKT HY 2005 Trang 7 Bài 2 .............................................................................................................137 Bài 3 .............................................................................................................138 Bài 4 .............................................................................................................139 Bài 5 .............................................................................................................140 Bài 6 .............................................................................................................141 Bài 7 .............................................................................................................141 Bài 8 .............................................................................................................142 Bài 9 .............................................................................................................144 Bài 10 ...........................................................................................................145 Bài 11 ...........................................................................................................148 Bài 12 ...........................................................................................................151 Bài 13 ...........................................................................................................152 Bài 14 ...........................................................................................................154 Bài 15 ...........................................................................................................159 Bài 16 ...........................................................................................................160 Bài tập lớn ....................................................................................................161 Giíi thiÖu chung ..................................................................................................161 H−íng dÉn ph©n tÝch vÒ d÷ liÖu ..........................................................................161 C. BÀI TẬP TỰ GIẢI

Các file đính kèm theo tài liệu này:

  • pdfUnlock-Bài tập lập trình Visual basic 2.pdf
Tài liệu liên quan