Tải bản đầy đủ (.pdf) (66 trang)

Xây dựng chương trình quản lý khách sạn thái nguyên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.41 MB, 66 trang )

MỤC LỤC
MỤC LỤC -------------------------------------------------------------------------------------1
LỜI NÓI ĐẦU----------------------------------------------------------------------------- ---3
PHẦN MỞ ĐẦU------------------------------------------------------------------------------4
I. Lý do chọn đề tài ------------------------------------------------------------------4
1.Cơ sở lý thuyết -----------------------------------------------------------------4
2. Cơ sở thực tiễn ----------------------------------------------------------------4
II. Đối tượng --------------------------------------------------------------------------4
1. Đối tượng nghiên cứu của đồ án ------------------------------------------4
III. Mục đích của đồ án -------------------------------------------------------------5
IV. Phương Pháp giải quyết bài toán đặt ra------------------------------------5
V. Nội dung đề tài thực hiện -------------------------------------------------------5
CHƯƠNG 1 :CƠ SỞ LÝ THUYẾT VÀ KHẢO SÁT THỰC TẾ HỆ THỐNG
QUẢN LÝ KHÁCH SẠN THÁI NGUYÊN----------------------------6
1.1 Cơ sở lý thuyết -------------------------------------------------------------------6
1.1.1 Giới thiệu chung về Visual Basic ----------------------------------6
1.1.2 Giới thiệu về Access ------------------------------------------------- 27
1.2 Khảo sát thực tế hệ thống quản lý khách sạn Thái Nguyên ---------- 31
1.2.1 Tìm hiểu hiện trạng hệ thống cũ---------------------------------- 31
1.2.2 Xây dựng hệ thống quản lý khách sạn Thái Nguyên---------- 34
CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG------------------------- 36
2.1 Yêu cầu về hệ thống ---------------------------------------------------------- 36
2.2 Phân tích chi tiết bài toán --------------------------------------------------- 36
2.2.1 Mục đích của bài toán--------------------------------------------- 36
2.2.2 Yếu tố thành công -------------------------------------------------- 36
2.3 Phân tích và thiết kế hệ thống---------------------------------------------- 37
2.3.1 Xây dựng biểu đồ phân cấp chức năng------------------------- 37
2.3.2 Xây dựng biểu đồ luồng dữ liệu --------------------------------- 39
1



2.3.3. Xây dựng mô hình thực thể-------------------------------------- 47
2.3.4. Thiết kế cơ sở dữ liệu----------------------------------------------48
2.3.5 Sơ đồ thực thể liên kết----------------------------------------------50
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH ------------------------------------------ 52
3.1 Thiết kế giao diện ------------------------------------------------------------- 52
3.2 Thiết kế các form nhập dữ liệu -------------------------------------------- 54
3.2.1 Form đăng nhập---------------------------------------------------- 54
3.2.2 Form đổi mật khẩu------------------------------------------------- 54
3.2.3.Form nhập khách hàng ------------------------------------------- 55
3.2.4 Form đăng ký phòng----------------------------------------------- 55
3.2.5 Form thuê phòng -------------------------------------------------- 56
3.2.6 Form đăng ký sử dụng dịch vụ ---------------------------------- 57
3.2.7 Form tạm ứng------------------------------------------------------- 58
3.2.8 Form danh mục phòng -------------------------------------------- 59
3.2.9 Form tính tiền phòng ---------------------------------------------- 60
3.2.10 Form tính tiền sử dụng dịch vụ -------------------------------- 60
3.2.11 Form lập hóa đơn------------------------------------------------- 61
3.3 Thống kê báo cáo------------------------------------------------------------- 62
3.3.1 In hóa đơn ----------------------------------------------------------- 62
3.3.2 Báo cáo đăng ký phòng ------------------------------------------- 62
3.3.3 Báo cáo thuê phòng ----------------------------------------------- 63
3.3.4 Báo cáo sử dụng dịch vụ ------------------------------------------ 64
KẾT LUẬN --------------------------------------------------------------------------------- 65
LỜI CẢM ƠN--------------------------------------------------------------------------------66
TÀI LIỆU THAM KHẢO- ------------------------------------------------------- --------67
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN --------------------------------------68

2



LỜI NÓI ĐẦU

Trong những năm gần đây sự phát triển vượt trội của công nghệ thông tin đã
đóng góp to lớn cho sự phát triển chung của xã hội, những sản phẩm của công nghệ
thông tin ngày một được ứng dụng rộng rãi ở khắp mọi nơi, trong mọi lĩnh vực, mọi
ngành nghề và nó không ngừng được phát triển. việc nắm bắt và ứng dụng lĩnh vực
khoa học kỹ thuật này và áp dụng nó vào phục vụ cuộc sống con người là một vấn đề
quan trọng và thật sự cần thiết nhằm đạt hiệu quả cao trong công việc, tăng năng suất
lao động thúc đẩy xã hội phát triển.
Qua quá trình học tập tại Khoa Công nghệ Thông tin - Đại học Thái Nguyên,
em đã được các thầy giáo, cô giáo truyền đạt kiến thức chuyên ngành, rèn luyện một
tinh thần học tập và làm việc độc lập, sáng tạo đó là những yếu tố cần thiết để bắt đầu
cho một sự nghiệp trong tương lai.
Báo cáo đồ án tốt nghiệp là cơ hội để em có thể áp dụng, tổng kết lại những
kiến thức mà mình đã học, ứng dụng vào thực tế của cuộc sống. Dưới sự giúp đỡ tận
tình của thầy giáo Th.s Bùi Ngọc Tuấn và các thầy cô giáo trong khoa, em đã hoàn
thành luận văn này. Do khả năng có hạn và thời gian hạn hẹp nên trong quá trình
làm đồ án tốt nghiệp lần này không tránh khỏi những sai sót, rất mong sự đóng góp
ý kiến của các thầy giáo, cô giáo và các bạn.
Một lần nữa em xin chân thành cảm ơn thầy giáo Th.s Bùi Ngọc Tuấn đã
giúp em hoàn thành đồ án tốt nghiệp.

