PHẦN II :NỘI DUNG CHƯƠNG TRÌNH

Một phần của tài liệu Báo cáo thực tập xây dựng chương trình QLKS theo mô hình server client bằng visual basic (Trang 36 - 67)

I- Giới thiệu các nét chính của ngơn ngữ VISUAL BASIC

Visual Basic là một ngơn ngữ thảo chương hồn thiện và hoạt động theo kiểu điều khiển bởi sự kiện ( Event - Driven programming language ) nhưng lại rất giống ngơn ngữ thảo chương cĩ cấu trúc ( Structured programming language )

Nĩ cùng hỗ trợ các cấu trúc : Cấu trúc IF … THEN … ELSE Các cấu trúc lặp (Loops)

Cấu trúc rẽ nhánh ( Select Case )

Hàm ( Function ) và chương trình con ( Subroutines )

Visual Basic đưa ra phương pháp lập trình mới, nâng cao tốc độ lập trình.

Cũng như các ngơn ngữ khác, mỗi phiên bản mới của Visual Basic đều chứa đựng những tính năng mới chẳng hạn Visual Basic 2.0 bổ sung cách đơn giản để điều khiển các cơ sở dữ liệu mạnh nhất cĩ sẵn, Visual Basic 4.0 bổ sung thêm phần hỗ trợ phát triễn 32-bit và bắt đẩu chuyển sang thành một

ngơn ngữ lập trình hướng đối tượng đầy đủ, đến Visual Basic 6.0 hỗ trợ nhiều tính năng mạnh chẳng hạn OLE DB để lập trình dữ liệu. Các lập trình viên đã cĩ thể dùng Visual Basic 6.0 để tự mở rộng Visual Basic .

Visual Basic cĩ sẵn các cơng cụ như : các hộp văn bản ,các nút lệnh, các nút tùy chọn, các hộp kiểm tra, các hộp liệt kê, các thanh cuộn, các hộp thư mục và tập tin ... Cĩ thể dùng các khung kẻ ơ để quản lý dữ liệu theo dạng bảng, liên lạc với các ứng dụng Windows khác, truy cập các cơ sở dữ liệu gọi chung là điều khiển thơng qua cơng nghệ OLE của Microsoft.

Visual Basic cịn hỗ trợ cho việc lập trình bằng cách hiện tất cả tính chất của đối tượng mỗi khi ta định dùng đến nĩ. Đây là điểm mạnh của các ngơn ngữ lập trình hiện đại.

Các bước thiết kế một ứng dụng Visual Basic:

Xây dựng các cửa sổ mà người dùng sẽ thấy.

Quyết định những sự kiện mà các điều khiển trên cửa sổ sẽ nhận ra.

Viết các thủ tục sự kiện cho các sự kiện đĩ (các thủ tục con khiến cho các thủ tục sự kiện đĩ làm việc ). Các nội dung diễn ra khi ứng dụng đang chạy :

Visual Basic giám sát các cửa sổ và các điều khiển trong từng cửa sổ cho tất cả mọi sự kiện mà từng điều khiển cĩ thể nhận ra (các chuyển động chuột, các thao tác nhắp lên chuột, di chuyển, các gõ phím...)

Khi Visual Basic phát hiện một sự kiện , nếu khơng cĩ một đáp ứng tạo sẵn cho sự kiện đĩ, Visual Basic sẽ xem xét ứng dụng để kiểm tra người dùng đã viết thủ tục cho sự kiện đĩ hay chưa.

Nếu đã viết rồi , Visual Basic sẽ thi hành và hình thành nên thủ tục sự kiện đĩ và quay trở lại bước đầu tiên.

Nếu chưa viết thủ tục sự kiện , Visual Basic sẽ chờ sự kiện kế tiếp rồi quay về bước đầu tiên.

