Mục đích của đồ án này là tin học hoá việc quản lý nhân sự của Chi cục Dự trữ Sóc Sơn, thực hiện tự động hoá một số công việc thủ công. Khi đưa chương trình vào ứng dụng phần thao tác của người sử dụng chỉ đơn giản là số liệu các thông tin gốc của đối tượng cần quản lý.
Hệ thống tự động hoá xử lý theo các yêu cầu, hệ thống con cho phép in các báo cáo, các danh sách thống kê, đảm bảo cung cấp thông tin chính xác, kịp thời và trung thực phục vụ cho công tác quản lý và chỉ đạo.
Là một đề tài nghiên cứu có ứng dụng thực tế, kinh nghiệm nghiên cứu chuyên môn chưa nhiều, hơn nữa trong một thời gian ngắn vừa nghiên cứu, vừa viết chương trình, vì vậy chương trình không tránh khỏi những mặt hạn chế và thiếu xót. Xin kính mong được sự chỉ bảo và góp ý giúp tôi hoàn thành đồ án này.
Một lần nữa tôi xin chân thành cảm ơn thày giáo Hồ Văn Hương, cảm ơn các thầy, các cô đã hướng dẫn trực tiếp tôi hoàn thành đồ án này, tôi cũng xin chân thành cảm ơn thầy giáo phản biện và các thầy cô, bạn bè đồng nghiệp đã giúp đỡ tôi hoàn thành bản đồ án này./.
94 trang |
Chia sẻ: oanh_nt | Lượt xem: 1289 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Tin học hoá việc quản lý nhân sự của Chi cục Dự trữ Sóc Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
quan hệ ( Relation Database Management System ) dùng trong văn phòng ( nằm trong bộ Microsft Professional Word, Exccel, Power Point ) do đó Microsft đặc biệt chú trọng đến người sử dụng cuối (end user) hơn là nhà phát triển. Điều này làm cho công cụ hỗ trợ thiết kế ( giao diện thiết kế, các Wizard cho phép tự động hoá các quá trình thủ công trong quá trình thiết kế form, table, query) của Access tỏ ra rất mạnh, hơn hẳn Visual Basis.
Chẳng hạn nhiều lập trình viên kinh nghiệm khi viết các câu lệnh SQL trong Visual Basis thường dùng kềm bộ thiết kế Query trong Access để sinh ra trong câu lệnh SQL một cách dễ dàng.
Access Basic có những khác biệt nhất định so với Visual Basis. Chỉ đến phiên bản Access 7.0. Visual Basis về sau và Access mới dùng chung ngôn ngữ lập trình mà Microsft gọi là VBA - Visual Basis for Application.
Ta thấy Access và Visual Basis khác nhau ở cách chế tạo ra các ứng dụng so với các công cụ thiết kế khác nhau nhưng thành phần xử lí CSDL thì có nhiều điểm tương đồng vì cùng sử dụng Jet Engine.
Visual Basis cho phép biện dịch các ứng dụng thành tập tin EXE, trong khi Access ta phỉ phân phối luôn cả tài nguyên thiết kế. Khái ngườiệm CSDL trong Access bao gồm cả phần dữ liệu (các bảng) và phần ứng dụng ( query, form, table, report, macro, module ), trong khi đối với các hệ khác, CSDL chỉ bao gồm phần dữ liệu. Chiến lược bảo mật tài nguyên thiết kế phải được đặt lên hàn đầu khi chọn Access làm công cụ phát triển ứng dụng.
Hệ thống giao diện hỗ trợ thiết kế ( đặc biệt trong Access ) cũng khá rắc rối khiến người chưa có kinh nghiệm hay lẫn lộn giữa các thức dành cho người dùng cuối và những thứ dành cho người lập trình, thứ chỉ dùng cho thiết kế và thứ có thể mang vào ứng dụng.
Chương III
Thiết kế Cơ sở dữ liệu
I. Thông tin vào ra của hệ thống
Qua tìm hiểu lưu trữ HSCB của phòng tổ chức trong cơ quan và căn cứ vào các thông tin lưu trữ trong sổ lý lịch HSCB ta tạm chia hai loại thông tin như sau:
T.tin vào HT
T.tin ra khỏi hệ thống
HT
Quản lý cán bộ
1.1. Thông tin vào hệ thống
- Thông tin về hồ sơ cá nhân (Các CB mới được chuyển đến hay mới được biên chế), nó bao gồm tất cả các trường được lưu trữ trong sổ hồ sơ lý lịch cán bộ, khi nhập HS thì cán bộ quản lý phải nhập toàn bộ các thông tin liên quan đến cán bộ trong sổ lý lịch cán bộ vào máy tính.
- Thông tin thay đổi về cá nhân hàng năm như: lên lương, lên chức vụ, Đảng, Đoàn...hàng năm CBTC yêu cầu những công chức trong cơ quan khai thêm phần bổ sung lý lịch cá nhân, đây là việc làm bắt buộc mà các CB về quản lý nhân sự phải cập nhật những thông tin thay đổi đó vào trong sổ lý lịch CB.
- Thông tin về học tập, bằng cấp: hàng năm cơ quan thường cử CB đi học ở các trường ĐH và các lớp bồi dưỡng nghiệp vụ của ngành, số CB đã hoàn thành nhiệm vụ về tiếp tục công tác trong cơ quan.
- Thông tin khen thưởng kỷ luật: đây là những thông tin có thể xảy ra hàng năm đối với CBCC vì vậy nó cũng được coi là thông tin vào của hệ thống.
- Thông tin về cán bộ thuyên chuyển công tác: Cán bộ trong các đơn vị có thể chuyển qua các phòng ban khác nhưng vẫn nằm trong cơ quan, để xử lý việc thay đổi này bằng cách ta chỉ thay đổi mã phòng hay mã ban còn các thông tin khác vẫn giữ nguyên.
- Thông tin về cán bộ bị chết đột xuất, hay thôi việc đây là phần thay đổi mà không dự đoán trước được, việc này thường ít xảy ra nhưng chúng ta cũng cần phải tính đến.
1.2. Thông tin ra khỏi hệ thống
Trích yếu lý lịch
Các bảng thống kê theo yêu cầu của lãnh đạo
Tìm kiếm thông tin về một cá nhân nào đó
Thống kê theo dõi nhân sự toàn cơ quan
Thống kê về tình hình học vấn
Danh sách đề bạt bổ nhiệm
Thống kê chức vụ
Thống kê trình độ chính trị
Thống kê trình độ ngoại ngữ
Thống kê phòng, ban
Danh sách CB chuyển công tác
Dach sách CB lên lương
Danh sách CB nghỉ hưu
Danh sách CB đi học
Thống kê khen thưởng kỷ luật.
II. Thiết kế cơ sở dữ liệu cho hệ thống quản lý cán bộ
Sự thay đổi thông tin vào đều ảnh hưởng tới thông tin ra khỏi hệ thống. Mọi sự thay đổi tạo nên luồng dữ liệu mang tính tự nhiên chịu sự ảnh hưởng của hệ thống DL và như vậy để xây dựng được chương trình ta có thể chia thông tin thành những tệp chính gồm: các tập tin dùng để lưu giữ thông tin và tập tin thống kê định kỳ, tìm kiếm theo yêu cầu nào đó của người quản lý.
Trong hệ thống quản lý thông tin vấn đề quan tâm là thông tin của hệ thống được lấy ở đâu, việc khai thác DL như thế nào? người sử dụng khai thác chương trình như: nhập, sửa, thêm bớt DL do vậy khi thiết kế File CSDL, chúng ta cần quan tâm đến DL nào cần lưu trữ, kiểu DL được lưu trữ, số bộ nhớ giành cho nó để đỡ lãng phí bộ nhớ. Việc tách thông tin làm cho CSDL gọn nhẹ hơn, đồng thời việc tổ chức lưu trữ thông tin khoa học hơn dẫn đến công việc tìm kiếm thông tin sẽ nhanh hơn, làm giảm bộ nhớ và tần số truy cập. Hơn nữa lưu trữ khoa học sẽ đỡ thông tin chồng chéo nhau, thông tin không được chuẩn hoá dẫn đến dư thừa thông tin và tìm kiếm sẽ khó khăn và thiếu chính xác...
Từ những nhận định trên ta thiết kế các trường DL tương ứng với các kiểu DL như sau:
- Mã nhân viên: Tên trường là MANV có kiểu DL là Text độ rộng là 10.
- Tên phòng ban: Tên trường là: TENPHONG có kiểu DL là Text độ rộng là 20.
- Chức vụ: Tên trường là CV có kiểu DL là Text độ rộng là 20.
- Họ và tên: Tên trường là HOTEN có kiểu DL là Text, độ rộng là 30.
- Ngày sinh: Tên trường là NSINH có kiểu DL là Date có độ rộng là 10.
- Nơi sinh (nơi mình sinh ra): Tên trường là NOISINH có kiểu DL là Text có độ rộng là 30.
- Quê quán (nơi sinh của bố mẹ đẻ): Để phù hợp dùng kiểu DL Text có độ rộng là 30, tên trường là QUEQUAN
- Giới tính: Tên trường là GIOITINH, có kiểu DL là Text có độ rộng là 3.
- Nơi thường trú: Tên trường là NOITT, có kiểu DL là Text có độ rộng là 30.
- Địa chỉ liên lạc: Tên trường là DIACHI, có kiểu DL là Text độ rộng là 30.
- Điện thoại: Tên trường là ĐT, có kiểu DL là Text độ rộng là 10.
- Dân tộc: Tên trường là DANTOC, có kiểu DL là Text độ rộng 10 (kinh, tày nùng...).
- Trình độ học vấn: Tên trường là TRINHDOHV, có kiểu DL là Text, độ rộng 30 (12/12, C/môn KT, Kỹ sư, giáo sư...).
- Tôn giáo: Tên trường là TONGIAO, có kiểu DL là Text, độ rộng 15 (phật giáo, hồi giáo, cao đài, hoà hảo...).
- Số chứng minh nhân dân: Tên trường SOCMND, có kiểu DL là Text, độ rộng 13.
- Ngày cấp: Tên trường là NGAYCAP, có kiểu DL Date, độ rộng 10.
- Nơi cấp: Tên trường là NOICAP, có kiểu DL là Text, độ rộng 30 (CA tỉnh hoặc TP trực thuộc TW....)
- Thành phần gia đình: Bần nông, CB, tiểu tư sản...có kiểu DL Text độ rộng 20, tên trường là THANHPHANGĐ.
- Trình độ chính trị: Sơ cấp, trung cao cấp...tên trường là TRINHDOCT, có kiểu DL Text độ rộng 15.
- Trình độ ngoại ngữ: ĐH Anh ngữ, Pháp ngữ, Trung ngữ, có kiểu DL là Text, độ rộng là 43, tên trường là TRINHĐÔNN
- Ngày vào ngành: Tên trường là NGAYVAON có kiểu DL là Date, động rộng 10.
- Ngày vào ĐCSVN: Tên trường là NGAYVAOĐ kiểu DL là Date, có độ rộng là 40.
- Chức vụ: Tên trường là CHUCVU, có kiểu DL Text, độ rộng là 20 (chức vụ đảng, đoàn thể, như: giám đốc, trưởng phòng, bí thư...).
- Bậc lương (hệ số lương, mức bậc lương): Có kiểu DL NUMBER, độ rộng là 8, trường DL là BACLUONG
- Khen thưởng (năm khen thưởng, nội dung khen thưởng, cấp quyết định): Tên trường là KHENTHUONG, kiểu DL là Text, độ rộng 30.
- Kỷ luật (tháng, năm, hình thức kỷ luật, cấp quyết định): Tên trường KYLUAT, kiểu dữ liệu là Text, độ rộng.
1.TĐNN. MDB (trình độ ngoại ngữ).
Do số ngoại ngữ hạn chế nên ta dùng độ rộng của trường này là 2 và nó có thể lưu trữ tối đa là 100 tên ngoại ngữ khác nhau, tên trường ngoại ngữ như: tiếng Anh, tiếng Pháp, tiếng Đức, tiếng Trung Quốc... và trường này có độ rộng là 15.
STT
Tên trường
Kiểu DL
Độ rộng
Null
Giải thích
1
MaNN
Text
2
No
Mã ngoại ngữ
2
TĐNN
Text
15
No
Tên ngoại ngữ
3
GC
Text
255
yes
Ghi chú
2.TĐHV.MDB (Trình độ học vấn)
Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
MaHV
Text
2
Mã học vấn
2
TĐHV
Text
15
Bằng cấp mã CB đạt được
3
GC
Text
255
Ghi chú
3.CHUCVU.MDB (Chức vụ).
File này chứa danh sách các chức vụ tương đương của CB, gồm có giá trị như: Giám đốc, phó giám đốc, trưởng, phó phòng, cán bộ, có 2 trường là: Mã và tên chức vụ kiểu DL là Text, độ rộng là 20.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
MaCV
Text
2
Mã chức vụ
2
CHUCVU
Text
20
Chức vụ
3
GC
Text
255
Ghi chú
4.PHONG.MDB (Phòng).
File này gồm danh sách các phòng trong cơ quan gồm mã nhân viên và tên phòng, có 2 trường, mã có độ rộng là 2 phòng có độ rộng là 40, có kiểu DL là Text.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
MaP
Text
2
Mã phòng
2
PHONG
Text
40
Tên phòng
3
GC
Text
255
Ghi chú
5.DT.MDB (Dân tộc)
Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
MaDT
Text
2
Mã dân tộc
2
TDT
Text
15
Tên dân tộc
3
GC
Text
255
Ghi chú
6.CT.MDB (Chính trị)
Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
MaCT
Text
2
Mã chính trị
2
TCT
Text
30
Tên chính trị
3
GC
Text
255
Ghi chú
7.HOSOCB.MDB ( Hồ sơ cán bộ).
File HOSOCB (Hồ sơ cán bộ) là File chính của hệ thống quản lý CB, trong hồ sơ chúng ta lưu trữ tất cả các thông tin liên quan đến CB. Do đó nó khá lớn và cồng kềnh nên ta phải lược bớt sao cho thông tinh lưu trữ vừa đủ nhưng không thiếu và các thông tin phải được chuẩn hoá hay được thay thế bằng các mã để cho DL càng gọn nhẹ.
STT
Tên trường
Kiểu DL
Độ rộng
Giải thích
1
Manv
Text
10
Mã nhân viên
2
TenPB
Text
20
Tên phòng ban
3
MaCV
Text
2
Mã Chức vụ
4
Hoten
Text
30
Họ tên
5
Ngaysinh
Date
10
Ngày sinh
6
Noisinh
Text
30
NơI sinh
7
Quequan
Text
30
Quê quán
8
Gioitinh
Text
3
Giới tính
9
Noithuongtru
Text
30
NơI thường trú
10
Điachi
Text
30
Địa chỉ liên lạc
11
Tel
Text
10
Điện thoại
12
MaDT
Text
2
Mã Dân tộc
13
MaTDHV
Text
2
Mã Trình độ học vấn
14
Tongiao
Text
15
Tôn giáo
15
So CMND
Text
15
Số chứng minh nhân dân
16
Ngaycap
Date
10
Ngày cấp
17
Noicap
Text
30
Nơi cấp
18
Thanhphangđ
Text
10
Thành phần gia đình
19
Trinhdoct
Text
15
Trình độ chính trị
20
MaNN
Text
2
Mã Trình độ ngoại ngữ
21
Ngayvn
Date
10
Ngày vào ngành
22
Ngayvao ĐCSVN
Date
10
Ngày vào Đảng CSVN
23
Chuvu
Text
20
Chức vụ hiện tại
24
Bacluong
Text
8
Bậc lương
25
Khenthuong
Text
30
Khen thưởng
26
Kyluat
Text
20
Kỷ luật
27
Namnghihưu
Text
10
Năm nghỉ hưu
28
MaCT
Text
2
Mã Chính trị
3.2. Biểu đồ thực thể liên kết
3.4. Thiết kế modul chương trình
Chương trình quản lý cán bộ bao gồm nhiều chức năng riêng biệt như đã được mưu tả trong biểu đồ chức năng của hệ thống, như vậy khi thiết kế chương trình quản lý cán bộ ta thiết kế từng modul cho mỗi chức năng tương ứng, như vậy khi chương trình lỗi sẽ dễ phát hiện và sửa chữa, mỗi modul chính ta lại chia tiếp thành modul con, cứ như vậy cho đến khi không chia được nữa thì dừng.
Chương 4
phân tích và thiết kế Hệ thống
I. Mục đích
Phân tích là công việc đầu tiên không thể thiếu được trong quá trình xây dựng hệ quản trị trên máy tính. Không thể đưa tin học hóa trong vấn đề quản lý mà không qua giai đoạn phân tích. Hiệu quả đem lại của hệ thống phụ thuộc vào độ nông sâu của kết quả phân tích ban đầu
Mục đích của nó là xác định xem bộ phận nào của hệ thống nên xử lý bằng máy tính, và bộ phận nào đó con người thực hiện. Tổng quan về các công tác quản lý ở trên, ta thấy rằng chương trình quản lý nhân sự khi chưa sử dụng máy tính, các công cụ như thêm nhân viên, thêm nhân viên… đều do con người làm, nên việc nhập thêm, lưu trữ và tìm kiếm rất khó khăn vì số lượng Tính toán rất lớn.
Sơ đồ chức năng của hệ thống quản lý cán bộ
Quản lý CB
Cập nhật
Tra cứu
Báo cáo
Hồ sơ
Họ và tên
Danh sách CB phòng
Danh mục phòng ban
Chức vụ
Danh sách CB lên lương
Danh mục chức vụ
Tra cứu theo yêu cầu
Danh sách CB nghỉ hưu
In CB chuyển CT
Danh mục trình độ
Thay đổi nhân sự
Thoát
II. Sơ đồ luồng dữ liệu
Để xác định được yêu cầu của công việc thì người ta phải phân tích sơ đồ luồng dữ liệu, sơ đồ luồng dữ liệu nêu ra một mô hình về hệ thống thông tin chuyển vận qua các quá trình hoặc các chức năng khác nhau. Điều quan trọng là phải có sẵn các thông tin vào và biết được yêu cầu của thông tin ra trước khi cho thực hiện một quá trình.
Các thành phần của biểu đồ luồng dữ liệu
ã Các chức năng xử lý: Là các chức năng dùng để chỉ ra một chức năng hay một quá trình. Chức năng quan trọng trong mô hình luồng dữ liệu là biến đổi thông tin từ đầu vào theo một cách nào đó.
ã Tác nhân ngoài: Là một người, một nhóm người ở bên ngoài lĩnh vực nghiên cứu của hệ thống, nhưng có trao đổi thông tin về hệ thống.
ã Tác nhân trong: Là một chức năng hoặc một quá trình ở bên trong hệ thống được mô tả ở trang khác của biểu đồ, nhưng có trao đổi thông tin với hệ thống.
ã Luồng dữ liệu: Là luồng thông tin vào ra của một quá trình hoặc một chức năng xử lý, mũi tên chỉ ra hướng của luồng thông tin.
ã Kho dữ liệu: Là luồng thông tin lưu trữ trong một khoảng thời gian để một hoặc nhiều chức năng truy nhập vào, chúng có thể là các tệp dữ liệu được lưu trong máy tính.
1. Biểu đồ luồng DL mức ngữ cảnh
Báo cáo
Ban tổ chức CB
TT thay đổi NS
Hệ thống
quản lý cán bộ
T.tin tra cứu
T.tin về CB
Cán bộ
Biểu đồ mức ngữ cảnh cho chúng ta thấy cái nhìn khái quát của hệ thống. Đây là giai đoạn hoạch định ban đầu của quá trình phân tích được dùng để vạch phạm vi hoạt động của hệ thống, nó bao gồm các thành phần như sau:
- Tác nhân ngoài hệ thống.
- Hệ thống
* Tác nhân ngoài "Cán bộ" của hệ thống nhân sự, cung cấp cho ta những thông tin trong hồ sơ cán bộ, thông tin này được cập nhật vào hệ thống lưu trữ và xử lý DL.
* Tác nhân ngoài "Phòng tổ chức" đưa vào những thông tin yêu cầu đối với hệ thống như: in danh sách những cán bộ, thống kê những cán bộ có độ tuổi < 40, trả lại những thống kê, báo cáo theo yêu cầu của cấp trên.
2. Biểu đồ luồng DL chức năng của hệ thống mức đỉnh.
Phòng tổ chức
Cán bộ
1. Nhập dữ
liệu
3. Báo cáo
Hồ sơ
Thay đổi
nhân sự
Báo cáo
Hồ sơ
Dữ liệu
đã xử lý
2. Tra cứu
yêu cầu
TT sau
tra cứu
Cho ta thấy được các chức năng chính của hệ thống, gồm phần DL tra cứu, thống kê theo định kỳ. Chức năng nhập DL làm nhiệm vụ nhập các thông tin về CB vào File HOSOCB, có kiểm tra DL trước khi nhập và nhập các danh mục phụ trợ như: danh sách phòng, đơn vị, chức vụ..., chức năng này rất quan trọng vì DL có chính xác hay không, cách lưu trữ thông tin có khoa học hay không đều ảnh hưởng rất lớn đến quá trình khai thác thông tin sau này.
Chức năng tra cứu: Dùng để phụ cho việc tra cứu tìm kiếm do lãnh đạo yêu cầu. Thông tin phục vụ cho việc tra cứu gồm các File CSDL mà hệ thống đang lưu trữ mà các yêu cầu mà người sử dụng đưa vào hệ thống.Chức năng nhập danh sách báo cáo thông thường được chia làm 2 loại: loại thứ nhất là chế độ thống kê thường xuyên có thể bất cứ lúc nào mà lãnh đạo yêu cầu, loại này thông tin thường phong phú vì có sự kết hợp giữa thông tin lưu trữ và thông
tin yêu cầu. Loại thứ hai là thống kê theo định kỳ, tháng, quý, năm nó mang tính ổn định.
Biểu đồ dòng dữ liệu mức 1 chức năng nhập
Ban tổ chức cán bộ
Hồ sơ cán bộ
1.1
Nhập, sửa
dữ liệu
1.2
danh mục chức vụ
Danh mục
Hồ sơ cán bộ
T.tin về cán bộ
Yêu cầu
sửa đổi
Dữ liệu
Dữ liệu
Dữ liệu
1.3
danh mục PB
Dữ liệu
T.tin
T.tin
1.4
danh mục TĐ
Dữ liệu
T.tin
Sơ đồ dòng dữ liệu mức 2 chức năng tra cứu
Ban tổ chức CB
Tra cứu theo tên
Tra cứu theo yêu cầu
Hồ sơ
Trả lời
Tra cứu theo CV
Trả lời
Yêu cầu
Trả lời
Dữ liệu
Dữ liệu
Yêu cầu
Yêu cầu
Biểu đồ dòng dữ liệu mức 3 chức năng báo cáo
DS cán bộ lên lương
DS cán bộ đơn vị
TK theo chức vụ
In CB chuyển c.tác
DS cán bộ
lên lương
DS cán bộ của đơn vị
T. kê theo chức vụ
In CB chuyển đổi
Phòng tổ chức cán bộ
DL đã qua xử lý
DL đã qua xử lý
DL đã qua xử lý
Hồ sơ
cán bộ
Yêu cầu
Yêu cầu
DL đã qua xử lý
Hồ sơ
cán bộ
Hồ sơ
cán bộ
Chương V
Các form chính và code chương trình
I . Một số form chính của chương trình
1. Form thông tin về cá nhân
Hình 2: Giao diện form-thông tin từng cá nhân
2. Form thông tin về trình độ học vấn
Hình 3: Giao diện form-thống kê về trình độ học vấn
3. Form thông tin về cán bộ đi học
Hình 4: Giao diện form-danh sách cán bộ đi học
4 Form danh sách cán bộ lên lương
Hình 5: Giao diện form-danh sách cán bộ lên lương
5. Form danh sách cán bộ nghỉ hưu
Hình 6: Giao diện form-danh sách cán bộ nghỉ hưu
II. Một số Code của chương trình
Option Explicit
Dim nut As Integer
Private Sub CboChucvu_GotFocus()
CboChucvu.SelStart = 0
CboChucvu.SelLength = Len(CboChucvu.Text)
End Sub
Private Sub CboHovaten_Click(Area As Integer)
AdoDihoc.Recordset.MoveFirst
Do Until AdoDihoc.Recordset.EOF
If AdoDihoc.Recordset.Fields(0).Value = CboHovaten.BoundText Then
CboMahoso.Text = AdoDihoc.Recordset.Fields(0).Value
TxtNgaysinh.Text = AdoDihoc.Recordset.Fields(2).Value
CboPhong.Text = AdoDihoc.Recordset.Fields("Phòng").Value
CboChucvu.Text = AdoDihoc.Recordset.Fields("Chức vụ").Value
TxtKhenthuong.Text = AdoDihoc.Recordset.Fields("Khen thưởng").Value
TxtKyluat.Text = AdoDihoc.Recordset.Fields("Kỷ luật").Value
Exit Do
End If
AdoDihoc.Recordset.MoveNext
Loop
End Sub
Private Sub CboHovaten_GotFocus()
CboHovaten.SelStart = 0
CboHovaten.SelLength = Len(CboHovaten.Text)
End Sub
Private Sub CboMahoso_Click(Area As Integer)
AdoDihoc.Recordset.MoveFirst
Do Until AdoDihoc.Recordset.EOF
If AdoDihoc.Recordset.Fields(0).Value = CboMahoso.BoundText Then
CboHovaten.Text = AdoDihoc.Recordset.Fields(1).Value
TxtNgaysinh.Text = AdoDihoc.Recordset.Fields(2).Value
CboPhong.Text = AdoDihoc.Recordset.Fields("Phòng").Value
CboChucvu.Text = AdoDihoc.Recordset.Fields("Chức vụ").Value
TxtKhenthuong.Text = AdoDihoc.Recordset.Fields("Khen thưởng").Value
TxtKyluat.Text = AdoDihoc.Recordset.Fields("Kỷ luật").Value
Exit Do
End If
AdoDihoc.Recordset.MoveNext
Loop
End Sub
Private Sub CboMahoso_GotFocus()
CboMahoso.SelStart = 0
CboMahoso.SelLength = Len(CboMahoso.Text)
End Sub
Private Sub CboPhong_GotFocus()
CboPhong.SelStart = 0
CboPhong.SelLength = Len(CboPhong.Text)
End Sub
Private Sub CmdCapnhat_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(App.Path & "\nhansu.mdb")
Set rs = db.OpenRecordset("Dihoc")
Select Case nut
Case 1:
On Error GoTo loi1:
If (IsNull(TxtNganhhoc.Text)) Or (IsNull(TxtTruonghoc.Text)) Then
MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
CboMahoso.SetFocus
Exit Sub
End If
rs.AddNew
rs.Fields(0).Value = UCase(CboMahoso.Text)
rs.Fields(1).Value = CboHovaten.Text
rs.Fields(2).Value = TxtNgaysinh.Text
rs.Fields(3).Value = CboPhong.Text
rs.Fields(4).Value = CboChucvu.Text
rs.Fields(5).Value = TxtKhenthuong.Text
rs.Fields(6).Value = TxtKyluat.Text
rs.Fields(7).Value = TxtNganhhoc.Text
rs.Fields(8).Value = TxtTruonghoc.Text
rs.Fields(9).Value = TxtNgayth.Text
rs.Update
Data1.Refresh
Data1.Recordset.MoveLast
Call Capnhat
Exit Sub
loi1:
MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
CboMahoso.SetFocus
Case 2:
On Error GoTo loi2:
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = CboMahoso.Text Then
rs.Delete
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi2:
MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
CboMahoso.SetFocus
Case Else:
MsgBox "Bạn chưa chọn trạng thái hoạt động của hệ thống", vbOKOnly + vbInformation, "Thông báo"
End Select
End Sub
Private Sub CmdDuyet_Click(Index As Integer)
Select Case Index
Case 0
Data1.Recordset.MoveFirst
Case 1
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
End If
Case 2
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Case 3
Data1.Recordset.MoveLast
End Select
Call Capnhat
End Sub
Private Sub CmdIn_Click()
RptDihoc.Label7.Caption = RptDihoc.Label7.Caption & Mid(TxtNgayth.Text, 7, 4)
RptDihoc.Show
End Sub
Private Sub CmdThem_Click()
CboMahoso.Enabled = True
CboHovaten.Enabled = True
TxtNgaysinh.Enabled = True
CboPhong.Enabled = True
CboChucvu.Enabled = True
TxtKhenthuong.Enabled = True
TxtKyluat.Enabled = True
TxtNganhhoc.Enabled = True
TxtTruonghoc.Enabled = True
MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu"
CboMahoso.SetFocus
nut = 1
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdThoat_LostFocus()
CboMahoso.SetFocus
End Sub
Private Sub CmdXoa_Click()
CboMahoso.Enabled = True
CboHovaten.Enabled = False
TxtNgaysinh.Enabled = False
CboPhong.Enabled = False
CboChucvu.Enabled = False
TxtKhenthuong.Enabled = False
TxtKyluat.Enabled = False
TxtNganhhoc.Enabled = False
TxtTruonghoc.Enabled = False
MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu"
CboMahoso.SetFocus
nut = 2
End Sub
Private Sub Form_Load()
Dim s As String
AdoDihoc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoDihoc.RecordSource = "Select * from QHoso"
AdoDihoc.Refresh
AdoPhong.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoPhong.RecordSource = "Select * from QPhong"
AdoPhong.Refresh
AdoChucvu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoChucvu.RecordSource = "Select * from QChucvu"
AdoChucvu.Refresh
Data1.DatabaseName = App.Path & "\nhansu.mdb"
Data1.RecordSource = "QDihoc"
Data1.Refresh
Call Capnhat
MDIHethong.StatusBar1.Panels(2).Text = "Danh sách cán bộ đi học"
On Error GoTo loi
CboMahoso.Text = Data1.Recordset.Fields(0).Value
CboHovaten.Text = Data1.Recordset.Fields(1).Value
If Not IsNull(Data1.Recordset.Fields(2).Value) Then
TxtNgaysinh.Text = Data1.Recordset.Fields(2).Value
End If
CboPhong.Text = Data1.Recordset.Fields(3).Value
CboChucvu.Text = Data1.Recordset.Fields(4).Value
TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value
TxtKyluat.Text = Data1.Recordset.Fields(6).Value
TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value
TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value
If Not IsNull(Data1.Recordset.Fields(9).Value) Then
TxtNgayth.Text = Data1.Recordset.Fields(9).Value
End If
loi:
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIHethong.StatusBar1.Panels(2).Text = ""
End Sub
Private Sub GrdHoso_Click()
On Error GoTo loi
CboMahoso.Text = Data1.Recordset.Fields(0).Value
CboHovaten.Text = Data1.Recordset.Fields(1).Value
If Not IsNull(Data1.Recordset.Fields(2).Value) Then
TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value
End If
CboPhong.Text = Data1.Recordset.Fields(3).Value
CboChucvu.Text = Data1.Recordset.Fields(4).Value
TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value
TxtKyluat.Text = Data1.Recordset.Fields(6).Value
TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value
TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value
If Not IsNull(Data1.Recordset.Fields(9).Value) Then
TxtNgayth.Value = Data1.Recordset.Fields(9).Value
End If
loi:
End Sub
Private Sub TxtKhenthuong_GotFocus()
TxtKhenthuong.SelStart = 0
TxtKhenthuong.SelLength = Len(TxtKhenthuong.Text)
End Sub
Private Sub TxtKyluat_GotFocus()
TxtKyluat.SelStart = 0
TxtKyluat.SelLength = Len(TxtKyluat.Text)
End Sub
Private Sub TxtNganhhoc_GotFocus()
TxtNganhhoc.SelStart = 0
TxtNganhhoc.SelLength = Len(TxtNganhhoc.Text)
End Sub
Private Sub TxtNgaysinh_GotFocus()
TxtNgaysinh.SelStart = 0
TxtNgaysinh.SelLength = Len(TxtNgaysinh.Text)
End Sub
Private Sub TxtNgayth_GotFocus()
TxtNgayth.SelStart = 0
TxtNgayth.SelLength = Len(TxtNgayth.Text)
End Sub
Private Sub TxtTruonghoc_GotFocus()
TxtTruonghoc.SelStart = 0
TxtTruonghoc.SelLength = Len(TxtTruonghoc.Text)
End Sub
Sub Capnhat()
On Error GoTo loi
CboMahoso.Text = Data1.Recordset.Fields(0).Value
CboHovaten.Text = Data1.Recordset.Fields(1).Value
If Not IsNull(Data1.Recordset.Fields(2).Value) Then
TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value
End If
CboPhong.Text = Data1.Recordset.Fields(3).Value
CboChucvu.Text = Data1.Recordset.Fields(4).Value
TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value
TxtKyluat.Text = Data1.Recordset.Fields(6).Value
TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value
TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value
If Not IsNull(Data1.Recordset.Fields(9).Value) Then
TxtNgayth.Value = Data1.Recordset.Fields(9).Value
End If
loi:
End Sub
Option Explicit
Dim nut As Integer
Private Sub CmdCapnhat_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(App.Path & "\nhansu.mdb")
Set rs = db.OpenRecordset("donvi")
Select Case nut
Case 1:
On Error GoTo loi1
rs.AddNew
rs.Fields(0).Value = UCase(Txtmadonvi.Text)
rs.Fields(1).Value = Txtdonvi.Text
rs.Fields(2).Value = Txtghichu.Text
rs.Update
Data1.Refresh
Data1.Recordset.MoveLast
Call Capnhat
Exit Sub
loi1:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 2:
On Error GoTo loi2
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmadonvi.Text Then
rs.Delete
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi2:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 3:
On Error GoTo loi3
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmadonvi.Text Then
rs.Edit
rs.Fields(1).Value = Txtdonvi.Text
rs.Fields(2).Value = Txtghichu.Text
rs.Update
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi3:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case Else
MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra"
End Select
End Sub
Private Sub CmdDuyet_Click(Index As Integer)
Select Case Index
Case 0
Data1.Recordset.MoveFirst
Case 1
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
End If
Case 2
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Case 3
Data1.Recordset.MoveLast
End Select
Call Capnhat
End Sub
Private Sub CmdSua_Click()
Txtmadonvi.Enabled = True
Txtdonvi.Enabled = True
Txtghichu.Enabled = True
nut = 3
MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu"
End Sub
Private Sub CmdThem_Click()
Txtmadonvi.Enabled = True
Txtdonvi.Enabled = True
Txtghichu.Enabled = True
nut = 1
MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu"
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdThoat_LostFocus()
Txtmadonvi.SetFocus
End Sub
Private Sub CmdXoa_Click()
Txtmadonvi.Enabled = True
Txtdonvi.Enabled = False
Txtghichu.Enabled = False
nut = 2
MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu"
End Sub
Private Sub DBGrid1_Click()
On Error GoTo loi
Txtmadonvi.Text = Data1.Recordset.Fields(0).Value
Txtdonvi.Text = Data1.Recordset.Fields(1).Value
Txtghichu.Text = Data1.Recordset.Fields(2).Value
loi:
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\nhansu.mdb"
Data1.RecordSource = "qdonvi"
Data1.Refresh
Call Capnhat
DBGrid1.Columns(1).Width = 2000
DBGrid1.Columns(2).Width = 3000
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIHethong.StatusBar1.Panels(2).Text = ""
End Sub
Private Sub Txtdonvi_GotFocus()
Txtdonvi.SelStart = 0
Txtdonvi.SelLength = Len(Txtdonvi.Text)
End Sub
Private Sub Txtghichu_GotFocus()
Txtghichu.SelStart = 0
Txtghichu.SelLength = Len(Txtghichu.Text)
End Sub
Private Sub Txtmadonvi_GotFocus()
Txtmadonvi.SelStart = 0
Txtmadonvi.SelLength = Len(Txtmadonvi.Text)
End Sub
Sub Capnhat()
On Error GoTo loi
Txtmadonvi.Text = Data1.Recordset.Fields(0).Value
Txtdonvi.Text = Data1.Recordset.Fields(1).Value
Txtghichu.Text = Data1.Recordset.Fields(2).Value
loi:
End Sub
Option Explicit
Dim nut As Integer
Private Sub CboChinhtri_GotFocus()
CboChinhtri.SelStart = 0
CboChinhtri.SelLength = Len(CboChinhtri.Text)
End Sub
Private Sub CboChucvu_GotFocus()
CboChucvu.SelStart = 0
CboChucvu.SelLength = Len(CboChucvu.Text)
End Sub
Private Sub CboChucvuht_GotFocus()
CboChucvuht.SelStart = 0
CboChucvuht.SelLength = Len(CboChucvuht.Text)
End Sub
Private Sub CboDantoc_GotFocus()
CboDantoc.SelStart = 0
CboDantoc.SelLength = Len(CboDantoc.Text)
End Sub
'Private Sub CboDonvi_Click(Area As Integer)
'CboDonvi.SelStart = 0
'CboDonvi.SelLength = Len(CboDonvi.Text)
'End Sub
Private Sub CboHocvan_GotFocus()
CboHocvan.SelStart = 0
CboHocvan.SelLength = Len(CboHocvan.Text)
End Sub
Private Sub CboNgoaingu_GotFocus()
CboNgoaingu.SelStart = 0
CboNgoaingu.SelLength = Len(CboNgoaingu.Text)
End Sub
Private Sub CboPhong_GotFocus()
CboPhong.SelStart = 0
CboPhong.SelLength = Len(CboPhong.Text)
End Sub
Private Sub CmdCapnhat_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(App.Path & "\nhansu.mdb")
Set rs = db.OpenRecordset("hoso")
Select Case nut
Case 1:
On Error GoTo loi1
rs.AddNew
rs.Fields(0).Value = UCase(Txtmahoso.Text)
rs.Fields(1).Value = Txthovaten.Text
rs.Fields(2).Value = TxtNgaysinh.Text
rs.Fields(3).Value = ChkGioitinh.Value
rs.Fields(4).Value = Txtnoisinh.Text
rs.Fields(5).Value = TxtQue.Text
rs.Fields(6).Value = TxtNoithuongtru.Text
rs.Fields(7).Value = TxtDiachi.Text
rs.Fields(8).Value = TxtSDT.Text
rs.Fields(9).Value = CboDantoc.BoundText
rs.Fields(10).Value = CboHocvan.BoundText
rs.Fields(11).Value = TxtTongiao.Text
rs.Fields(12).Value = TxtSoCMND.Text
rs.Fields(13).Value = TxtNgaycap.Text
rs.Fields(14).Value = TxtNoicap.Text
rs.Fields(15).Value = TxtThanhphangd.Text
rs.Fields(16).Value = CboChinhtri.BoundText
rs.Fields(17).Value = CboNgoaingu.BoundText
rs.Fields(18).Value = TxtNgayvaonganh.Text
If TxtNgayvaodang.Text "__/__/____" Then
rs.Fields(19).Value = TxtNgayvaodang.Text
End If
rs.Fields(20).Value = CboPhong.BoundText
rs.Fields(21).Value = CboChucvu.BoundText
rs.Fields(22).Value = CboChucvuht.BoundText
rs.Fields(23).Value = TxtBacluong.Text
rs.Fields(24).Value = TxtKhenthuong.Text
rs.Fields(25).Value = TxtKyluat.Text
'rs.Fields(26).Value = CboDonvi.BoundText
rs.Fields(26).Value = Val(TxtNamnghihuu.Text)
rs.Update
Data1.Refresh
Data1.Recordset.MoveLast
Call Capnhat
Exit Sub
loi1:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 2:
On Error GoTo loi2
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmahoso.Text Then
rs.Delete
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi2:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 3:
On Error GoTo loi3
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmahoso.Text Then
rs.Edit
rs.Fields(1).Value = Txthovaten.Text
rs.Fields(2).Value = TxtNgaysinh.Text
rs.Fields(3).Value = ChkGioitinh.Value
rs.Fields(4).Value = Txtnoisinh.Text
rs.Fields(5).Value = TxtQue.Text
rs.Fields(6).Value = TxtNoithuongtru.Text
rs.Fields(7).Value = TxtDiachi.Text
rs.Fields(8).Value = TxtSDT.Text
rs.Fields(9).Value = CboDantoc.BoundText
rs.Fields(10).Value = CboHocvan.BoundText
rs.Fields(11).Value = TxtTongiao.Text
rs.Fields(12).Value = TxtSoCMND.Text
rs.Fields(13).Value = TxtNgaycap.Text
rs.Fields(14).Value = TxtNoicap.Text
rs.Fields(15).Value = TxtThanhphangd.Text
rs.Fields(16).Value = CboChinhtri.BoundText
rs.Fields(17).Value = CboNgoaingu.BoundText
rs.Fields(18).Value = TxtNgayvaonganh.Text
If TxtNgayvaodang.Text "__/__/____" Then
rs.Fields(19).Value = TxtNgayvaodang.Text
End If
rs.Fields(20).Value = CboPhong.BoundText
rs.Fields(21).Value = CboChucvu.BoundText
rs.Fields(22).Value = CboChucvuht.BoundText
rs.Fields(23).Value = TxtBacluong.Text
rs.Fields(24).Value = TxtKhenthuong.Text
rs.Fields(25).Value = TxtKyluat.Text
'rs.Fields(26).Value = CboDonvi.BoundText
rs.Fields(26).Value = Val(TxtNamnghihuu.Text)
rs.Update
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi3:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case Else
MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra"
End Select
End Sub
Private Sub CmdDuyet_Click(Index As Integer)
Select Case Index
Case 0
Data1.Recordset.MoveFirst
Case 1
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
End If
Case 2
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Case 3
Data1.Recordset.MoveLast
End Select
Call Capnhat
End Sub
Private Sub CmdIn_Click()
'rpt
Dim db As Database
Dim rs As Recordset
Dim rs1 As Recordset
Dim s As String
s = "Delete * from Hoso1"
Set db = OpenDatabase(App.Path & "\nhansu.mdb")
Set rs = db.OpenRecordset("QHoso")
Set rs1 = db.OpenRecordset("Hoso1")
db.Execute s
rs.MoveFirst
Do Until rs.EOF
rs1.AddNew
rs1.Fields(0).Value = rs.Fields("Họ và tên").Value
rs1.Fields(1).Value = Year(rs.Fields("Ngày sinh").Value)
rs1.Fields(2).Value = rs.Fields("Quê").Value
rs1.Fields(3).Value = rs.Fields("Nơi thường trú").Value
If rs.Fields("Giới tính").Value = 1 Then
rs1.Fields(4).Value = "Nam"
Else
rs1.Fields(4).Value = "Nữ"
End If
rs1.Fields(5).Value = rs.Fields("Chức vụ").Value
rs1.Fields(6).Value = rs.Fields("Học vấn").Value
rs1.Update
rs.MoveNext
Loop
RptNhansu.Show
End Sub
Private Sub CmdSua_Click()
Call Capnhat
Txtmahoso.Enabled = True
Txthovaten.Enabled = True
TxtNgaysinh.Enabled = True
ChkGioitinh.Enabled = True
Txtnoisinh.Enabled = True
TxtQue.Enabled = True
TxtNoithuongtru.Enabled = True
TxtDiachi.Enabled = True
TxtSDT.Enabled = True
CboDantoc.Enabled = True
CboHocvan.Enabled = True
TxtTongiao.Enabled = True
TxtSoCMND.Enabled = True
TxtNgaycap.Enabled = True
TxtNoicap.Enabled = True
TxtThanhphangd.Enabled = True
CboChinhtri.Enabled = True
CboNgoaingu.Enabled = True
TxtNgayvaonganh.Enabled = True
TxtNgayvaodang.Enabled = True
CboPhong.Enabled = True
CboChucvu.Enabled = True
CboChucvuht.Enabled = True
TxtBacluong.Enabled = True
TxtKhenthuong.Enabled = True
TxtKyluat.Enabled = True
'CboDonvi.Enabled = True
TxtNamnghihuu.Enabled = True
nut = 3
MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu"
Txtmahoso.SetFocus
End Sub
Private Sub CmdThem_Click()
Call Capnhat
Txtmahoso.Enabled = True
Txthovaten.Enabled = True
TxtNgaysinh.Enabled = True
ChkGioitinh.Enabled = True
Txtnoisinh.Enabled = True
TxtQue.Enabled = True
TxtNoithuongtru.Enabled = True
TxtDiachi.Enabled = True
TxtSDT.Enabled = True
CboDantoc.Enabled = True
CboHocvan.Enabled = True
TxtTongiao.Enabled = True
TxtSoCMND.Enabled = True
TxtNgaycap.Enabled = True
TxtNoicap.Enabled = True
TxtThanhphangd.Enabled = True
CboChinhtri.Enabled = True
CboNgoaingu.Enabled = True
TxtNgayvaonganh.Enabled = True
TxtNgayvaodang.Enabled = True
CboPhong.Enabled = True
CboChucvu.Enabled = True
CboChucvuht.Enabled = True
TxtBacluong.Enabled = True
TxtKhenthuong.Enabled = True
TxtKyluat.Enabled = True
'CboDonvi.Enabled = True
TxtNamnghihuu.Enabled = True
nut = 1
MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu"
Txtmahoso.SetFocus
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdThoat_LostFocus()
Txtmahoso.SetFocus
End Sub
Private Sub CmdXoa_Click()
'Call Capnhat
Txtmahoso.Enabled = True
Txthovaten.Enabled = False
TxtNgaysinh.Enabled = False
ChkGioitinh.Enabled = False
Txtnoisinh.Enabled = False
TxtQue.Enabled = False
TxtNoithuongtru.Enabled = False
TxtDiachi.Enabled = False
TxtSDT.Enabled = False
CboDantoc.Enabled = False
CboHocvan.Enabled = False
TxtTongiao.Enabled = False
TxtSoCMND.Enabled = False
TxtNgaycap.Enabled = False
TxtNoicap.Enabled = False
TxtThanhphangd.Enabled = False
CboChinhtri.Enabled = False
CboNgoaingu.Enabled = False
TxtNgayvaonganh.Enabled = False
TxtNgayvaodang.Enabled = False
CboPhong.Enabled = False
CboChucvu.Enabled = False
CboChucvuht.Enabled = False
TxtBacluong.Enabled = False
TxtKhenthuong.Enabled = False
TxtKyluat.Enabled = False
'CboDonvi.Enabled = False
TxtNamnghihuu.Enabled = False
nut = 2
MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu"
Txtmahoso.SetFocus
End Sub
Private Sub DBGrid1_Click()
On Error GoTo loi
Txtmahoso.Text = Data1.Recordset.Fields(0).Value
Txthovaten.Text = Data1.Recordset.Fields(1).Value
TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value
ChkGioitinh.Value = Data1.Recordset.Fields(3).Value
Txtnoisinh.Text = Data1.Recordset.Fields(4).Value
TxtQue.Text = Data1.Recordset.Fields(5).Value
TxtNoithuongtru.Text = Data1.Recordset.Fields(6).Value
TxtDiachi.Text = Data1.Recordset.Fields(7).Value
TxtSDT.Text = Data1.Recordset.Fields(8).Value
CboDantoc.Text = Data1.Recordset.Fields(9).Value
CboHocvan.Text = Data1.Recordset.Fields(10).Value
TxtTongiao.Text = Data1.Recordset.Fields(11).Value
TxtSoCMND.Text = Data1.Recordset.Fields(12).Value
TxtNgaycap.Value = Data1.Recordset.Fields(13).Value
TxtNoicap.Text = Data1.Recordset.Fields(14).Value
TxtThanhphangd.Text = Data1.Recordset.Fields(15).Value
CboChinhtri.Text = Data1.Recordset.Fields(16).Value
CboNgoaingu.Text = Data1.Recordset.Fields(17).Value
TxtNgayvaonganh.Text = Data1.Recordset.Fields(18).Value
If Not IsNull(Data1.Recordset.Fields(19).Value) Then
TxtNgayvaodang.Text = Data1.Recordset.Fields(19).Value
Else
TxtNgayvaodang.Text = "__/__/____"
End If
CboPhong.Text = Data1.Recordset.Fields(20).Value
CboChucvu.Text = Data1.Recordset.Fields(21).Value
CboChucvuht.Text = Data1.Recordset.Fields(22).Value
TxtBacluong.Text = Val(Data1.Recordset.Fields(23).Value)
TxtKhenthuong.Text = Data1.Recordset.Fields(24).Value
TxtKyluat.Text = Data1.Recordset.Fields(25).Value
'CboDonvi.Text = Data1.Recordset.Fields(26).Value
TxtNamnghihuu.Value = Data1.Recordset.Fields(26).Value
loi:
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\nhansu.mdb"
Data1.RecordSource = "qhoso"
Data1.Refresh
Call Capnhat
Adochinhtri.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
Adochinhtri.RecordSource = "select * from qchinhtri"
Adochinhtri.Refresh
AdoChucvu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoChucvu.RecordSource = "select * from qchucvu"
AdoChucvu.Refresh
AdoDantoc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoDantoc.RecordSource = "select * from qdantoc"
AdoDantoc.Refresh
AdoDonvi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoDonvi.RecordSource = "Select * from QDonvi"
AdoDonvi.Refresh
AdoHocvan.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoHocvan.RecordSource = "Select * from qhocvan"
AdoHocvan.Refresh
AdoNgoaingu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoNgoaingu.RecordSource = "select * from qngoaingu"
AdoNgoaingu.Refresh
AdoPhong.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb"
AdoPhong.RecordSource = "select * from qphong"
AdoPhong.Refresh
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIHethong.StatusBar1.Panels(2).Text = ""
End Sub
Private Sub TxtBacluong_GotFocus()
TxtBacluong.SelStart = 0
TxtBacluong.SelLength = Len(TxtBacluong.Text)
End Sub
Private Sub TxtDiachi_GotFocus()
TxtDiachi.SelStart = 0
TxtDiachi.SelLength = Len(TxtDiachi.Text)
End Sub
Private Sub TxtKhenthuong_GotFocus()
TxtKhenthuong.SelStart = 0
TxtKhenthuong.SelLength = Len(TxtKhenthuong.Text)
End Sub
Private Sub TxtKyluat_GotFocus()
TxtKyluat.SelStart = 0
TxtKyluat.SelLength = Len(TxtKyluat.Text)
End Sub
Private Sub TxtNamnghihuu_GotFocus()
TxtNamnghihuu.SelStart = 0
TxtNamnghihuu.SelLength = Len(TxtNamnghihuu.Text)
End Sub
Private Sub TxtNgaycap_GotFocus()
TxtNgaycap.SelStart = 0
TxtNgaycap.SelLength = Len(TxtNgaycap.Text)
End Sub
Private Sub TxtNgaysinh_GotFocus()
TxtNgaysinh.SelStart = 0
TxtNgaysinh.SelLength = Len(TxtNgaysinh.Text)
End Sub
Private Sub Txthovaten_GotFocus()
Txthovaten.SelStart = 0
Txthovaten.SelLength = Len(Txthovaten.Text)
End Sub
Private Sub Txtmahoso_GotFocus()
Txtmahoso.SelStart = 0
Txtmahoso.SelLength = Len(Txtmahoso.Text)
End Sub
Private Sub TxtNgayvaodang_GotFocus()
TxtNgayvaodang.SelStart = 0
TxtNgayvaodang.SelLength = Len(TxtNgayvaodang.Text)
End Sub
Private Sub TxtNgayvaonganh_GotFocus()
TxtNgayvaonganh.SelStart = 0
TxtNgayvaonganh.SelLength = Len(TxtNgayvaonganh.Text)
End Sub
Private Sub TxtNoicap_GotFocus()
TxtNoicap.SelStart = 0
TxtNoicap.SelLength = Len(TxtNoicap.Text)
End Sub
Private Sub Txtnoisinh_GotFocus()
Txtnoisinh.SelStart = 0
Txtnoisinh.SelLength = Len(Txtnoisinh.Text)
End Sub
Private Sub TxtNoithuongtru_GotFocus()
TxtNoithuongtru.SelStart = 0
TxtNoithuongtru.SelLength = Len(TxtNoithuongtru.Text)
End Sub
Private Sub TxtQue_GotFocus()
TxtQue.SelStart = 0
TxtQue.SelLength = Len(TxtQue.Text)
End Sub
Private Sub TxtSDT_GotFocus()
TxtSDT.SelStart = 0
TxtSDT.SelLength = Len(TxtSDT.Text)
End Sub
Private Sub TxtSoCMND_GotFocus()
TxtSoCMND.SelStart = 0
TxtSoCMND.SelLength = Len(TxtSoCMND.Text)
End Sub
Private Sub TxtThanhphangd_GotFocus()
TxtThanhphangd.SelStart = 0
TxtThanhphangd.SelLength = Len(TxtThanhphangd.Text)
End Sub
Private Sub TxtTongiao_GotFocus()
TxtTongiao.SelStart = 0
TxtTongiao.SelLength = Len(TxtTongiao.Text)
End Sub
Sub Capnhat()
On Error GoTo loi
Txtmahoso.Text = Data1.Recordset.Fields(0).Value
Txthovaten.Text = Data1.Recordset.Fields(1).Value
TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value
ChkGioitinh.Value = Data1.Recordset.Fields(3).Value
Txtnoisinh.Text = Data1.Recordset.Fields(4).Value
TxtQue.Text = Data1.Recordset.Fields(5).Value
TxtNoithuongtru.Text = Data1.Recordset.Fields(6).Value
TxtDiachi.Text = Data1.Recordset.Fields(7).Value
TxtSDT.Text = Data1.Recordset.Fields(8).Value
CboDantoc.Text = Data1.Recordset.Fields(9).Value
CboDantoc.Refresh
CboHocvan.Text = Data1.Recordset.Fields(10).Value
TxtTongiao.Text = Data1.Recordset.Fields(11).Value
TxtSoCMND.Text = Data1.Recordset.Fields(12).Value
TxtNgaycap.Value = Data1.Recordset.Fields(13).Value
TxtNoicap.Text = Data1.Recordset.Fields(14).Value
TxtThanhphangd.Text = Data1.Recordset.Fields(15).Value
CboChinhtri.Text = Data1.Recordset.Fields(16).Value
CboNgoaingu.Text = Data1.Recordset.Fields(17).Value
TxtNgayvaonganh.Text = Data1.Recordset.Fields(18).Value
If Not IsNull(Data1.Recordset.Fields(19).Value) Then
TxtNgayvaodang.Text = Data1.Recordset.Fields(19).Value
Else
TxtNgayvaodang.Text = "__/__/____"
End If
CboPhong.Text = Data1.Recordset.Fields(20).Value
CboChucvu.Text = Data1.Recordset.Fields(21).Value
CboChucvuht.Text = Data1.Recordset.Fields(22).Value
TxtBacluong.Text = Val(Data1.Recordset.Fields(23).Value)
TxtKhenthuong.Text = Data1.Recordset.Fields(24).Value
TxtKyluat.Text = Data1.Recordset.Fields(25).Value
TxtNamnghihuu.Value = Data1.Recordset.Fields(26).Value
loi:
End Sub
Option Explicit
Dim nut As Integer
Private Sub CmdCapnhat_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(App.Path & "\nhansu.mdb")
Set rs = db.OpenRecordset("hocvan")
Select Case nut
Case 1:
On Error GoTo loi1
rs.AddNew
rs.Fields(0).Value = UCase(Txtmahocvan.Text)
rs.Fields(1).Value = Txthocvan.Text
rs.Fields(2).Value = Txtghichu.Text
rs.Update
Data1.Refresh
Data1.Recordset.MoveLast
Call Capnhat
Exit Sub
loi1:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 2:
On Error GoTo loi2
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmahocvan.Text Then
rs.Delete
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi2:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case 3:
On Error GoTo loi3
rs.MoveFirst
Do Until rs.EOF
If rs.Fields(0).Value = Txtmahocvan.Text Then
rs.Edit
rs.Fields(1).Value = Txthocvan.Text
rs.Fields(2).Value = Txtghichu.Text
rs.Update
End If
rs.MoveNext
Loop
Data1.Refresh
Call Capnhat
Exit Sub
loi3:
MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra"
Case Else
MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra"
End Select
End Sub
Private Sub CmdDuyet_Click(Index As Integer)
Select Case Index
Case 0
Data1.Recordset.MoveFirst
Case 1
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
End If
Case 2
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Case 3
Data1.Recordset.MoveLast
End Select
Call Capnhat
End Sub
Private Sub CmdSua_Click()
Txtmahocvan.Enabled = True
Txthocvan.Enabled = True
Txtghichu.Enabled = True
nut = 3
MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu"
End Sub
Private Sub CmdThem_Click()
Txtmahocvan.Enabled = True
Txthocvan.Enabled = True
Txtghichu.Enabled = True
nut = 1
MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu"
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdThoat_LostFocus()
Txtmahocvan.SetFocus
End Sub
Private Sub CmdXoa_Click()
Txtmahocvan.Enabled = True
Txthocvan.Enabled = False
Txtghichu.Enabled = False
nut = 2
MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu"
End Sub
Private Sub DBGrid1_Click()
On Error GoTo loi
Txtmahocvan.Text = Data1.Recordset.Fields(0).Value
Txthocvan.Text = Data1.Recordset.Fields(1).Value
Txtghichu.Text = Data1.Recordset.Fields(2).Value
loi:
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\nhansu.mdb"
Data1.RecordSource = "qhocvan"
Data1.Refresh
Call Capnhat
DBGrid1.Columns(1).Width = 2000
DBGrid1.Columns(2).Width = 3000
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIHethong.StatusBar1.Panels(2).Text = ""
End Sub
Private Sub Txthocvan_GotFocus()
Txthocvan.SelStart = 0
Txthocvan.SelLength = Len(Txthocvan.Text)
End Sub
Private Sub Txtghichu_GotFocus()
Txtghichu.SelStart = 0
Txtghichu.SelLength = Len(Txtghichu.Text)
End Sub
Private Sub Txtmahocvan_GotFocus()
Txtmahocvan.SelStart = 0
Txtmahocvan.SelLength = Len(Txtmahocvan.Text)
End Sub
Sub Capnhat()
On Error GoTo loi
Txtmahocvan.Text = Data1.Recordset.Fields(0).Value
Txthocvan.Text = Data1.Recordset.Fields(1).Value
Txtghichu.Text = Data1.Recordset.Fields(2).Value
loi:
End Sub
TàI liệu tham khảo
1. Microsof ViSual BaSic 6.0 & Lập trình cơ sở dữ liệu -Nguyễn Thị Ngọc
Mai - Nhà xuất bản giáo dục.
2. Cơ sở dữ liệu kiến thức và thực hành-Vũ Đức Thi - NXB thống kê
3. Phân tích và thiết kế hệ thống tin học - Nhà xuất bản giao thông vận tải
Kết luận
Mục đích của đồ án này là tin học hoá việc quản lý nhân sự của Chi cục Dự trữ Sóc Sơn, thực hiện tự động hoá một số công việc thủ công. Khi đưa chương trình vào ứng dụng phần thao tác của người sử dụng chỉ đơn giản là số liệu các thông tin gốc của đối tượng cần quản lý.
Hệ thống tự động hoá xử lý theo các yêu cầu, hệ thống con cho phép in các báo cáo, các danh sách thống kê, đảm bảo cung cấp thông tin chính xác, kịp thời và trung thực phục vụ cho công tác quản lý và chỉ đạo.
Là một đề tài nghiên cứu có ứng dụng thực tế, kinh nghiệm nghiên cứu chuyên môn chưa nhiều, hơn nữa trong một thời gian ngắn vừa nghiên cứu, vừa viết chương trình, vì vậy chương trình không tránh khỏi những mặt hạn chế và thiếu xót. Xin kính mong được sự chỉ bảo và góp ý giúp tôi hoàn thành đồ án này.
Một lần nữa tôi xin chân thành cảm ơn thày giáo Hồ Văn Hương, cảm ơn các thầy, các cô đã hướng dẫn trực tiếp tôi hoàn thành đồ án này, tôi cũng xin chân thành cảm ơn thầy giáo phản biện và các thầy cô, bạn bè đồng nghiệp đã giúp đỡ tôi hoàn thành bản đồ án này./.
Mục lục
Tên mục trang.
*lời cảm ơn 1
*đặt vấn đề 2
chương I :khảo sát hệ thống hiện tạI
+Hệ thống tổ chức cán bộ và hoạt đọng của cơ quan 3
+Cách thức tổ chức và lưu trữ thông tinhiện tại 6
+Danh sách cán bộ công chức năm 2003 10
+Danh sách cán bộ nâng lương năm 2003 12
+Danh sách đảng viên năm 2003 12
+Danh sách theo trình độ nhân viên 13
chương II : tin ứng dụng của tin học quản lý
+Một số khái niệm cơ bản về quản lý và ứng dụng tin học trong công tác
quản lý 15
+Giới thiệu về mic rosoft access 20
+Ngôn ngữ vi sua basic 6.0 27
+Mối liên hệ giữa access và visual basic 31
chương III : thiết kế cơ sở dữ liệu.
+Thông tin vào ra của hệ thống 33
+Thiết kế cơ sở dữ liệu cho hệ thống quản lý cán bộ 35
chương IV : phân tích và thiết kế hệ thống .
+Mục đích 42
+Sơ đồ chức năng của hệ thống quản lý cán bộ 43
+Sơ đồ luồng dữ liệu 44
chương v : các form chính và các code chương trình.
+Một số form chính của chương trình 51
+Một số code của chương trình 51
*tàI liệu tham khảo 81
*kếtluận 82
*mục lục 83
*nhần xét của giáo viên 85
Các file đính kèm theo tài liệu này:
- N0090.doc