3


PHẦN MỞ ĐẦU
I. LÝ DO CHỌN ĐỀ TÀI.
1.Cơ sở lý thuyết .
Sự ra đời phát triển mạnh mẽ của tin học là thành quả vĩ đại của con người.
Công nghệ máy tính đã đạt được nhiều thành tựu to lớn nếu như không muốn nói là

những bước đột phá mạnh mẽ. Máy tính đang được sử dụng rộng rãi trong các hoạt
động của con người. trong các lĩnh vực kinh tế, máy tính được ứng dụng để quản lý
tài chính, ngân hàng, quản lý nhân sự…Trong các lĩnh vực khác như xây dựng, y học,
ngành chế tạo, văn hoá, công nghiệp và nông nghiệp nó cũng đóng vai trò hết sức
quan trọng và được ứng dụng rộng rãi trên phạm vi toàn thế giới.
Đối với các khách sạn tin học đóng một vai trò hết sức quang trọng trong việc
cung cấp những phần mềm quản lí, đặc biệt là quản lý hoạt động của khách sạn. Với
phần mềm này giúp người quản lý xử lý nhanh chóng, đảm bảo chính xác và đáp ứng
được yêu cầu của công việc.
2. Cở sở thực tiễn.
Quản lý khách sạn là một nhiệm vụ hết sức quan trọng đặc biệt là ở các khách
sạn lớn, vì số lượng khách hàng lớn, nhiều loại hình dịch vụ kèm theo. Cùng việc cải
tiến phong cách phục vụ, trang bị thêm tiện nghi, nâng cao chất lượng phòng nghỉ,
công tác quản lý khách sạn đã góp phần vào việc nâng cao chất lượng phục vụ của
khách sạn với mỗi khách sạn việc quản lý phụ thuộc vào tình trạng quản lý của khách
sạn đó.
Do nhu cầu thực tế của khách sạn Thái Nguyên và được sự đồng ý của thầy
giáo hướng dẫn Th.s Bùi Ngọc Tuấn tôi chọn đề tài “ Xây dựng chương trình quản
lý khách sạn Thái Nguyên” để làm đồ án.
II. ĐỐI TƯỢNG.
1. Đối tượng nghiên cứu của đồ án.
- Bước đầu nghiên cứu ngôn ngữ Access và lập trình VB
- Vận dụng kiến thức đã học để thiết kế một bài toán thực tế
- Tìm hiểu cơ chế quản lí khách sạn của khách sạn Thái Nguyên- Những thao
tác cơ bản với phần mềm Access.
4


- Những yêu cầu về quản lí và định hướng phát triển trong hệ thống quản lý
khách sạn của khách sạn Thái Nguyên.

III. MỤC ĐÍCH CỦA ĐỒ ÁN.
Chọn và nghiên cứu đồ án này, mục đích của chúng tôi là tổng hợp vận dụng
kiến thức chuyên ngành đã học thông qua việc xây dựng một chương trình quản lý.
Tìm hiểu về phần mềm Access và phân tích bài toán quản lý khách sạn của
khách sạn Thái Nguyên.Thiết kế một chức năng của bài toán bằng phần mềm Access.
bằng cách tìm hiểu hiện trạng thực tế và những yêu cầu đưa ra của công việc quản lý
khách sạn của khách sạn Thái Nguyên, chúng tôi sẽ tìm ra những thành công và hạn
chế của bài toán.Từ đó áp dụng chương trình quản lý khách sạn bằng công nghệ thông
tin vào thực tế.
IV. PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN ĐẶT RA.
Để giải quyết bài toán này chúng tôi sử dụng những phương pháp sau đây:
- Tìm hiểu thực tế công tác quản lý khách sạn và quản lý khách sạn Thái
Nguyên.
- Tìm hiểu phần mềm Access thông qua tài liệu
- Phân tích và thiết kế hệ thống thông tin
- Tiến hành cài đặt chương trình
V. NỘI DUNG ĐỀ TÀI CẦN THỰC HIỆN.
Ngoài phần mở đầu, kết luận và mục tài liệu tham khảo, thì đồ án bao gồm các
phần chính sau:
Chương 1: Cơ sở lý thuyết và khảo sát thực tế hệ thống quán lý khách sạn Thái
Nguyên.
Chương 2: Phân tích và thiết kế hệ thống
Chương 3: Cài đặt chương trình.

5


CHƯƠNG I
CƠ SỞ LÝ THUYẾT VÀ KHẢO SÁT THỰC TẾ HỆ
THỐNG QUẢN LÝ KHÁCH SẠN THÁI NGUYÊN

1.1. CƠ SỞ LÝ THUYẾT
1.1.1. GIỚI THIỆU CHUNG VỀ VISUAL BASIC.

Visual Basic được xem là một công cụ phát triển phần mềm. Đã gần mười
năm, Visual Basic quả không hổ danh là một ngôn ngữ lập trình phổ dụng nhất trên
Thế Giới hiện nay. Nhưng tất cả những tuyên bố này là về cái gì. Chính xác Visual
Basic là gì và nó giúp gì cho ta.
Vâng, Bill Gates đã mô tả Visual Basic như một “công cụ vừa dễ lại vừa mạnh
để phát triển các ứng dụng Windows bằng Basic”. Điều này dường như chưa đủ để
minh chứng cho tất cả những phô trương trên, trừ khi ta hiểu ra rằng hiện đang có
hàng chục triệu người dùng Microsoft Windows.
Visual Basic 2.0 đã từng nhanh hơn, mạnh hơn và thậm chí dễ dùng hơn Visual
Basic 1.0. Visual Basic 3 bổ sung các cách thức đơn giản để điều khiển các cơ sở dữ
liệu mạnh nhất sẵn có. Visual Basic 4 lại bổ sung thêm phần hổ trợ phát triển 32 bit và
bắt đầu tiến trình chuyển Visual Basic thành một ngôn ngữ lập trình hướng đối tượng
đầy đủ. Visual Basic 5 đã bổ sung khả năng tạo các tập tin thi hành thực sự, thậm chí
có khả năng tạo các điều khiển riêng. Và giờ đây, Visal Basic 6.0 bổ sung một số tính
năng ngôn ngữ đã được mong đợi từ lâu, tăng cường năng lực Internet, và cả các tính
năng cơ sở dữ liệu mạnh hơn. Quả thật, Visual Basic đã trở thành mạnh nhất và trôi
chảy nhất chưa từng thấy.
Mặt khác, điểm tiện lợi khi dùng Visual Basic chính là ở chỗ tiết kiệm thời
gian và công sức so với các ngôn ngữ lập trình khác khi xây dựng cùng một ứng
dụng.
Visual Basic gắn liền với khái niệm lập trình trực quan ( Visual ), nghĩa là khi
thiết kế chương trình, ta nhìn thấy ngay kết quả qua từng thao tác và giao diện khi
6