Các bước này quay vịng cho đến khi ứng dụng kết thúc. Sau khi đã tìm hiểu thế nào là hoạt động theo kiểu điều khiển bởi sự kiện và các hổ trợ của Visual Basic, chúng ta sẽ thấy đây là một cơng cụ lập trình dể chịu và cĩ xu hướng trở thành mơi trường lập trình hồn hảo cho những năm sắp tới .

II- MƠ HÌNH CLIENT – SERVER

1/ Giới thiệu mơ hình Client – Server :

Mơ hình Client - Server là một kỹ thuật tính tốn, trong đĩ Client đơn giản là một đối tượng cần được phục vụ, thơng thường là các ứng dụng cần đến dữ liệu hay dịch vụ từ chương trình khác và Server là đối tượng phục vụ những yêu cầu đĩ do nhiều Client gởi đến.

Mỗi khi cần được phục vụ, Client sẽ tạo một cầu nối đến Server và gởi yêu cầu nĩ cần. Sau khi đã đạt được sự phục vụ, Client sẽ ngắt cầu nối và trở về trạng thái như một chương trình bình thường .

Việc ứng dụng mơ hình Client - Server sẽ làm giảm chi phí, đồng thời làm tăng tốc độ, điều này rất cần thiết trong việc truy

cập dữ liệu.

2/ Mơ hình Client – Server :

Các mơ hình căn bản sau: a) One – tier model:

Mơ hình

Chương trình ứng dụng (Application Programing) phải làm tất cả các cơng việc như thêm vào, xĩa, cập nhật, thay đổi chỉ mục trên dữ liệu và hiển thị kết quả cho người dùng. Địi hỏi người dùng phải hiểu biết nhiều về cấu trúc lệnh do đĩ chương trình ứng dụng phải xử lý nhiều cơng việc và trở nên nặng nề.

b) Two – tier model Mơ hình

-Application Programing : cung cấp một giao diện thân thiện để thơng qua đĩ người dùng cĩ thể thực hiện các thao tác trên dữ liệu mà khơng cần phải biết nhiều về cấu trúc lệnh. -Database Server : là các Server như Oracle server, SQL server ... thực hiện các yêu cầu gởi tới từ phía Application Programing thơng qua các câu lệnh SQL và trả kết quả về cho Application Programing, Application Programing hiển thị kết quả cho người dùng.

Ta thấy, số lượng cơng việc đã được chia xẻ giữa Application Programing và Database Server nên người dùng dễ sử dụng hơn. c) Three – tier model

Mơ hình

Mơ hình 3 lớp hay cịn gọi là mơ hình n lớp. Trong đĩ lớp Client là một chương trình rất nhỏ, chỉ chứa vừa đủ mã để thực hiện việc giao tiếp với người dùng một cách thân thiện. Mơ hình này cịn được gọi là mơ hình n lớp vì lớp giữa bao gồm nhiều thành phần, mỗi thành phần cĩ tác dụng riêng để trao đổi với lớp Client và lớp Server thật.

3/ Truy cập dữ liệu trong Visual Basic :

Mơ hình minh hoạ sự truy cập dữ liệu trong VB

Trong chương trình quản lý khách sạn này, em sử dụng mơ hình 3 lớp với phương pháp truy cập ADO (ActiveX Data Object).

ADO là phương pháp truy cập dữ liệu thơng qua OLE DB. Đến VB 6 thì đây được xem như là phương pháp truy cập dữ liệu chủ yếu. Nĩ được hổ trợ mạnh bằng các thành phần mới cĩ ghi chú (OLE DB). Việc hiển thị dữ liệu cũng như các tập hợp kết quả trả về đều tiện lợi.

Các thành phần của ADO:

4/ Cách kết nối dữ liệu thơng qua OLE DB trong VB :

a/ Kết nối với CSDL:

Các bước thực hiện thơng qua giao diện:

 Tại cửa sổ dự án đang làm việc vào menu Project / More ActiveX Designers. . .-> Data Environment, hộp thoại hiện ra như sau:

