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.
173 trang |
Chia sẻ: aloso | Lượt xem: 2667 | Lượt tải: 0
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:
- Unlock-Bài tập lập trình Visual basic 2.pdf