chương trình thực hiện. Đây là thuận lợi lớn so với các ngôn ngữ lập trình khác,
Visual Basic cho phép ta chỉnh sửa đơn giản, nhanh chóng, màu sắc, kích thước, hình

dáng của các đối tượng có mặt trong ứng dụng.
Một khả năng khác của Visual Basic chính là khả năng kết hợp các thư viện
liên kết động DLL (Dynamic Link Library). DLL chính là phần mở rông cho Visual
Basic tức là khi xây dựng một ứng dụng nào đó có một số yêu cầu mà Visual Basic
chưa đáp ứng đủ, ta viết thêm DLL phụ trợ.
Khi viết chương trình bằng Visual Basic, chúng ta phải qua hai bước :
- Thiết kế giao diện (Visual Programming)
- Viết lệnh (Code Programming)
1.1.1.1. Thiết kế giáo diện.
Do Visual Basic là ngôn ngữ lập trình hướng đối tượng nên việc thiết kế giao
diện rất đơn giản bằng cách đưa các đối tượng vào Form và tiến hành thay đổi một số
thuộc tính của các đối tượng đó.
* Form.
Form là biểu mẫu của mỗi ứng dụng trong Visual Basic. Ta dùng Form (như là
một biểu mẫu) nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần giao
tiếp với người dùng.
Ta có thể xem Form như là bộ phận mà nó có thể chứa các bộ phận khác. Form
chính của ứng dụng, các thành phần của nó tương tác với các Form khác và các bộ
phận của chúng tạo nên giao tiếp cho ứng dụng. Form chính là giao diện chính của
ứng dụng, các Form khác có thể chứa các hộp thoại, hiển thị cho nhập dữ liệu và hơn
thế nữa.

7


Trong nhiều ứng dụng Visual Basic, kích cỡ và vị trí của biểu mẫu vào lúc
hoàn tất thiết kế (thường mệnh danh là thời gian thiết kế, hoặc lúc thiết kế) là kích cỡ
và hình dáng mà người dùng sẽ gặp vào thời gian thực hiện, hoặc lúc chạy. Điều này
có nghĩa là Visual Basic cho phép ta thay đổi kích cỡ và di chuyển vị trí của các Form
đến bất kỳ nơi nào trên màn hình khi chạy một đề án, bằng cách thay đổi các thuộc

tính của nó trong cửa sổ thuộc tính đối tượng (Properties Windows). Thực tế, một
trong những tính năng thiết yếu của Visual Basic đó là khả năng tiến hành các thay
đổi động để đáp ứng các sự kiện của người dùng.
* Tools Box (Hộp công cụ).
Bản thân hộp công cụ này chỉ chứa các biểu tượng biểu thị cho các điều khiển
mà ta có thể bổ sung vào biểu mẫu, là bảng chứa các đối tượng được định nghĩa sẵn
của Visual Basic. Các đối tượng này được sử dụng trong Form để tạo thành giao diện
cho các chương trình ứng dụng của Visual Basic. Các đối tượng trong thanh công cụ
sau đây là thông dụng nhất :
* Scroll Bar (Thanh cuốn).
Các thanh cuốn được dùng để nhận nhập liệu hoặc hiển thị kết xuất khi ta
không quan tâm đến giá trị chính xác của một đối tượng nhưng lại quan tâm sự thay
đổi đó nhỏ hay lớn. Nói cách khác, thanh cuốn là đối tượng cho phép nhận từ người
dùng một giá trị tùy theo vị trí con chạy (Thumb) trên thanh cuốn thay cho cách gõ
giá trị số.
Thanh cuốn có các thuộc tính quan trọng nhất là :
- Thuộc tính Min : Xác định cận dưới của thanh cuốn
8


- Thuộc tính Max : Xác định cận trên của thanh cuốn
- Thuộc tính Value : Xác định giá trị tạm thời của thanh cuốn
* Option Button Control (Nút chọn)
Đối tượng nút chọn cho phép người dùng chọn một trong những lựa chọn đưa
ra. Như vậy, tại một thời điểm chỉ có một trong các nút chọn được chọn.
* Check Box (Hộp kiểm tra):
Đối tượng hộp kiểm tra cho phép người dùng kiểm tra một hay nhiều điều kiện
của chương trình ứng dụng. Như vậy, tại một thời điểm có thể có nhiều hộp kiểm tra
được đánh dấu.
* Label (Nhãn):

Đối tượng nhãn cho phép người dùng gán nhãn một bộ phận nào đó của giao
diện trong lúc thiết kế giao diện cho chương trình ứng dụng. Dùng các nhãn để hiển
thị thông tin không muốn người dùng thay đổi. Các nhãn thường được dùng để định
danh một hộp văn bản hoặc một điều khiển khác bằng cách mô tả nội dung của nó.
Một công cụ phổ biến nhất là hiển thị thông tin trợ giúp.
* Image (Hình ảnh):
Đối tượng Image cho phép người dùng đưa hình ảnh vào Form
* Picture Box :
Đối tượng Picture Box có tác dụng gần giống như đối tượng Image.
* Text Box (Hộp soạn thảo):
Đối tượng Text Box cho phép đưa các chuỗi kí tự vào Form
Thuộc tính quan trọng nhất của Text Box là thuộc tính Text cho biết nội dung hộp
Text Box.