Đặt tên cho kết nối Connection1 bằng cách nhấn chuột vào biểu tượng

(Properties Windows), điền tên vào mục Name.

 Chọn và nhấn

chuột phải tại tên kết

nối, chọn Properties từ

menu tắt, khi đĩ hộp

thoại Data Link

Properties xuất hiện như

hình bên. Từ đây ta chọn một trong các

kiểu cung cấp sự truy

cập dữ liệu đến các CSDL khác nhau. Để kết nối với CSDL Microsoft Access 97 ta chọn Microsoft Jet 3.51 OLE DB Provider và nhấn Next>>.

 Hộp thoại tiếp theo

hiện ra để ta cung cấp

đường dẫn và tên của

CSDL muốn kết nối.

Nếu CSDL đặt tại máy khác thì

đường dẫn xác định như sau:

\\<Tên máy chứa CSDL>\<Đường dẫn><tên CSDL>

Để kiểm tra việc kết nối tới CSDL cĩ thành cơng hay khơng ta nhấn vào nút Test Connection. Nếu thơng báo hiện ra “Test Connection succeeded” là ta đã kết nối được, ngược lại ta phải kiểm tra xem đường dẫn và tên CSDL đã nhập đúng chưa.

Trường hợp CSDL được bảo vệ bằng mật khẩu, để truy cập được ta phải thực hiện như sau:

-Từ hộp thoại Data Link Properties vào Tab All.

-Chọn dịng Jet OLEDB: Database Password rồi nhấn nút Edit Value

-Cung cấp mật khẩu của CSDL tại mục Property Value rồi nhấn OK để hồn thành.

b/ Đối tượng Command :

Đối tượng Command là thành phàn rất quan trọng của ADO. Nĩ cho phép định nghĩa một recordset được lấy từ các Table/Query trong một Database hay từ câu lệnh SQL. Để tạo một command từ Deconnect, ta chọn biểu tượng Add Command từ hộp thoại DE(Data Environment), hộp thoại xuất hiện như hình dưới:

-Command Name: đặt tên cho Command

-Connection: chọn kết nối cho Command

-Source of Data: nguồn dữ liệu, cĩ thể là:

.Database Object: chọn đối tượng CSDL, cĩ thể là table, view (query) hay một thủ tục.

.SQL Statement: xây dựng câu lệnh SQL

Xây dựng chương trình QLKS theo mơ hình Server/Client bằng Visual Basic

Định nghĩa một command tên Khachhang sử dụng nguồn dữ liệu từ một Table tên Khachhang Định nghĩa một command tên Khachhang sử dụng nguồn dữ liệu từ một Table tên Khachhang Định nghĩa một command tên Qsudungphong từ câu lệnh SQL sử dụng nguồn dữ liệu là Query Qsudungphong cĩ tham số đi kèm. Định nghĩa một command tên Qsudungphong từ câu lệnh SQL sử dụng nguồn dữ liệu là Query Qsudungphong cĩ tham số đi kèm.

Khi định nghĩa một Command cĩ sử dụng câu lệnh SQL, ta cĩ thể sử dụng tham số (parameters) để truyền giá trị cho Command xử lý.

Ngồi ra trong Command ta cĩ thể thiết lập mối quan hệ mới, nhĩm thuộc tính và đặc biệt tạo ra các Command con (child command) của nĩ.

III- Giao diện – Mã lệnh (Code) của một số modun trong chương trình QLKS

1. Form thiết kế – bố trí sơ đồ phịng

Mã lệnh:

Dim cmdso As Integer Private Sub cmdluu_Click() Dim i With DE.rsPhong .Open If .RecordCount > 0 Then i = 1 .MoveFirst

Do While Not (.EOF)

If cmdphong(i).Visible Then .Fields("x") = cmdphong(i).Left .Fields("y") = cmdphong(i).Top .MoveNext i = i + 1 End If Loop End If

