Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,46 MB
Nội dung
Trường Đại Học Quang Trung Khoa KT – CN VISUAL BASIC BÁO CÁO Tên bài tập: QUẢN LÝ QUÁN CÀ PHÊ GVGD: Đỗ Minh Đức Lớp: K2.101 Nhóm thực hiện: Nhóm 3 1. Hoàng Thị Giang. 2. Hồ Đức Hòa. 3. Nguyễn Chí Trung. 1 Quy Nhơn – 01/2011 Quy Nhơn – 01/2011 Phần I: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU I. Những khái niệm cơ bản về cơ sở dữ liệu. 1. Cơ sở dữ liệu là gì? Cơ sở dữ liệu là một kho chứa thông tin. Có nhiều loại cơ sở dữ liệu, nhưng ta chỉ đề cập đến cơ sở dữ liệu quan hệ, là kiểu cơ sở dữ liệu phổ biến nhất hiện nay. Một cơ sở dữ liệu quan hệ: + Chứa dữ liệu trong các bảng, được cấu tạo bởi các dòng còn gọi là các mẩu tin, và cột gọi là các trường. + Cho phép lấy về (hay truy vấn) các tập hợp dữ liệu con từ các bảng. + Cho phép liên kết các bảng với nhau cho mục đích truy cập các mẩu tin liên quan với nhau chứa trong các bảng khác nhau. 2. Các kiểu cơ sở dữ liệu. Cơ sở dữ liệu nội tại của Visual Basic, Jet, cung cấp 21 kiểu dữ liệu khác nhau. Kiểu dữ liệu Mô tả Binary Dùng để chứa các khối dữ liệu lớn như là đồ hoạ và các tập tin âm thanh số hoá. Boolean Giá trị logic đúng hoặc sai Byte Giá trị số nguyên một byte từ 0 đến 255 Currency Trường số có thuộc tính đặc biệt để chứa các trí trị tiền tệ Date/Time Giá trị 8 byte thể hiện ngày hoặc giờ từ ngày 1/1/100 đến ngày 31/12/9999 Double Kiể dữ liệu số 8 byte dấu phẩy động GUID Là một số 128 bye, cũng được gọi là định danh toàn thể duy nhất. Ta dùng số này để nhận dạng duy nhất các mẩu tin. Số này được dùng trong các bản sao Integer Số 2 byte đầu đủ từ -32768 đến 32767 Long Số 4 byte đầy đủ từ -2,147,483,648 đến 2,147,483,647 Long binary Trường giá trị lớn nhất có thể chứa các giá trị thập phân như là hình ảnh hay tập tin ( OLE Object ) Kiểu OLE Object nhúng trong cơ sở dữ liệu có thể lên tới 1 gigabyte. 2 Meno Trường gí trị lớn có thể chứa đến 65,535 ký tự. Ta không cần thiết phải khai báo trước chiều dài của trường này. Single type Dữ liệu số 4 byte, dấu phẩy đơn Text Kiểu dữ liệu cáo chiều dài cố định, đòi hởi ta phải khai báo chiều dài của trường khi ta khai báo kiểu dữ liệu. Trường văn bản có thể dài từ 1 đến 255 ký tự. VarBinary Mẫu dữ liệu nhị phân biến đổi ( dùng với ODBCDirect ) 3. Chuẩn hóa cơ sở dữ liệu: Chuẩn hoá là một khái niệm liên quan đến mối quan hệ. Về cơ bản, nguyên tắc của chuẩn hoá phát biểu rằng các bảng cơ sở dữ liệu sẽ loại trừ tính không nhất quán và giảm thiểu sự kém hiệu quả. Các cơ sở dữ liệu được mô tả là không nhất quán khi dữ liệu trong một bảng không tương ứng với dữ liệu nhập vào trong bảng khác. Một cơ sở dữ liệu kém hiệu quả không cho phép ta trích ra cơ sở dữ liệu chính xác mà ta muốn. Các cơ sở dữ liệu chuẩn hoá cho phép ta tham chiếu đến một mẩu thông tin trong một bảng bất kỳ chỉ bằng khoá chính của thông tin đó. Ta quyết định cách thức chuẩn hoá của một cơ sở dữ liệu khi ta thết kế và khởi tạo một cơ sở dữ liệu. Thông thường, mọi thứ về ứng dụng cơ sở dữ liệu - từ thiết kế bảng cho đến thiết kế truy vấn, từ giao diện người sử dụng đến cách hoạt động của báo cáo - đều xuất phát từ cách chuẩn hoá cơ sở dữ liệu. + Quan hệ Một – Một: Là loại quan hệ dễ hiểu và dễ thực hiện nhất, bởi vì trong những mối quan hệ như vậy, một bảng sẽ lấy vị trí của một trường trong một bảng khác, trường liên quan cũng dễ nhận dạng. Tuy nhiên, quan hệ một - một không phải là mối quan hệ thông dụng nhất trong ứng dụng cơ sở dữ liệu. + Quan hệ Một – Nhiều: Phổ biến hơn quan hệ một - một, trong đó, mối mẩu tin trong một bàng này không có, hoặc có một, hoặc nhiều mẩu tin trong một bảng liên hệ. Ví dụ, ta gán từng khách hàng cho một người bán hàng. Để thực hiện điều này, ta cần một bảng cho người bán hàng : Bởi vì một người bán hàng có trách nhiệm với nhiều khách hàng, ta có thể nói đã có mối quan hệ một - nhiều giữa người bán hàng và khách hàng. 3 Để thực hiện mối quan hệ này trong thiết kế cơ sở dữ liệu, ta phải copy khoá chính của phía một đến bảng chứa phía nhiều trong quan hệ. Trong một thiết kế giao diện người sử dụng, ta thực hiện quá trình copy khoá chính của một bảng đến khoá ngoại của một bảng liên hệ nhờ một điều khiển hộp danh sách hay hộp kết hợp. Để tìm hiểu thêm thông tin về tổ chức giao diện. + Quan hệ Nhiều – Nhiều: Quan hệ nhiều - nhiều là bước phát triển của quan hệ một - nhiều ví dụ cổ điển của quan hệ nhiều nhiều là học sinh và lớp. Mỗi học sinh có nhiều lới, mỗi lớp có nhiều học sinh ( Tuy nhiên,có lớp không có hoặc chỉ có một học sinh, và có thể học sinh chỉ có một hoặc không có lớp ). Để thiết lập quan hệ nhiều nhiều, ta có thể sửa lại ví dụ trước sao cho cơ sở dữ liệu có thể chứa nhiều người bán cho một người mua. Mỗi người bán có nhiều khách hàng, và mỗi khách hàng có nhiều người bán. Giao diện người sử dụng phát triển trong Microsoft Access chủ yếu thực hiện quan hệ một - nhiều và quan hệ nhiều - nhiều bằng cách dùng biểu mẫu con. Đối với một nhà lập trình VB, một biểu mẫu con Access tương tự một biểu mẫu trong biểu mẫu : Biểu mẫu chính hiển thị phía một trong quan hệ một nhiều, trong khi biểu mẫu con hiển thị các mẩu tin ở phía nhiều . Thuận tiện của biểu mẫu con là nó không đòi hỏi phải dữ quan hệ giữa 2 bảng được nhất quán; ta chỉ quy định thuộc tính để trình bày khoá chính và khoá ngoại. Khác với Microsoft Access, VB không hỗ trợ biểu mẫu con để tự động hiển thị tất cả các mẩu tin liên quan với một mẩu tin nhất định. Thay vào đó, ứng dụng Visual Basic chủ yếu yêu cầu ta lập trình để thực hiện một giao diện người sử dụng dựa trên quan hệ nhiều nhiều. II. Các kỹ thuật lập trình cơ sở dữ liệu: Hiện nay đang tồn tại khá nhiều các kỹ thuật lập trình CSDL, tuy nhiên nhóm chỉ trình bày hai kỹ thuật căn bản là DAO (Data Access Objects) và ADO (ActiveX Data Objects). 1. Kỹ thuật DAO (Data Access Objects): DAO (Data Access Objects - Các đối tượng truy xuất dữ liệu) là tập hợp bao gồm lớp các đối tượng có thể dùng để lập trình truy cập và xử lý dữ liệu trong các hệ CSDL. Cách thức lập trình trên một hệ CSDL được mô tả tổng quát như sau: 4 Trong đó: - Tầng ứng dụng: bao gồm những giao diện người sử dụng cũng như những công cụ đơn giản mà người lập trình có thể dùng để xử lý dữ liệu theo các bài toán. - Tầng Kết nối dữ liệu: bao gồm tập hợp các công cụ, phương thức để kết nối tới những dữ liệu cần làm việc trong CSDL. - Tầng Cơ sở dữ liệu: bao gồm các bảng, các query trong cơ sở dữ liệu thực tại. 1.1. Lớp đối tượng DAO: + Cấu trúc một CSDL bao gồm nhiều thành phần, đòi hỏi việc lập trình cũng cần có những thành phần tương ứng để làm việc. Lớp các thành phần btương ứng để có thể lập trình được trên toàn bộ cấu trúc CSDL là lớp các đối tượng DAO. + Cây phân cấp lớp các đối tượng DAO sau đây thể hiện điều đó: Trong đó: • Workspaces - định nghĩa tập hợp các vùng làm việc. • Databases - định nghĩa tập hợp các CSDL cần làm việc trên một dự án. • RecordSets- định nghĩa các tập hợp bản ghi (Records) cần làm việc. • QueryDefs - định nghĩa tập hợp các Query để làm việc. Querydefs và Recordsets là khả năng truy xuất, xử lý dữ liệu (Data Manipulation) của DAO. • TableDefs - định nghĩa tập hợp các bảng (Table) cần làm việc. • Relations - định nghĩa tập hợp các quan hệ (Relationship) cần làm việc. 5 1.2. Đối tượng Database: Database là đối tượng dùng làm việc với một CSDL (trong trường hợp này có thể hiểu một CSDL như một tệp Access .MDB). + Khai báo: Dim db As DAO.Database ' Gán db cho một CSDL cụ thể Set db = OpenDatabase(“C:\Baitap\CaFe.mdb”) Lệnh đóng khi không làm việc với CSDL nào đó: db.Close 1.3. Đối tượng RecordSet: Recordset là đối tượng dùng để miêu tả tập hợp các bản ghi của một bảng, của một query hoặc tập các bản ghi kết quả của việc thi hành một câu lệnh SQL nào đó. + Khai báo: Set rs=db.OpenRecordset(<Name>) Trong đó: - Set rs = db.OpenRecordset là lệnh để tạo ra tập hợp các bản ghi từ CSDL db gán vào biến kiểu recordset rs. - <Name> là một xâu ký tự chỉ ra nguồn dữ liệu sẽ trả về cho Recordset. Xâu này có thể là tên một bảng, một Query hoặc một câu lệnh SQL. Một số thuộc tính của Recordset: Thuộc tính Name: Trả về xâu ký tự trong tham số <name> của lệnh gọi Recordset. Thuộc tính AbsolutePosition: Cho biết vị trí bản ghi hiện tại (được tính từ 0). Thuộc tính RecordCount: Cho biết tổng số bản ghi trả về trên Recordset Thuộc tính EOF: Cho biết con trỏ bản ghi hiện tại có nằm ở EOF hay không? Nếu có giá trị thuộc tính này là True, trái lại là False. Thuộc tính Fields: Dùng tham chiếu tới các trường (Fields) trên tập hợp các bản ghi mà Recordset trả về. Với Field của Recordset thông thường người ta hay sử dụng thuộc tính Value. Ví dụ: Hiển thị giá trị trường TenMon trong Recordset rs Msgbox rs.Fields(“TenMon") Một số phương thức của Recordset: 6 Phương thức Close: Để đóng Recordset, giải phóng bộ nhớ. Chỉ thực hiện hành động này khi không làm việc với Recordset nào đó. * Các phương thức di chuyển bản ghi của Recorset: Phương thức MoveFirts: Để chuyển con trỏ về bản ghi đầu tiên. Phương thức MoveLast: Để di chuyển con trỏ về bản ghi cuối cùng. Phương thức MoveNext: Dịch đến bản ghi kề sau. Phương thức Moverevious: Dịch đến bản ghi kề trước. Ví dụ 3: Duyệt và hiển thị toàn bộ TenMon của bảng tblMon: Dim rs As DAO.Recordset Set rs = db.OpenRecordset(“tblMon") If rs.RecordCount > 0 Then rs.MoveFirst While rs.EOF = False MsgBox rs.Fields(“TenMon").Value rs.MoveNext Wend End If Phương thức AddNew, Update: Để thêm mới một bản ghi vào Recordset. Qui trình thêm một bản ghi mới như sau: 1. Ra lệnh Addnew 2. Gán giá trị cho các trường của bản ghi mới 3. Ra lệnh Update. Ví dụ: Thêm mới một đồ uống vào bảng tblMon. Dim rs As DAO.Recordset Set rs = db.OpenRecordset(“tblMon") rs.AddNew rs.Fields(“MaMon") = “M001" rs.Fields(“TenMon") = “cafe đen" rs.Fields(“MaLoai") = “L001” rs.Fields(“MaDVT") = “D001” rs.Fields(“DGMon") = 8000 rs.Update Phương thức Edit, Update: để sửa dữ liệu một bản ghi nào đó trên recordset. Qui trình để sửa một bản ghi như sau: 1. Định vị tới bản ghi cần sử trên recordset 7 2. Ra lệnh Edit 3. Gán giá trị mới cho các trường cần sửa 4. Ra lệnh Update. Ví dụ: Sửa tên đồ uống có mã M002: Dim rs As DAO.Recordset Set rs = db.OpenRecordset(“SELECT * FROM tblMon WHERE MaMon=‘M002’”) If rs.RecordCount > 0 Then rs.MoveFirst rs.Edit rs.Fields(“TenMon") = “Number One" rs.Update End If Phương thức Delete: Để xoá bản ghi hiện tại ra khỏi Recordset. Khi đó bản ghi hiện tại sẽ bị xoá bỏ khỏi CSDL. Ví dụ: Private Sub cmDelete_Click() Dim tbao tbao = MsgBox(“Da chac chan xoa chua?", vbYesNo + vbCritical) If tbao = vbYes Then rs.Delete rs.MoveNext End If End Sub 1.4. Đối tượng QueryDef. Đối tượng Querydef dùng để tham chiếu tới các Query có sẵn (Buil-in) trên CSDL Access, hoặc cũng có thể lập trình tạo các Query từ các câu lệnh SQL. + Cú pháp: - Tạo một Query mới: Set qr = db.CreateQueryDef(<tên query>) - Gán chuỗi lệnh SQL vào thuộc tính SQL của query qr.SQL = “Câu lệnh SQL” Trong đó: - Lệnh Set qr = db.CreatQueryDef(<tên query>) để tạo một query mới lên CSDL. 8 - Lệnh qr.SQL=<câu lệnh SQL> để gán lệnh SQL cần thực thi vào Query. 1. 5. Đối tượng TableDef: Đối tượng TableDef được dùng để tham chiếu tới các bảng dữ liệu (Table) trên CSDL. Thông qua đối tượng này có thể thiết kế, chỉnh sửa được cấu trúc các bảng dữ liệu trong chế độ Run-time của VB như trên chế độ thiết kế bảng Design View trên Access. Thuộc tính Name: Cho biết tên bảng được gán vào biến kiểu TableDef. Thuộc tính RecordCount: Cho biết tổng số bản ghi hiện có trên bảng được gán bởi biến TableDef. Thuộc tính DateCreated: Cho biết thời gian tạo ra bảng được gán vào biển kiểu TableDef. Thuộc tính Fields: Để tham chiếu tới các trường của bảng. Ví dụ: Hiển thị tên của tất cả các trường trong một bảng tblMon. Sub LietKeTenTruong(Thucdon As String) Dim tbl As DAO.TableDef Set tbl = db.TableDefs(tblMon) For i = 0 To tbl.Fields.Count - 1 MsgBox tbl.Fields(i).Name Next End Sub Một số phương thức của TableDef: Phương thức CreateTableDef: Để tạo ra một bảng mới từ VB. Cú pháp: Set tbl = db.CreateTableDef(<Tên bảng mới>) - Lệnh ghi cấu trúc trên bảng đang khai báo trên CSDL đã chỉ định. db.TableDefs.Append tbl Phương thức CreateField: Để tạo ra các trường cho một bảng kiểu TableDef nào đó. Cú pháp: tbl.Fields.Append tbl.CreateField(<tên trường>,<KiểuDL>,<độlớn> 1.6. Đối tượng Relation: Đối tượng Relation dùng để tạo kết nối (RelationShip) giữa 2 bảng trong CSDL. Ví dụ: tạo kết nối giữa 2 bảng Thucdon và Loai trong CSDL. 9 Sub CreatRelationShip() Dim rls As DAO.Relation Set rls = db.CreateRelation("TaoQuanHe", “tblMon", “tblLoai", dbRelationUpdateCascade) rls.Fields.Append rls.CreateField(“Maloai") rls.Fields(“Maloai").ForeignName = “Maloai" db.Relations.Append rls End Sub 2. Kỹ thuật ADO (ActiveX Data Objects). ADO (ActiveX Data Objects) là công nghệ mới hơn, khắc phục được một số các nhược điểm của DAO và thích nghi trên nhiều hệ CSDL. Kiến trúc ADO: 2.1. Đối tượng Connection: Đối tượng Connection dùng để kết nối tới nguồn dữ liệu vật lý cần làm việc. Để thiết lập một Connection cần phải khai báo một biến có kiểu ADODB.Connection; Các thuộc tính kết nối tới CSDL được thể hiện qua một chuỗi kết nối (thường gọi chuỗi này là Connection String). Trên chuỗi này có chỉ định các thuộc tính như: + Provider - tên trình cung cấp dịch vụ truy cập CSDL. Ở đây dùng Microsoft.JET.OLEDB.4.0; + Data Source - chỉ định nguồn dữ liệu truy cập. Ở đây chỉ định đường dẫn tới tệp CSDL Access cần làm việc. Ví dụ: Kết nối CSDL Access: 10 [...]... sinh nhật… Với lý do như trên, mà nhóm em chọn bài tập cho nhóm là Quản Lý Quán Cà Phê trên quy mô nhỏ 2 Mục đích Mục đích của bài tập này chủ yếu là quản lý thực đơn, quản lý nhân viên, quản lý bàn, xuất hóa đơn… nhằm giảm nhẹ công việc quản lý, ghi chép, báo cáo đem lại hiệu quả cao trong công việc Với mục đích như vậy, nhiệm vụ mà bài toán đặt ra là phải tạo lập cơ sở dữ liệu sao cho hợp lý và đơn giản... tính tiền cho khách hàng - Quản lý nhân viên - Quản lý thông tin bàn - Quản lý thực đơn như: quản lý sản phẩm, quản lý phân loại, quản lý đơn vị tính cho mỗi loại đồ uống - Thống kê loại đồ uống, thống kê doanh thu… 3 Yêu cầu chất lượng - Tính tiện dụng, nhanh chóng và chính xác - Yêu cầu bảo mật - Yêu cầu an toàn III Phân tích + Chức năng chính của chương trình là: - Quản lý Nhân viên: cập nhật, thêm,... biết cách quản lý sao cho hai vấn đề này tồn tại song song với nhau bởi vì có con đường kinh doanh thì ta mới có thể điều chỉnh quản lý phù hợp và chỉ có quản lý tốt mới phát triển được kinh doanh Một trong những nhu cầu không thể thiếu nữa đó là giải trí Uống cà phê là hình thức giải trí phổ biến, mỗi người dù bận rộn hay rảnh rỗi đều có thể tận hưởng những phút giây thư giãn bằng những ly cà phê Đó... + Chức năng chính của chương trình là: - Quản lý Nhân viên: cập nhật, thêm, xóa, sửa thông tin nhân viên - Quản lý thực đơn: cập nhật, thêm, xóa, sửa thông tin của sản phẩm - Quản lý bàn: danh sách bàn, đặt bàn, chuyển bàn, khuyến mãi,… - Quản lý hóa đơn: tính tiền, in hóa đơn - Hệ thống báo cáo, thống kê: doanh thu, thu-chi theo ngày, tháng… IV Thiết kế 1.Thiết kế dữ liệu 1.1 Sơ đồ logic 1.2 Thiết... động cho mỗi lần chọn bàn Giá trị hóa đơn để in cho khách là số tiền mà khách phải trả + Chức năng Quản lý Nhân viên: 18 - Chức năng của form này dùng để quản lý nhân viên như thêm, sửa, xóa nhân viên Khi thêm nhân viên là Quản lý và Thu ngân sẽ có thêm trường Mật khẩu để nhập mật khẩu + Chức năng Quản lý Sản phẩm: 19 - Khi muốn cập nhật một sản phẩm mới nào ta sử dụng chức năng Cập nhật thông tin sản... và đơn giản sao cho dễ quản lý và hạn chế được thiếu sót Chương trình thiết kế phải phù hợp với người sử dụng II Khảo sát hiện trạng và xác định yêu cầu 1 Khảo sát hiện trạng Với những khả năng và kiến thức mà chúng em có được, chúng em đã mô tả tóm tắt quá trình nghiệp vụ của một chương trình như sau: Người sử dụng phải đăng nhập (tblNV) vào chương trình để quản lý Quán cà phê nào cũng có một thực... Mật khẩu (Để thay đổi mật khẩu của người dùng hiện tại), Thoát (Thoát khỏi chương trình) + Quản lý: Bán cafe, Nhân viên, Sản phẩm (Thông tin sản phẩm, phân loại sản phẩm, đơn vị tính) + Tiện ích: Tính toán, Nghe nhạc (Chưa cài đặt) + Thông tin: Giới thiệu, Trợ giúp Ý nghĩa (Chức năng Quản lý) : + Chức năng Quản lý bán Cafe: Đây là chức năng chính của chương trình: 17 - Chọn bàn cần sử dụng, mỗi bàn sẽ... không có trên đối tượng recorset trong ADO Bước 1: Khai báo một biến đối tượng RecordSet như sau: Dim rs As New ADODB.RecorSet Bước 2: Ra lệnh thực thi câu lệnh lựa chọn SQL và gán tập hợp các bản ghi trả về vào biến Recordset này Ví dụ: + Xóa dữ liệu: + LoadBan: + Thêm dữ liệu: 11 12 Phần II: ỨNG DỤNG QUẢN LÝ QUÁN CÀ PHÊ I Giới thiệu 1 Lý do chọn bài tập Trong thời buổi kinh tế thị trường như... ADO (ActiveX Data Objects) Phần II: Ứng dụng QUẢN LÝ QUÁN CÀ PHÊ I Giới thiệu 1 Lý do chọn bài tập 2 Mục đích II Khảo sát hiện trạng và xác định yêu cầu 1 Khảo sát hiện trạng 2 Yêu cầu chức năng 3 Yêu cầu chất lượng III Phân tích IV Thiết kế 1 Thiết kế dữ liệu 2.1.1 Sơ đồ logic 2.1.2 Thiết kế các bảng dữ liệu 2 Thiết kế giao diện, thiết kế xử lý V Cài đặt VI Kết luận 1 Kết luận 2 Hướng phát triển 23... đơn vị tính (tblDVT) khác nhau Để quản lý thì mỗi bàn (tblBan) sẽ hóa đơn chi tiết (tblHDCT) cho mỗi lần gọi đồ uống và có một hóa đơn (tblHD) để tính tiền cho khách hàng Ngoài ra ta còn có thể xuất hóa đơn cho từng ngày dựa trên tổng số tiền của mỗi bàn trong ngày, trong tháng… 2 Yêu cầu chức năng - Đăng nhập, thoát để sử dụng chương trình 13 - Quản lý bàn, khu vực cho quán để dễ nhập xuất dữ liệu cũng . trình. 13 - Quản lý bàn, khu vực cho quán để dễ nhập xuất dữ liệu cũng như tính tiền cho khách hàng. - Quản lý nhân viên. - Quản lý thông tin bàn. - Quản lý thực đơn như: quản lý sản phẩm, quản lý phân. nhật…. Với lý do như trên, mà nhóm em chọn bài tập cho nhóm là Quản Lý Quán Cà Phê trên quy mô nhỏ. 2. Mục đích. Mục đích của bài tập này chủ yếu là quản lý thực đơn, quản lý nhân viên, quản lý bàn,. Trường Đại Học Quang Trung Khoa KT – CN VISUAL BASIC BÁO CÁO Tên bài tập: QUẢN LÝ QUÁN CÀ PHÊ GVGD: Đỗ Minh Đức Lớp: K2.101 Nhóm thực hiện: Nhóm 3 1. Hoàng