9


* Command Button (Nút lệnh):
Đối tượng Command Button cho phép quyết định thực thi một công việc nào
đó khi người dùng Click hoạt nó.
* Directory List Box, Drive List Box, File List Box :
Đây là các đối tượng hỗ trợ cho việc tìm kiếm các tập tin trên một thư mục của
ổ đĩa nào đó
* List Box (Hộp danh sách):
Đối tượng List Box cho phép xuất các thông tin về chuỗi.
k/ Treeview:
Điều khiển Treeview có trong mọi ấn bản của VB 6.0. Điều khiển này hiển thị
một danh sách phân cấp của các đối tượng Node, mỗi đối tượng có nhãn và hình ảnh
tuỳ chọn đi kèm.
Sau khi tạo xong điều khiển, ta có thể thêm, xóa, sắp xếp và thao tác với các

đối tượng Node thông qua thuộc tính và phương thức. Có thể mở rộng hay rút gọn
một nút trong cây phân cấp, thông qua các sự kiện Collapse, Expand và NodeClick.
Có thể duyệt qua cây để lấy về một tham chiếu đến Node bằng cách dùng các thuộc
tính Root, Parent, Child, FirstSibling, Next, Previous và LastSibling. Điều khiển
TreeView còn dùng điều khiển ImageList để hiển thị hình ảnh.
Trên đây là những đối tượng được sử dụng thường xuyên nhất trong phần thiết
kế giao diện cho một chương trình ứng dụng của Visual Basic.
* Properties windows (Cửa sổ thuộc tính):

10


Properties Windows là nơi chứa danh sách các thuộc tính của một đối tượng cụ thể. Các
thuộc tính này có thể thay đổi được để phù hợp với yêu cầu về giao diện của các chương
trình ứng dụng.

* Project Explorer.

Do các ứng dụng của Visual Basic thường dùng chung mã hoặc các Form đã
tùy biến trước đó, nên Visual Basic tổ chức các ứng dụng thành các Project. Mỗi
Project có thể có nhiều Form và mã kích hoạt các điều khiển trên một Form sẽ được
lưu trữ chung với Form đó trong các tập tin riêng biệt. Mã lập trình chung mà tất cả
các Form trong ứng dụng chia sẻ có thể được phân thành các Module khác nhau và
cũng được lưu trữ tách biệt, gọi là các Module mã. Project Explorer nêu tất cả các
biểu mẫu tùy biến được và các Module mã chung, tạo nên ứng dụng của ta.
1.1.1.2. Viết lệnh cho các đối tượng.
Điểm mấu chốt cần phải nhận thức rõ trong khâu lập trình Visual Basic là
Visual Basic xử lí mã chỉ để đáp ứng các sự kiện. Thực vậy, không như nhiều ngôn
ngữ lập trình khác, các dòng mã thi hành trong một chương trình Visual Basic phải
nằm trong các thủ tục hoặc các hàm, các dòng mã bị cô lập sẽ không làm việc.

11


* Cửa Sổ Code :
Cửa sổ Code luôn là nơi để viết mã. Cửa sổ Code có một thanh tách (Split bar)
nằm bên dưới thanh tiêu đề, tại đầu thanh cuộn dọc. Thanh cuộn này có tác dụng tách
cửa sổ Code thành hai cửa sổ Code con để có thể xem cả hai phần cửa sổ Code cùng
lúc.
* Hộp liệt kê Object :
Hộp liệt kê bên trái cửa sổ Code là hộp Object, nó liệt kê mọi đối tượng trên
Form, cùng với một đối tượng trên General lưu giữ mã chung mà tất cả mọi thủ tục
dính kèm với Form có thể sử dụng.
* Hộp liệt kê Procedure :
Hộp liệt kê bên phải cửa sổ Code là hộp liệt kê Procedure. Hộp liệt kê này
cung cấp mọi sự kiện mà đối tượng đã lựa trong hộp liệt kê Object nhận ra.
* Intellisense :
Intellisense là một công nghệ bổ sung hoàn thành phức hợp của hãng
Microsoft, nó cho phép đỡ mất công gõ và tra cứu. Intellisense bật ra các hộp nhỏ với
các thông tin hữu ích về đối tượng mà ta đang làm việc. Nó có ba thành phần như mô
tả dưới đây :
- QuickInfo : Đây là nơi ta có thông tin về cú pháp của một toán tử Visual Basic. Mỗi
khi nhập một từ khóa theo sau là một dấu cách hoặc dấu ngoặc đơn mở, một thủ thuật
gợi ý hiện ra cung cấp cú pháp của thành phần đó.
- List Properties / Methods : Tính năng Intellisense này đưa ra một danh sách các tính
chất và phương pháp của một đối tượng ngay sau khi ta gõ dấu chấm.
- Available Constants : Tính năng Intellisense tiện dụng này cung cấp một danh sách
các hằng sẵn có.
1.1.1.3. Biến.

12