.Close End With End Sub

‘--- Private Sub cmdphong_Click(Index As Integer) cmdso = Index

End Sub

‘--- Private Sub Form_Load()

cmdso = 1 Dim i With DE.rsPhong .Open If .RecordCount > 0 Then i = 1 .MoveFirst

Do While Not (.EOF)

cmdphong(i).Visible = True cmdphong(i).Caption = .Fields("maphong") .MoveNext i = i + 1 Loop End If .Close End With End Sub ‘---

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

cmdphong(cmdso).Move X, Y End Sub

‘---

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

txtxy.Text = X & "," & Y End Sub

2. Form bố trí (giao) phịng cho khách:

Mã lệnh:

Dim i

Private Sub cmdbot_Click() With DE.rsTmp_chonph If .RecordCount > 0 Then .Delete i = i - 1 End If End With End Sub ‘---

Private Sub cmdcat_Click() Unload Me

End Sub

‘---

Private Sub Cmdnhanphong_Click() Dim madp

With DE.rsTmp_chonph If .RecordCount > 0 Then i = 0

.MoveFirst

Do While Not (.EOF)

madp = .Fields("madp")

'Update [nhan phong]=yes cua Query dat phong With DE.rsQdatphong

If .RecordCount > 0 Then .MoveFirst

Do While Not (.EOF)

If .Fields("madp") = madp Then .Fields("nhanphong").Value = 1 Exit Do Else .MoveNext End If Loop End If End With

'Update table su dung phong With DE.rsSudungphong .Open .AddNew .Fields("madp") = madp .Fields("maphong") = Dcbophong.Text .Fields("ngaynp") = txtngaynhan.Text .Fields("gionp") = txtgionhan.Text .Fields("giaphong") = txtgiaphong.Text .Update .Close End With .Delete .MoveNext Loop End If End With DE.rsQdatphong.Requery Griddp.DataMember = "Qdatphong" Griddp.Refresh

'Update table phong With DE.rsPhong .MoveFirst

Do While Not (.EOF)

If .Fields("maphong") = Dcbophong.Text Then .Fields("CK") = 1 End If .MoveNext Loop End With End Sub ‘---

Private Sub Cmdsodo_Click() openphong = True

Load frmsodoph frmsodoph.Show End Sub

‘---

Private Sub cmdthem_Click() Dim madp If DE.rsQdatphong.RecordCount > 0 Then madp = Griddp.Columns(4) With DE.rsTmp_chonph If .RecordCount > 0 Then .MoveFirst

Do While Not (.EOF)

If .Fields("madp") = madp Then

MsgBox "§· chän kh¸ch nµy råi", vbCritical, "" Exit Sub Else .MoveNext End If Loop End If i = i + 1 .AddNew .Fields("stt") = i .Fields("tenkh") = Griddp.Columns(0) .Fields("CMND") = Griddp.Columns(3) .Fields("madp") = Griddp.Columns(4) End With End If End Sub ‘---

Private Sub Dcbophong_LostFocus() Dim tim As Boolean

tim = False With DE.rsPhong .MoveFirst

Do While Not (.EOF)

If .Fields("maphong") = Dcbophong.Text Then tim = True Exit Do Else .MoveNext End If Loop

If Not tim Then

MsgBox "Kh«ng cã phßng nµy", vbCritical, "Lu ý" Dcbophong.SetFocus

End If End With End Sub

‘---

Private Sub Form_Load() txtngaynhan.Text = Date txtgionhan.Text = Time

i = 0 End Sub

‘---

Private Sub gridchon_Click() cmdbot.Enabled = True End Sub

‘---

Một phần của tài liệu Báo cáo thực tập xây dựng chương trình QLKS theo mô hình server client bằng visual basic (Trang 36 - 67)

Tải bản đầy đủ (PDF)

(67 trang)