Hiện nay chúng ta đang sống và làm việc trong môi trường của khoa học kỹ thuật và công nghệ ngày càng phát triển. Một trong những ngành phát triển mạnh nhất đó là công nghệ thông tin và việc ứng dụng nó vào trong cuộc sống của chúng ta. Công nghệ thông tin phát triển kèm theo nó là khoa học phát triển, con người phát triển, mọi hoạt động của con người cũng từng bước được cải thiện. Công nghệ thông tin là một cuộc cách mạng, một bước tiến lớn của loài người.
Vấn đề đáng quan tâm hiện nay là làm thế nào để quản lý thông tin một cách đầy đủ nhất và hiệu quả nhất, việc quản lý thông tin sao cho người xem có thể tiếp cận thông tin không mấy khó khăn.
“Quản lý hồ sơ nhân sự” là một chương trình cần đòi hỏi mỗi người làm quản lý cần hiểu rõ ý nghĩa của việc lập trình để quản lý. Trong trường Cao Đẳng Nghề vấn Âu Lạc Yên Bái đề quản lý cán bộ là một trong những vấn đề mấu chốt trong công tác hoạt động của trường nói riêng và của Bộ nói chung. Tuy nhiên nếu chưa có sự hỗ trợ nhiều của hệ thống máy tính, thì việc đưa ra những quyết định sẽ gặp phải nhiều khó khăn. Về thời gian, sổ sách, nếu được sự hỗ trợ của máy tính thì công việc đó sẽ trở nên đơn giản hơn và dễ dàng hơn.
62 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 2251 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng chương trình quản lý hồ sơ nhân sự trường cao đẳng nghề Âu Lạc Yên Bái, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài Luận
Đề Tài:
Xây dựng chương trình quản lý hồ sơ nhân sự trường cao đẳng nghề
Âu Lạc Yên Bái
MỤC LỤC
LỜI NÓI ĐẦU
Hiện nay chúng ta đang sống và làm việc trong môi trường của khoa học kỹ thuật và công nghệ ngày càng phát triển. Một trong những ngành phát triển mạnh nhất đó là công nghệ thông tin và việc ứng dụng nó vào trong cuộc sống của chúng ta. Công nghệ thông tin phát triển kèm theo nó là khoa học phát triển, con người phát triển, mọi hoạt động của con người cũng từng bước được cải thiện. Công nghệ thông tin là một cuộc cách mạng, một bước tiến lớn của loài người.
Vấn đề đáng quan tâm hiện nay là làm thế nào để quản lý thông tin một cách đầy đủ nhất và hiệu quả nhất, việc quản lý thông tin sao cho người xem có thể tiếp cận thông tin không mấy khó khăn.
“Quản lý hồ sơ nhân sự” là một chương trình cần đòi hỏi mỗi người làm quản lý cần hiểu rõ ý nghĩa của việc lập trình để quản lý. Trong trường Cao Đẳng Nghề vấn Âu Lạc Yên Bái đề quản lý cán bộ là một trong những vấn đề mấu chốt trong công tác hoạt động của trường nói riêng và của Bộ nói chung. Tuy nhiên nếu chưa có sự hỗ trợ nhiều của hệ thống máy tính, thì việc đưa ra những quyết định sẽ gặp phải nhiều khó khăn. Về thời gian, sổ sách, nếu được sự hỗ trợ của máy tính thì công việc đó sẽ trở nên đơn giản hơn và dễ dàng hơn.
Được sự hướng dẫn của các thầy (cô) giáo trong khoa CNTT Đại Học Thái Nguyên và các bạn cùng lớp sau một thời gian nghiên cứu em đã hoàn thành đề tài “ Xây dựng chương trình quản lý hồ sơ nhân sự trường cao đẳng nghề Âu Lạc Yên Bái”. Vì thời gian hạn chế và lượng kiến thức còn eo hẹp, chưa có kinh nghiệp lập trình nên trong chương trình chắc chắn còn rất nhiều chỗ thiếu sót. Kính mong các thầy (cô) giáo cùng các bạn đóng góp ý kiến để chương trình được hoàn thiện hơn.
Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của cô giáo Đào Thị Thu
và các bạn.
Yên Bái Ngày 19 , tháng 08 năm 2009
Sinh viên thực hiện
Nguyễn Ngọc Luân
CHƯƠNG 1
GIỚI THIỆU VỀ NGÔN NGỮ SỬ DỤNG
1.1 Giới thiệu chung về Microsoft Access
1.1.1 Giới thiệu chung
Microsoft Access là hệ quản trị cơ sở dữ liệu trên môi trường Window, trong đó có sẵn các công cụ hữu hiệu và tiện lợi để tự động sản sinh chương trình hầu hết cho các bài toán thường gặp trong quản lý, thống kê, kế toán. Với Access người dùng không phải viết từng câu lệnh cụ thể như trong Pascal, C hay Foxpro mà chỉ cần tổ chức dữ liệu và thiết kế các yêu cầu, công việc cần giải quyết.
Sáu đối tượng công cụ mà Access cung cấp là: Bảng (Table), truy vấn (Query),
mẫu biểu (Form), báo biểu (Report), macro và đơn thể (Module).
- Bảng có cấu trúc tương tự như một tệp DBF của Foxpro được dùng để lưu trữ dữ liệu của CSDL. Một CSDL thường gồm nhiều bảng có quan hệ với nhau.
- Truy vấn là công cụ mạnh của Access dùng để tổng hợp, sắp xếp, tìm kiếm dữ liệu trên các bảng.
- Mẫu biểu thường dùng để tổ chức cập nhật dữ liệu cho các bảng và thiết kế giao diện chương trình. Ngoài ra mẫu biểu còn cho phép nhập dữ liệu riêng lẻ từ bàn phím.
- Báo biểu là công cụ tuyệt vời phục vụ công việc in ấn, nó cho các khả năng: in dữ liệu dưới dạng bảng, in dưới dạng báo biểu, sắp xếp tổng hợp dữ liệu trước khi in.
- Macro bao gồm một dãy các hành động dùng để tự động hoá một loạt các thao tác. Macro thường dùng với mẫu biểu để tổ chức giao diện chương trình.
- Đơn thể là nơi chứa các hàm, thủ tục viết bằng ngôn ngữ Access VBA.
Mặc dù các công cụ mà Access cung cấp khá đầy đủ, nhưng không thể bao quát được mọi vấn đề đa dạng của thực tế. Các hàm, thủ tục của VBA sẽ hỗ trợ giải quyết những phần việc đó mà công cụ không làm nổi, do đó làm tăng sức mạnh của Access.
1.1.2 Thiết kế giao diện
Bảng
* Bảng gồm nhiều trường, dùng để chứa dữ liệu. Công cụ bảng để làm việc gồm:
- Tạo bảng mới.
- Đặt khoá chính.
- Nhập dữ liệu vào bảng.
- Chỉnh sửa cấu trúc của bảng.
- Thiết lập quan hệ giũa các bảng.
- Sử dụng thuộc tính của trường để trình bầy dạng bảng của trường và kiểm tra tính hợp lệ của kiểu dữ liệu khi nhập liệu.
* Cửa sổ bảng chia làm 2 phần:
- Phần trên: gồm 3 cột (Field Name, Data Type, Description) dùng để khai báo trường của bảng, mỗi trường khai báo trên một dòng.
- Phần dưới: dùng để quy định các thuộc tính cho các trường.
Truy vấn
Truy vấn là công cụ cực mạnh của Access dùng để tổng hợp, sắp xếp, tìm kiếm dữ liệu.
* Các bước để tạo một truy vấn mới:
- Chọn nguồn dữ liệu cho truy vấn mới gồm các bảng và các truy vấn đã được tạo từ trước.
- Tạo lập quan hệ giữa các bảng, truy vấn nguồn.
- Chọn các trường từ các bảng, truy vấn nguồn để đưa vào truy vấn mới.
- Đưa vào các điều kiện để chọn lọc mẫu tin thoả mãn các điều kiện đưa vào.
- Chọn các trường dùng để sắp xếp các mẫu tin trong Dynaset. Nếu không chọn trường sắp xếp thì các mẫu tin trong Dynaset được hiển thị theo thứ tự như trong các bảng nguồn.
- Xây dựng các cột (trường) mới từ các trường đã có trong các bảng, truy vấn nguồn.
* Các loại truy vấn:
- Select query: Thể hiện việc chọn lựa các trường cần hiển thị.
- Crosstab query: Thể hiện dữ liệu dạng hàng cột.
- Action query: Tạo bảng mới, thêm, xoá, sửa các mẫu tin trong bảng.
- Union query: Kết hợp các trường tương ứng từ 2 hay nhiều bảng.
Mẫu biểu
Là công cụ cực mạnh của Access dùng để: Thể hiện và cập nhật dữ liệu cho các bảng, tổ chức giao diện chương trình.
* Form
Form là biểu mẫu của mỗi ứng dụng trong Access. 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.
* Tools Box ( Hộp công cụ )
Bản thân hộp công cụ 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 Access. 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 Access. Các đối tượng trong thanh công cụ sau đây là thông dụng nhất.
a/ 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.
b/ 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 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 dùng để định dạng một hộp văn bản hoặc một điều khiển 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.
c/ 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 của hộp Text Box.
d/ 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 nó.
c/ List Box (hộp danh sách) và Combo box(hộp lựa chọn)
Là các điều khiển dùng để nhập liệu bằng các chọn từ một bảng danh sách. List box và combo box giống nhau là ở cả 2 đều có một nguồn dữ liệu để tạo nên bảng chọn. List box luôn được hiển thị, còn Combo box chỉ được mở khi bấm chuột tại nút mũi tên đặt bên phải.
Báo biểu
Là công cụ thuận tiện để tổ chức in dữ liệu của một bảng, truy vấn. Các khả năng của báo biểu:
- In dữ liệu dưới dạng bảng, dạng biểu.
- Sắp xếp dữ liệu trước khi in.
- Sắp xếp và phân nhóm dữ liệu.
- In dữ liệu từ nhiều bảng, truy vấn có liên quan trên cùng một báo cáo.
* Các công cụ tương tự như mẫu biểu.
Macro
Là một đoạn chương trình, gồm một dãy các hành động, dùng để tự động hoá các thao tác và tổ chức giao diện chương trình.
Trình tự thao tác để tạo một macro:
- Trong cửa sổ Database chọn mục macro.
- Chọn New hiện ra cửa sổ.
- Chọn các hành động ở cột Action.
- Xác định các đối tượng cho hành động vừa chọn.
- Ghi thiết kế và đặt tên.
- Đóng cửa sổ thiết kế.
1.1.3 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 Access là Access xử lý mã để đá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. Access 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.
1) 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 một lúc.
2) 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 đối tượng trên General lưu giữ mã chung mà tất cả các thủ tục đính kèm với form có thể sử dụng.
3) 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 chọn trong hộp liệt kê Object nhận ra.
4) Biến
Trong Access, các biến [variables] lưu giữ thông tin (các giá trị). Khi dùng một biến, Access xác lập bộ nhớ trong máy tính để lưu trữ thông tin.
Trong Access, tên biến có thể dài tới 225 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
a. Kiểu String
Các biến chuỗi [String] lưu giữ kí tự. Một chuỗi có thể có một hay nhiều kí tự. Tất nhiên, biến lưu trữ đượ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 dấu một đồng đô la ($) vào cuối tên biến: Astring Variable.
Trên lý thuyết các biến chuỗi có thể lưu trữ khoảng 2 tỷ kí tự. Trong thực tế, một máy cụ thể có thể lưu trữ í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 Windown hoặc số lượng dùng chung biểu mẫu.
b. 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 nhanh xong bị hạn chế trong phạm vi này. Dấu định danh được dùng là dấu “% “.
c. 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 và +2,147,483,647 dấu định danh được dùng là dấu “ & “.
d. Kiểu Double
Kiểu dữ liệu chính đôi [Double] 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ứ vào 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 phép tính khoa học trong Access. Dấu định danh dùng cho biến chính đôi là dấu “#”.
Phải dùng # 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 Access 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.
Ví dụ: Adouble PrecitionyVariable # = 12.345 #
e. 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. Ta cho phép gán cho các biến ngày tháng bằng dấu #.
Ví dụ : ngày = # january,1,2000 #
f. 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 Access nhận được trong một chỗ. Nếu ta không báo cho Access biết kiểu thông tin mà một biến đang lưu trữ, nó sẽ dùng kiểu variant. Ngoài cách dùng dấu định danh để chỉ định kiểu, Access 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.4 Điều khiển luồng chương trình
1/ Câu lệnh If:
Dạng 1: If then [Else lệnh 2]
Dạng 2: If then
Else
End If
Dạng 3: If then
ElseIf then
……..
ElseIf then
[Else nhóm lệnh (n+1)]
Endif
2/ Câu lệnh Select …Case
Cú pháp
Select Case
Case:
………..
Case:
[Case else
]
End select
3/ Câu lệnh For…Next
Cú pháp
For counter=Start to End [Step step]
[Exit For]
Next counter
Trong đó
- Counter: là biến đếm kiểu số nguyên
- Start: là giá trị bắt đầu của Counter
- End: là giá trị kết thúc của Counter
- Step: bước nhảy của mỗi lần lặp, nếu không có giá trị này thì mặc định bước nhảy bằng 1.
4/ Cấu trúc lặp Do…While
Cú pháp
Do While
[Exit Do]
Loop
1.1.5 Các hàm về chuỗi
Do thông tin trong hộp văn bản Access luôn được lưu trữ dưới dạng văn bản, nên trong Access, các chuỗi tỏ ra quan trọng hơn nhiều so với trong Access bình thường. Một chuỗi chẳng qua là một nhóm kí tự được bao trong dấu nháy kép. Khi có người nhập thông tin vào hộp văn bản, Access luôn lưu trữ dưới dạng một chuỗi. Do đó, cho dù ta có một hộp văn bản chú ý để lưu trữ 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à gộp 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 tuỳ ý trước khi Access thực hiện điều lệnh gán. 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 ký 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: Mid (String, vt as long [, n as long ])
Trích ra n kí tự bắt đầu từ vị trí của xâu String, nếu bỏ qua n thì lấy từ kí tự vt đến kí tự cuối cùng (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ẽ lựa chọn số lượng kí tự mà ta muốn kéo ra. Hai tùy chọn 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 Access có thể làm tròn để nằm trong miền này.
Mid là một hàm khóa 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 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.
* Hàm Left và Right
Hàm Mid có hai hàm 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ở nê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 vào vị trí thứ hai trong hàm Mid.
Cú pháp: Left(String, n as long) -> Trích ra n kí tự trái của string.
Right(String, n as long) -> Trích ra n kí tự phải của string.
* Hàm InStr
Cú pháp: InStr(vt, st1, st2 [kiểu so sánh])
Cho biết chuỗi st2 có xuất hiện trong chuỗi st1 bắt đầu tính từ vị trí vt hay không. Nếu có giá trị hàm bằng vị trí xuất hiện đầu tiên. Nếu không, hàm cho giá trị 0. Tham số kiểu so sánh có thể nhận các giá trị sau (vbDatabaseCompare, vbTextCompare, vbbinaryCompare).
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ố. Tuy nhiên, có thể dùng hàm Mid rà qua phiê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 của con “). 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 thấy, nếu để chố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 Access 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ự 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.
* Hàm Str ( Str$ )
Cú pháp: Str$(number)
Hàm này cho phép chuyển đổi giá trị số number sang giá trị string. Access 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, xong hàm Str vẫn là đơ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, xong không xóa sạch chúng hoàn toàn.
1.1.6 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à để Access thực hiện một phần công việc. Đây là vai trò của chương trình, 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ừ khi gán 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.
[Static] [Private] [Public] Function ([danh sách đối]) [as type]
[Các câu lệnh]
[Tên_hàm = biểu_thức]
[Exit Function]
[Các câu lệnh]
[Tên_hàm = biểu thức]
End Function
trong đó danh sách đối đều là biến. Các biến này được xem như những tham 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. 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.
a/ 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 dưới dạng tham số, hoặc ảnh hưởng đến các biến cấp Form, xong không thể làm thế trừ khi 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.
Public Sub Chous ()
‘ nhiều lệnh in’
End Sub
Sau Sub là các dòng chứa các điều lệnh tạo thành thủ tục hay còn gọi là thân của thủ tục. Cuối cùng, ta có các từ khóa End Sub nằm trên các dòng riêng biệt. Cũng như trong các thủ tục sự kiện, các từ khoá này được dùng để nêu rõ điểm cuối của một thủ tục chung.
Các gía trị của các đối số sẽ được chuyển cho các tham số tương ứng trong thủ tục và các điều khiển bên trong thủ tục Sub được thi hành. Khi đạt đến EndSub, việc thi hành sẽ tiếp tục với các dòng theo sau lệnh gọi đến thủ tục Sub. Cũng như các thủ tục Function, ta phải dùng cùng số lượng tham số như số lượng tham số đã định nghĩa trong thủ tục Sub và chúng phải có cùng kiểu tương thích.
b/ Thủ tục truyền tham số
Cú pháp:
Private/ Public ( As …)
Tùy thuộc muốn nó nhận bao nhiêu tham số bạn sẽ khai báo bấy nhiêu tên t