Trong Visual Basic, các biến [variables] lưu giữ thông tin (các giá trị). Khi
dùng một biến, Visual Basic xác lập một vùng trong bộ nhớ máy tính để lưu giữ thông
tin. Trong Visual Basic, tên biến có thể dài tới 255 ký tự và trừ ký tự đầu tiên phải là
một mẫu tự, ta có thể gộp một tổ hợp mẫu tự, con số và dấu gạch dưới bất kỳ. Chữ
hoa, chữ thường trong tên biến không quan trọng.
Khai báo biến : Dim Tên Biến As Kiểu của biến
Ví dụ : Dim Dem As Integer
1.1.1.4. Các kiểu dữ liệu.
Dữ liệu cũng có nhiều kiểu : kiểu dữ liệu số, chuỗi và Boolean. Thực tế, Visual
Basic điều quản 14 kiểu dữ liệu chuẩn. Ta cũng có thể định nghĩa các kiểu biến riêng.
Các kiểu thường dùng để điều tác dữ liệu là :
*Kiểu String :
Các biến chuỗi [String] lưu giữ kí tự. Một chuỗi có thể có thể có một hay
nhiều kí tự. Tất nhiên, biến lưu trữ một chuỗi được gọi là một biến chuỗi. Một
phương pháp để định danh các biến kiểu náy đó là đặt một dầu đồng đô la ($) vào
cuối tên biến : Astring Variables.
Trên lý thuyết, các biến chuỗi có thể lưu giữ khoảng 2 tỷ kí tự. Trong thực tế,
một máy cụ thể có thể lưu giữ ít hơn, do các hạn chế của bộ nhớ, các yêu cầu phần
việc chung của Windows, hoặc số lượng chuỗi dùng trong biểu mẫu.
*Kiểu Integer :
Các biến số nguyên Integer lưu trữ các giá trị số nguyên tương đối nhỏ (giữa 32768 và +32767). Số học số nguyên tuy rất nhanh song bị hạn chế trong các phạm vi
này. Dấu định danh được dùng là dấu “ % ”
* Kiểu Long Integer :
Các biến số nguyên dài Long Integer lưu trữ các số nguyên giữa
-2,147,483,648 và +2,147,483,647. Dấu định danh được dùng là dấu “ &”
13



* Kiểu Single Precision:
Các biến kiểu này lưu giữ các con số ở các mức xấp xỉ. Chúng có thể là phân
số nhưng chỉ có thể bảo đảm độ chính xác ở mức bảy chữ số. Dấu định danh được
dùng là dấu “ ! ”
* Kiểu Double Precision :
Kiểu dữ liệu chính đôi [double _ precision] khi cần các con số có tới 16 vị trí
độ Chính xác và cho phép có hơn 300 chữ số. Các phép tính cũng là xấp xỉ cho kiểu
biến này, chỉ có thể căn cứ trên 16 chữ số đầu. Ngoài ra, với các con số chính đôi,
phép tính thực hiện tương đối chậm, chủ yếu được dùng trong các phép tính khoa học
của Visual Basic. Dấu định danh dùng cho biến chính đôi là dấu “ # ” .
Phải dùng số # tại cuối con số thực tế, nhất là khi có tương đối ít chữ số bởi
bằng không Visual Basic sẽ mặc nhận ý ta muốn dùng biến với độ chính xác hạn chế
của một số chính đơn. Chính xác hơn nếu ta viết :
AdoublePrecisionVariable # = 12.345 #
* Kiểu Currency :
Các biến kiểu này được thiết kế để tránh một số vấn đề trong khi chuyển từ các
phân số nhị phân thành các phân số thập phân (không thể tạo 1/10 từ số tổ hợp 1/2,
1/4, 1/8, 1/16 ). Kiểu Currency có thể có 4 chữ số về bên phải của vị trí thập phân và
lên tới 14 chữ số về bên trái của dấu chấm thập phân. Dấu định danh được dùng là
“@”
* Kiểu Date :
Kiểu dữ liệu ngày tháng là một phương cách tiện dụng để lưu trữ thông tin cả
ngày tháng lẫn giờ khắc cho bất kỳ thời điểm nào giữa nửa đêm ngày 1 tháng giêng
năm 100 đến nửa đêm ngày 31 tháng 12 năm 9999. Ta phải bao phép gán cho các
biến ngày tháng bằng dấu #
Ví dụ : Ngày = # January, 1, 2000#
14


Nếu không gộp một giờ khắc vào ngày, Visual Basic mặc nhận nó là nửa đêm

*Kiểu Byte :
Kiểu Byte mới có trong Visual Basic 5 và có thể lưu giữ các số nguyên giữa và
255.
* Kiểu Boolean :
Dùng kiểu Boolean khi cần các biến là True hay False
* Kiểu Variant :
Kiểu Variant được thiết kế để lưu trữ toàn bộ dữ liệu khả dĩ khác nhau của
Visual Basic nhận được trong một chỗ. Nếu ta không báo cho Visual Basic biết kiểu
thông tin mà một biến đang lưu giữ, nó sẽ dùng kiểu Vriant.
Ngoài cách dùng dấu định danh để chỉ định kiểu, Visual Basic còn cho phép
dùng điều lệnh
“Dim” để khai báo biến
Ví dụ : Dim A as integer
Dim B as string, C as Byte
1.1.1.5> Điều khiển luồng chương trình.
*Phát biểu IF :
IF <điều kiện> THEN
Các lệnh thực hiện khi điều kiện thỏa
ELSE
Các lệnh thực hiện khi điều kiện không thỏa
END IF
* Phát biểu SELECT CASE : Đây là cấu trúc chọn lựa
SELECT CASE X
15


CASE 0 :
Các lệnh thực hiện khi X = 0
CASE 1 :
Các lệnh thực hiện khi X = 1

...
CASE n :
Các lệnh thực hiện khi X = n
END SELECT
* Lệnh DO WHILE . . LOOP :
Đây là cấu trúc lặp kiểm tra điều kiện trước, vòng lặp tiếp tục khi điều kiện lặp
còn đúng
DO WHILE <Điều kiện>
Các lệnh thực hiện khi điều kiện còn thỏa
LOOP
* Lệnh DO . . LOOP WHILE :
Đây là cấu trúc lặp kiểm tra điều kiện sau, vòng lặp tiếp tục khi điều kiện lặp
còn đúng.
DO
Các lệnh
LOOP WHILE Điều kiện
Như vậy với cấu trúc này, vòng lặp thực hiện ít nhất 1 lần
* Lệnh FOR . . NEXT : Đây là cấu trúc lặp hay dùng nhất trong Visual Basic
FOR . . TO STEP n
16


Các lệnh
NEXT
Trong đó Step là bước tăng. Mặc định Step là 1
* Lệnh DO . . LOOP UNTIL :
DO . .
Các lệnh
LOOP UNTIL <Điều kiện>
Tương tự như DO . . LOOP WHILE. Vòng lặp thực hiện ít nhất 1 lần

* Phát biểu EXIT . . FOR :
Phát biểu EXIT được sử dụng khi cần dừng ngay quá trình lặp của FOR
* Lệnh EXIT DO :
Phát biểu EXIT DO sử dụng khi cần dừng ngay quá trình lặp của phát biểu
DO.
1.1.1.6. Hiển thị và nhận thông tin.
Ta sử dụng các hộp đối thoại để hiển thị thông tin cho người dùng hoặc nhận
thông tin. Trong Visual Basic có ba loại hộp đối thoại :
- Hộp đối thoại có sẵn (Predefined Dialog Box)
- Hộp đối thoại của người dùng (Custom Dialog Box)
- Hộp đối thoại chung (Common Dialog Box)
* Hộp đối thoại có sẵn :
Các hộp đối thoại này do Visual Basic định nghĩa sẵn, chúng có các tham số
qui định dạng hiển thị chung. Ta có thể hiển thị các hộp đối thoại có sẵn thông qua :
- Phát biểu MsgBox hay hàm MsgBos ( )
- Hàm InputBox
17


* Phát biểu MsgBox hay hàm MsgBox ( ) :
Ta sử dụng MsgBox hay hàm MsgBox ( ) để hiển thị thông báo và nhận lại trả
lời của người dùng.
Phát biểu MsgBox hay hàm MsgBox ( ) có ba đối :
-

Thông báo cần hiển thị : chuỗi kí tự

-

Dạng hộp đối thoại : số nguyên (integer)


-

Tiêu đề hộp đối thoại : chuỗi kí tự

MsgBox (Message, Dialog Type, Tittle).
Khi sử dụng hàm MsgBox ( ) thì ta phải có giá trị trở về
* Hàm InputBox ( ) :
Hàm inputBox ( ) dùng nhận thông tin từ người dùng. Hàm InputBox ( ) gồm
một dòng thông báo (Message), hộp soạn thảo và hai nút OK, Cancel. Người dùng
đưa thông tin nhập vào hộp soạn thảo và bấm OK.
Tham số thứ nhất của InputBox ( ) là dòng thông báo, tham số thứ hai là tiêu
đề hộp đối thoại InputBox ( ) trả về chuỗi kí tự nằm trong hộp soạn thảo.
Hàm InputBox còn có thêm ba thông số khác. Đối thứ ba xác định chuỗi ban
đầu trong hộp soạn thảo ngay khi hộp đối thoại xuất hiện. Hai đối số cuối xác định tọa
độ của hộp đối thoại.
* Hộp đối thoại của người dùng :
Đây là loại hộp đối thoại do người lập trình định nghĩa để tương thích yêu cầu
nhập thông tin của người sử dụng
Dùng phương thức Show với đối số 1 (do hộp thoại dạng Modal) để hiển thị
hộp thoại người dùng
* Hộp đối thoại dùng chung :
18


Ta có thể thực hiện (run time) bằng cách thay đổi một số thuộc tính của nó.
1.1.1.7. Các hàm về chuỗi.
* Chuỗi
Do thông tin trong các hộp văn bản Visual Basic luôn được lưu trữ dưới dạng
văn bản, nên trong Visual Basic, các chuỗi tỏ ra quan trọng hơn nhiều so với trong

Basic bình thường. Một chuỗi chẳng qua là một nhóm kí tự được bao trong các dấu
nháy kép. Khi có người nhập thông tin vào hộp văn bản, Visual Basic luôn lưu trữ
chúng dưới dạng một chuỗi. Do đó, cho dù ta có một hộp văn bản chủ ý để lưu giữ
một khối lượng, thì nội dung đó vẫn được xem là một chuỗi.
Phép toán phổ dụng nhất đối với các chuỗi thường là gom hai chuỗi lại với
nhau (thuật ngữ gọi là ghép nối [concatenate]). Để ghép nối hai chuỗi, ta dùng dấu
“&” hay dấu “+”.
Dấu và nối các chuỗi theo thứ tự mà ta nêu chúng. Do đó, không giống như
việc cộng các con số, thứ tự là quan trọng khi dùng dấu & để ghép hai chuỗi với nhau.
Cũng có thể dùng dấu & để nối các chuỗi theo số lượng tùy ý trước khi Visual Basic
thực hiện điều lệnh gán.
Tuy trong Visual Basic ta vẫn có thể dùng dấu + để ghép các chuỗi với nhau,
song không nên làm thế. Nó có thể dẫn đến các mối rất khó tìm. Vì Visual Basic có
thói quen là chuyển đổi các chuỗi thành các con số khi nó cho là có nghĩa.
* Các hàm chuỗi.
Phần lớn cái ta cần trong lập trình là phân tích dữ liệu. Tiến trình này có thể
đơn giản chỉ là việc tách nhỏ một tên đầy đủ thành tên thường gọi và tên họ, song
cũng có thể phức tạp như viết mã cần thiết để chuyển đổi một tập tin từ dạng thức này
sang dạng thức khác. Mọi kiểu điều khác như vậy buộc ta phải nắm vững các hàm
điều quản chuỗi của Visual Basic. Trong Visual Basic, các hàm này cho phép ta xem
xét từng kí tự trong mỗi chuỗi, tách riêng các chuỗi, thay một phần trong chuỗi bằng
nội dung khác…

19


* Phân tích chuỗi bằng hàm Mid, Left và Right :
Để tiến hành phân tích một chuỗi hiện có, ta phải đặt một hàm trong thân vòng
lặp cho phép kéo từng mẫu tự riêng lẻ hoặc các chùm lớn hơn ra khỏi một chuỗi.
For I = 1 To Len (The String)

‘ mã hàm làm việc với các kí tự riêng lẻ
Next I
* Hàm Mid :
Trong các hàm trên, quan trọng nhất, ta có hàm Mid, trả về một chuỗi lưu trữ
trong một variant, và hàm Mid$, hàm trả về chuỗi thực tế. Có thể dùng hoán đổi hai
phiên bản này.
Cú pháp của hàm Mid là :
Mid (String, start ,[length])
Khoản nhập đầu tiên lưu giữ chuỗi (hoặc biểu thức chuỗi) mà ta muốn cắt bỏ.
Tiếp theo là vị trí khởi đầu của các kí tự mà ta muốn ra khỏi chuỗi. Vị trí chót tùy
chọn sẽ chỉ định số lượng kí tự mà ta muốn kéo ra. Hai tùy chọn chót này có thể là
những số nguyên hoặc các số nguyên dài hoặc một biểu thức mà Visual Basic có thể
làm tròn để nằm trong miền này.
Mid là một hàm có ba (hoặc thỉnh thoảng là hai) tham số, hay đối số. Cả hai
thuật ngữ này đều vay mượn từ toán học. Trong một hàm, từng đối số được tách biệt
với nhau bằng dấu phẩy. Hàm Mid thường dùng ba mẩu tin : một chuỗi tại ví trí đầu
tiên và các số nguyên hay các số nguyên dài tại hai vị trí còn lại.
Mid còn một tính năng hữu ích khác. Ta có thể dùng nó như một điều lệnh để
tiến hành các thay đổi bên trong một chuỗi.

20


* Hàm Left và Right :
Hàm Mid có hai hàm bà con (Left và Right) đôi lúc cũng rất hữu ích ; cũng
như mọi hàm chuỗi khác, chúng cũng có hai phiên bản: một bình thường và một có
kèm dấu $.
Như tên gọi gợi ý, Left (Left$ ) tạo một bản sao các kí tự tính từ đầu một từ và
Right (Right$ ) chọn từ cuối trở lên. Right thường được dùng hơn. Nó tránh được
phép trừ bên trong hàm Mid và có thể làm việc nhanh hơn. Left cũng làm việc tương

tự nhưng chỉ giúp ta đỡ mất công đưa một 1 vào vị trí thứ hai trong hàm Mid.
*Hàm InStr :
Cũng như hàm Mid, hàm InStr cũng làm việc với ba (và đôi lúc là hai ) mẩu tin
nghĩa là, nó là một hàm có ba (thỉnh thoảng là hai ) đối số.
Giả sử, ta muốn tìm tất cả mọi chữ số đứng trước dấu chấm thập phân trong
một con số. Tất nhiên, có thể dùng hàm Mid để rà qua biên bản chuỗi của con số đó,
theo từng kí tự một, cho đến khi tìm thấy dấu chấm thập phân. Tuy nhiên, làm như
vậy sẽ nhọc công và chạy chậm hơn nhiều so với hàm InStr.
Hàm InStr báo cho biết chuỗi có thuộc thành phần của một chuỗi khác hay
không (chuyên ngữ gọi là “ chuỗi con của” ). Nếu có, InStr sẽ báo cho biết vị trí bắt
đầu chuỗi con.
Hàm InStr cũng cho phép chỉ định bắt đầu tìm kiếm tại một kí tự nhất định.
Ví dụ : InStr ([nơi bắt đầu,]) chuỗi tìm kiếm, chuỗi tìm thấy) định nơi bắt đầu
tìm kiếm. Nếu để trống mục này, cuộc tìm kiếm sẽ bắt đầu từ vị trí thứ nhất.
Do hàm InStr trả về giá trị zêrô (nghĩa là False ) khi Visual Basic không tìm
thấy một kí tự, hoặc một giá trị phi zêrô (True) khi tìm thấy, nên thông thường ta phải
tự mình viết các vòng lặp If _ Then hoặc Do dùng hàm InStr để tiến hành kiểm tra.
Nếu dùng giá trị mà hàm InStr đạt được trước đó, ta có thể tìm kiếm các lần
xuất hiện lặp lại của một chuỗi.
21


* Hàm Val :
Visual Basic có một hàm tên Val. Đây là một dạng hàm chuyển đổi tất thảy, vì
thế trong Visual Basic người ta vẫn thường dùng Val để chuyển đổi một chuỗi số
thành một con số. Mặt khác, Val lại tỏ ra dễ dãi với các chuỗi nhập liệu hơn. Val đơn
giản đọc qua chuỗi cho đến khi gặp một kí tự phi số (hoặc một dấu chấm thứ hai).
Con số mà ta có được từ nó sẽ được xác định bởi nơi nó ngưng tìm.
* Hàm Str (Str$ ) :
Visual Basic cho phép chuyển ngược một con số thành một chuỗi. Có nhiều

cách để thực hiện, song hàm Str vẫn là cách đơn giản nhất. Hàm Str trả về một variant
lưu giữ một chuỗi còn hàm Str$ lại trả về một chuỗi thuần túy. Các hàm Str và Str$
chuyển đổi các con số thành chuỗi, song không xóa sạch chúng hoàn toàn.
* Hàm Format :
Để trau chuốt việc hiển thị, hàm Str được thay bằng hàm Format. Khác với
hàm Str, hàm Format không chừa chỗ cho một dấu + mặc định. Hàm Format rất linh
hoạt. Trong số nhiều tính năng của nó, hàm này cho phép ta cắt cụt các chữ số dư và
hiển thị một con số (lớn) có các dấu phẩy hoặc một dấu đồng đô la $ dẫn đầu.
Visual Basic giúp ta dễ dàng đối phó với các tình huống định dạng phổ biến
nhất, bằng cách bổ sung cái gọi là các dạng thức hữu danh vào hàm Format.
* Hàm Trim :
Hàm này được sử dụng để loại bỏ các khoảng trắng ở hai đầu một chuỗi. Ngoài
ra, còn có hàm Ltrim và RTrim dùng để cắt bỏ các khoảng trắng ở bên trái, bên phải
chuỗi.

22


1.1.1.8. Hàm và thủ tục do người dùng định nghĩa.
Trong Visual Basic, thực tế có hai kiểu thủ tục chung: các thủ tục Function và
thủ tục Sub.
Thủ tục Function, còn gọi là hàm do người dùng định nghĩa, là phương cách để
xây dựng các hàm riêng ngoài các hàm do Visual Basic định sẵn. Dẫu đó là hàm do ta
viết hay của các lập trình viên Visual Basic cung cấp, nói chung ta xem nó như một
đoạn mã tự chứa, được thiết kế để xử lí dữ liệu và trả về một giá trị.
Trong khi đó, các thủ tục Sub là những “chương trình trợ lực” nho nhỏ, được
dùng khi cần. Như vậy các thủ tục Sub là những phần tổng quát hóa của các thủ tục sự
kiện mà ta đã quen thuộc. Khác với hàm, thường trả về một giá trị, các thủ tục đơn
giản thực hiện các việc.
Tóm lại, dẫu chọn thủ tục Function hay thủ tục Sub, điểm chủ yếu vẫn là : các

thủ tục Function và Sub thực hiện một hay nhiều nội dung dưới đây :
- Giúp tách nhỏ các công việc lớn thành các phần việc nhỏ.
-Tự động hóa các tác vụ lặp lại.
- Làm rõ nội dung mà ta đang gắng hoàn tất bằng cách “nêu tên” một đoạn mã.
Các tính năng này giúp giảm bớt đáng kể thời gian gỡ rối chương trình.
* Hàm(Function)
Khi phải dùng một biểu thức phức hợp nhiều lần trong một đề án thì cũng là
lúc ta nên nghĩ đến phương án định nghĩa các hàm riêng. Ta có thể vận dụng một cách
nào đó để tự động hóa tiến trình, nghĩa là để Visual Basic thực hiện một phần công
việc. Đây là vai trò của chương trình con, muốn trả về một giá trị, ta phải tạo một thủ
tục Function, tức là hàm do người dùng định nghĩa. Như thường lệ, cửa sổ Code vẫn
là nơi để tạo mã cho các thủ tục Function.
Tên hàm cũng linh hoạt như tên biến, do đó ta nên chọn các tên có ý nghĩa.
Nhờ vậy, chương trình sẽ minh bạch hơn và cũng dễ gỡ rối hơn. Lưu ý, trừ phi gán
23


cho nó một dấu định danh kiểu rõ rệt ở cuối tên hoặc thông qua mệnh đề As, kiểu của
hàm sẽ ngầm định theo kiểu dữ liệu Variant. Dưới đây là một dạng định nghĩa hàm,
tuy đơn giản nhất nhưng khá phổ biến.
Pulic Function FunctionName (parameter 1, paratemeter 2,... )
Statements
FunctionName = expression
Statements
FunctionName = expression
Statements
….
End Function
Ở đó, parameter 1, paratemeter 2, vân vân , đều là biến. Các biến này được
xem như những tham số hay đối số của hàm. Kiểu của tham số có thể được chỉ định

bởi các thẻ gán khai báo kiểu hoặc bằng các cụm từ As.
Khi một điều lệnh Visual Basic sử dụng một hàm, thường có : gọi hàm và
chuyển các biểu thức cho các tham số. Hàm được xem là trả về giá trị của nó.
Kiểu giá trị mà hàm trả về sẽ được chỉ định bằng một thẻ gán khai báo biến (%,
!, &, #, hoặc $ ) được chắp vào tên hàm, hoặc tên dùng trong mệnh đề As ở cuối dòng
Function, hoặc một điều lệnh DefType xuất hiện bên trên phần định nghĩa Function.
Ngoài ra, với một ngoại lệ ta chỉ có thể gọi một hàm khi dùng cùng với số
lượng đối số như các tham số trong phần định nghĩa hàm. Từng biến muốn gởi cho
một tham số phải thuộc cùng kiểu (số nguyên, số nguyên dài, vân vân) với tham số
tương ứng. Ngoài ra, có thể dùng bất kỳ biến nào nếu như tham số thuộc kiểu variant.

24


Có nghĩa là, chỉ có thể chuyển một đối số biến số nguyên cho một tham số số
nguyên. Ta không thể trực tiếp chuyển nó cho một tham số số nguyên dài của một
hàm.
Như ta đã biết, Visual Basic từ chối chuyển một biến có kiểu số nguyên cho
một tham số kiểu long, cho dù trong hầu hết các trường hợp một số nguyên sẽ làm
việc tại mọi nơi số nguyên dài làm việc.
Cuối cùng, đừng quên rằng trong tất cả các hàm, chúng ta chưa thay đổi các
biến bằng cách đưa biến tham số vào bên trái của một điều lệnh gán bên trong thân
hàm. Nghĩa là, ta chưa thực hiện phép gán nào cho các tham số trong thân các hàm.
Tuy nhiên, trong thực tế, hiếm khi phải thay đổi giá trị của một tham số trong thủ tục
Function. Nói chung, một hàm sẽ đơn giản điều tác các giá trị hiện có và trả về một
giá trị mới.
* Thủ tục (sub)
Các thủ tục Function được thành lập để thực hiện hầu như mọi thứ, chỉ cần nội
dung muốn thực hiện chính là để có một đáp số – một giá trị – rút ra từ các hàm đó.
Như đã nêu trên đây, tuy các hàm có thể thay đổi các tính chất của một Form, ảnh

hưởng đến giá trị của các biến chuyển dưới dạng tham số, hoặc ảnh hưởng đến các
biến cấp Form, song không thể làm thế trừ phi sự thay đổi đó có liên quan đến nội
dung thực hiện của hàm được thiết kế. Trong mọi trường hợp, một hàm sẽ nhận dữ
liệu thô, điều tác nó, rồi trả về chỉ một giá trị.Để tránh các điều lệnh gán vô bổ và làm
rối tung vấn đề, ta có một cấu trúc mới : thủ tục Sub. Thủ tục Sub là công cụ chọn lựa
trong trường hợp chỉ muốn viết một khối mã thực hiện một nội dung nào đó, cũng
tương tự như thủ tục Event.
Giống như trong thủ tục Function, ta thường dùng Tools / Add Procedure báo
cho Visual Basic biết muốn định nghĩa một thủ tục Sub. Nhưng có trường hợp, ta
nhắp nút tùy chọn Sub. Dưới đây là cấu trúc đơn giản nhất của thủ tục Sub – song
vẫn đủ mạnh để phiên dịch đề cương :
Public Sub Chorus ( )
25


×