Có nhiệm vụ hàng ngày phải chấm công cho nhân viên trong công ty và nhập số ngày công của mỗi nhân viên trong một tháng hay trong cả quá trình công tác.
-Chức năng cập nhật lương
Chức năng này có nhiệm vụ lấy các thông tin của từng nhân viên như số ngày công, hệ số lương để tính lương cho nhân viên trong công ty.Lương được tính như sau:
+Lương cơ bản cố định là: 290000đ
¬ +Mức lươnh chính= lương cơ bản * hệ số lương
+Mức phụ cấp chức vụ= lương cơ bản * hệ số phụ cấp
+Tổng mức lương= lương cơ bản +phụ cấp chức vụ (nếu có)
+Bảo hiểm xã hội = tổng mức lương * 5%
+Tổng mức lương thực lĩnh = tổng mức lương – mức bảo hiểm xã hội.
-Chức năng nhập bảng lương
Chức năng này có nhiệm vụ lấy thông tin về lương của mỗi nhân viên để lập ra một bảng lương của toàn nhân viên trong công ty.
-Chức năng thống kê danh sách lên lương hàng năm
Chức năng này có nhiệm vụ cập nhật thông tin của nhân viên như trình độ, quá trình công tác, ưu tiên để tổng kết xem những nhan viên nào được tăng lương trong năm.
51 trang |
Chia sẻ: Dung Lona | Lượt xem: 1332 | Lượt tải: 0
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í nhân sự cho công ty trung bình (20 đến 30 nhân viên), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lêi nãi ®Çu
Với nội dung đồ án thực tập”Quản lí nhân sự”, em đã thiết kế chương trình quản lí nhân sự cho công ty phát triển phần mềm EDT với mong muốn giúp người quản lí nhân sự của công ty có thể quản lí được nhân viên của công ty một cách tốt hơn.
Mặc dù rất cố gắng để hòan thành công việc, xong thời gian có hạn và kinh nghiệm kiến thức chưa nhiều nên việc phân tích thiết kế và đặc biệt là việc cài đặt, ứng dụng còn nhiều thiếu sót cần được bổ xung.
Vì vậy em mong được ý kiến đóng góp của các thấy cô và các bạn để đề tài ngày càng hoàn thiện hơn.
Cuối cùng em xin chân thành cảm ơn các thầy cô giáo trong khoa Công Nghệ Thông Tin trường Cao đẳng Công Nghiệp Hà Nội, đặc biệt là thầy Ngô Đức Vĩnh đã trực tiếp tận tình chỉ bảo hướng dẫn em hoàn thành đề tài này.
Sinh viên thực hiện
Trần Thanh Thủy
CHƯƠNG I. MỞ ĐẦU
I. Lí do chọn đề tài.
Ngày nay song song với sự phát triển của khoa học kĩ thuật, ngành công nghệ máy tính cũng phát triển và giữ vai trò quan trọng trong cuộc sống của chúng ta, nó đã đạt được những thành khoa học kĩ thuật rực rỡ với những bước tiến nhảy vọt. việc áp dụng những công nghệ khoa học kĩ thuật vào lĩnh vực đời sống của con người ngày càng tăng và không ngừng can thiệp vào hầu hết các công việc trong cuộc sống. Công nghệ thông tin là một trong những ngành khoa học đó. Đi đôi với sự phát triển của công nghệ chế tạo các thiết bị máy tính thì việc sản phẩm phần mềm ứng dụng ra đời có tính chất quyết định đối với việc áp dụng ngành khoa học này.
Trên thế giới cũng như ở Việt Nam, công nghệ thông tin đã trở thành một ngành công nghiệp mũi nhọn, nó là một ngành khoa học kĩ thuật không thể thiếu trong việc áp dụng vào các hoạt động xã hội như: quản lí, kinh tế, thông tin
Ở nước ta hiện nay, việc áp dụng vi tính hóa trong việc quản lí tại các cơ quan, xí nghiệp đang rất phổ biến và trở nên cấp thiết. nhưng một vấn đề đặt ra trong việc quản lí là làm thế nào để chuẩn hóa cách xử lí dữ liệu ở các cơ quan xí nghiệp, bởi với hàng ttrăm cơ quan, hàng trăm xí nghiệp là hàng trăm cách xử lí khác nhau. ở đây, em chỉ muốn đề cập tới tầm quan trọng của việc đưa máy tính vào trong các cơ quan để xử lí thông tin.
Quản lí nhân sự là một công việc vô cùng quan trọng, nó gắn liền với sự phát triển của chính công ty đó. Nên việc ứng dụng tin học vào việc quản lí lại càng trở nên bức thiết, nhằm giúp cho công việc quản lí phát huy được tính hiệu quả.
II. Khảo sát hệ thống
1. Giới thiệu chung về hoạt động cuả hệ thống
Ứng dụng máy tính trong vấn đề quản lí không thể tách rời việc tìm hiểu hoạt động của công ty và cách thức sử dụng thông tin của các bộ phận chức năng trong công ty đó. Muốn sử dụng máy tính vào việc trợ giúp quản lí có hiệu quả không chỉ có trình độ nhất định về chuyên môn và các chức năng, các bộ phận trong hệ thống cần nghiên cứu. mức độ hiệu quả của công việc ứng dụng trong máy nhanh hay chậm là phụ thuộc vào sự hiểu biết của người biết về lĩnh vực chuyên môn.
Trong quản lí nhân sự việc ứng dụng công cụ để lưu trữ hồ sơ, sơ yếu lý lịch, về thành phần gia đình, quá trình công tác. Để thiết kế được đòi hỏi người thiết kế phải nắm bắt được chế độ quyết định của một cơ quan, phải tìm hiểu được cách làm thủ công trước đây của cán bộ làm nhiệm vụ quản lí nhân sự.
Xử lý công việc bằng máy có thể cho ta quản được nhiều dữ liệu hơn và dữ liệu được lưu trữ một cách an toàn, việc tìm kiếm thông tin nhanh hơn rất nhiều, giảm được số lượng cán bộ làm công tác quản lí này. Bên cạnh những ưư điểm quản lí bằng máy tính thì không thể tránh khỏi những nhược điểm là đòi hỏi là cán bộ quản lí phải có trình độ nhất định về tin học. vì vậy trong công tác quản lí nhân sự đòi hỏi cán bộ quản lí phải thu thập số liệu xử lí và cung cấp thông tin cần thiết và kịp thời.
2. Nhiệm vụ của hệ thống
-Hệ thống :tức là có nhiệm vụ giúp cho người dùng truy cập vào hệ thống dễ dàng hơn . Ta có thể xem thông tin về bất cứ nhân viên nào mà ta cần trong công ty khi ta vào từ điển dữ liệu.
-Quản lí hồ sơ có nhiệm vụ quản lí tất cả các thông tin của nhân viên về lí lịch như: họ tên, năm sinh, quê quán, trình độ. Trong quản lí hồ sơ có thể nhập thêm hồ sơ của nhân viên theo biên chế hoặc hợp đồng dài hạn, hợp đồng ngắn hạn, sửa hồ sơ nhân viên. Lưư trữ thông tin của nhân viên về tất cả các mặt như: mã nhân viên, ttrình độ chuyên môn.
-Quản lí lương tức là quản lí tiền lương của từng nhân viên trong công ty, có thể cập nhật lương, lập bảng lương. Ngoài ra có thể thống kê ngày công của nhân viên theo bảng theo dõi ngày công của họ. bộ phận thống kê lương cũng phải làm nhiệm vụ thống kê danh sách lên lương hàng năm.
Ttìm kiếm: tức là ta có thể tìm kiếm thông tin về nhân viên theo mã nhân sự, tìm kiếm theo mã lương, tìm kiếm theo trình độ.
-Báo cáo thống kê: báo cáo thống ke tức là có thể thống kê theo trình độ của nhân viên, thống kê danh sách nhân sự đến tuổi nghỉ hưu, thống kê theo lương của nhân sự.
3. Nhược diểm của hệ thống cũ
Ngày nay nhờ sự ra đời và phát triển của máy tính các bài toán quản lí dần dần được xử lí một cách tự động. Thay vì việc phải tự mình ghi chép, tìm kiếm, tính toán, tổng hợpcon người có thể sử dụng phần mềm ứng dụng trên máy tính để thực hiện, điều này tăng khả năng xử lí thông tin, nhằm đáp ứng lượng thông tin ngày càng nhiều
-Thời gian chi phí cho việc lưư trữ, tìm kiếm quá lớn.
-Số thao tác trùng lặp nhiều.
-Chi phí thời gian cho việc truy xuất cơ sở dữ liệu nhiều nên khó đáp ứng được tính nhanh nhậy của thông tin.
-Kết xuất khó đảm bảo độ tin cậy theo yêu cầu.
4. Ưu điểm của hệ thống mới
Hệ thống quản lí với sự giúp đỡ của tin học đã đáp ứng được các yêu cầu sau:
-Tự động hóa các thao tác phép tính số học mà từ trước tới nay phải làm bằng tay.
-Thực hiện các chức năng hỏi đáp nhanh (như nhu cầu lấy thông tin về nhân sự).
-Tổng hợp đầy đủ, chính xác, kịp thời về lương của nhân viên.
-Đưa ra danh sách cán bộ công nhân viên khi cần tìm kiếm theo yêu cầu.
-Bảng tổng hợp chi trả lương hàng tháng một cách chính xác đầy đủ.
-Có khả năng bổ xung thêm một nhân viên mới, xóa bỏ thông tin của một nhân viên.
-Có khả năng lưư trữ thông tin của nhân viên toàn công ty trong nhiều năm công tác.
-Phải đảm bảo được tính an toàn của dữ liệu (không bị dư thừa, không sai lệch).
5. Cơ cấu tổ chức và cách tiến hành.
Công việc quản lí nhân sự là công việc hết sức khó khăn và mất rất nhiều thời gian, công sức. mục đích của quản lí nhân sự là làm sao lưư trữ được thông tin về nhân viên của công ty sao cho hiệu quả, công việc đạt được cao nhất trong cùng một thời gian làm việc và thỏa mãn các điều kiện cho người lao động. Quản lí nhân sự bao gồm nhiều hệ thống có phân biệt ứng với mục tiêu và nhiệm vụ cụ thể của công tác quản lí. Với mỗi cơ quan hệ thống được chia ra nhiều phòng ban, các nhân viên ở mỗi phòng ban đều được hệ thống chung quản lí, trong hệ thống quản lí chung này thì các chức năng làm việc như sau:
-Hệ thống: được sử dụng như là một cách tra cứu.
- Quản lí hồ sơ của nhân viên cả biên chế và hợp đồng. Hồ sơ của từng nhân viên sẽ được lưu lại.
- Ta có thể tra cứu nhân viên theo một số tiêu thức như: tên, bậc lương, trình độ, phòng công tác, công việc.
- Bộ phận quản lí lương: dựa vào quá trình công tác và trình độ của từng cán bộ trong công ty mà chức năng sẽ tính lương, chi phí phụ cấp, các loại bảo hiểm cho từng nhân viên được hưởng.
- Bộ phận báo cáo thống kê: hàng tháng hệ thống phải in ra bảng lương của nhân viên gồm hai loại hợp đồng và biên chế.
6. Mô hình tiến trình nghiệp vụ
Hå s¬ nh©n sù
B¸o c¸o hå s¬ lý lÞch cña c¸n bé c«ng nh©n viªn
B¶ng b¸o c¸o thèng kª theo tõng ®¬n vÞ c«ng t¸c
B¸o c¸o vÒ lương cña nh©n viªn
B¶ng b¸o c¸o nhanh theo ®Þnh kú, theo yªu cÇu nµo ®ã
HÖ thèng qu¶n lý nh©n sù
III. Nhu cầu tin học hóa
Ngày nay trong các cơ quan người cán bộ làm các công tác quản lí nhân sự họ phải xử lí một khối lượng công việc rất lớn từ công tác quản lí hồ sơ, công tác quản lí quỹ lương đến công tác quản lí cơ cấu tổ chức và cả việc in ra báo cáo. Như vậy khi có sự thay đổi trong công tác quản lí thì phải mất rất nhiêu thời
gian, công sức cho việc cập nhật lại, xem xét và tìm kiếmNhờ có nghành tin học ứng dụng vào thực tế mà khối lượng công việc giảm đi rất nhiều và hết sức cần thiết với mọi cơ quan và đặc biệt không thể thiếu được vào công tác quản lí nhân sự.
IV. Hướng giải quyết và phạm vi giải quyết
-Sử dụng công cụ là máy tính.
-Tin học hóa công tác nhân sự và lương.
-Sử dụng cơ sở dữ liệu chung cho toàn công ty.
-Quản lí nhân sự cho công ty trung bình (20 đến 30 nhân viên).
CHƯƠNG II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Để xây dựng thiết kế một hệ thống thông tin quản lí thì vấn đề đầu tiên là phải phân tích hệ thống nhằm tìm ra và lựa chọn một giải pháp thích hợp và biện pháp cụ thể.
Phân tích là công việc đầu tiên của quả trình xây dựng hệ thống máy tính. Nó là giai đoạn quan trọng nhất, vì kết quả cả giai đoạn này cho ta mô tảlogic của hệ thống mới dựa trên kết quả đó là căn cứ cho ta thiết kế sau này. Không thể dùng tin học trong công tác quản lí mà không qua giai đoạn phân tích, hiệu quả công việc tin học hoàn toàn phụ thuộc vào quá trình phân tích ban đầu. trong quá trình phân tích này, để chuyển từ bài toán thực tế sang bài toán quản lí trên máy tính thì các sơ đồ luồng dữ liệu và thực thể liên kết giúp ta dễ dàng xác định chức năng của hệ thống và có cái nhìn tổng quát về cách quản lí thực tế về hệ thống ta đang thiết kế.
Biểu đồ phân cấp chức năng của hệ thống quản lí nhân sự
qu¶n lÝ nh©n sù
hå s¬ nh©n sù
qu¶n lÝ l¬ng
t×m kiÕm
b¸o c¸o thèng kª
qu¶n trÞ ngêi dïng
tõ ®iÓn d÷ liÖu
nhËp d÷ liÖu
söa d÷ liÖu
th«ng tin ngµy c«ng
cËp nhËt l¬ng
t×m kiÕm theo ma nv
t×m kiÕm theo m· long
thèng kª theo tr×nh ®é
b¸o c¸o l¬ng nh©n sù
hÖ thèng
trî gióp
b¶n quyÒn
híng dÉn
thèng kª danh s¸ch ®Õn tuæi nghØ chÕ ®é
t×m kiÕm theo tr×nh ®é
in b¶ng l¬ng
nghØ viÖc
tho¸t
thèng kª danh s¸ch lªn l¬ng hµng n¨m
II. Các chức năng chính của hệ thống và nhiêm vụ cơ bản của các chức năng.
Các chức năng chính của hệ thống
-Hệ thống
-Quản lí hồ sơ
-Quản lí lương
-Báo cáo thống kê
-Trợ giúp
2. Nhiệm vụ cơ bản của các chức năng
2.1. Chức năng hệ thống.
Chức năng này có nhiệm vụ giúp người xem truy cập vào hệ thống dễ dàng.
-Chức năng quản trị người dùng:
-Chức năng này có nhiệm vụ quản lí người đăng nhập vào hệ thống.
-Chức năng từ điển dữ liệu:
Chức năng này có nhiệm vụ tra cứu dữ liệu của từng nhân viên theo mã của nhân viên
-Chức năng thoát:
Chức năng này có nhiệm vụ thoát ra khỏi chương trình khi người dùng đã tra cứu xong hoặc không muốn tra cứu nữa.
2.2. Chức năng quản lí hồ sơ.
Chức năng này có nhiệm vụ quản lí tất cả các thông tin của nhân viên trong cơ quan. Có thể tra cứu về nhân viên theo: lí lịch, quan hệ gia đình, quá trình công tác
-Chức năng nhập hồ sơ
Chức năng này làm nhiệm vụ nhập tất cả thông tin ban đầu có liên quan đến nhân viên mới đến làm việc tại cơ quan (ten, tuổi, công việc) theo các loại hồ sơ biên chế, hợp đồng ngắn hạn và hợp đồng dài hạn. thông tin cá nhân có sự khác nhau cơ bản về lương và công việc.
-Chức năng sửa hồ sơ
Chức năng này làm nhiệm vụ sửa lại các thônh tin có liên quan đến công việc, lí lịch, quan hệ gia đình của nhân viên trong cơ quan (thông tin mới về công việc, thay đổi về lí lịch, quan hệ gia đình như lấy vợ, lấy chồng).
-Chức năng nghỉ việc
Chức năng này có nhiệm vụ thông báo lí do nghỉ việc của nhân viên trong công ty.
2.3. Chức năng quản lí lương
Chức năng này có nhiệm vụ dựa vào số ngày công trong tháng của từng nhân viên để tính lương cho nhân viên và phát lương cho nhân viên trong quá trình công tác.
-Chức năng thông tin ngày công
có nhiệm vụ hàng ngày phải chấm công cho nhân viên trong công ty và nhập số ngày công của mỗi nhân viên trong một tháng hay trong cả quá trình công tác.
-Chức năng cập nhật lương
Chức năng này có nhiệm vụ lấy các thông tin của từng nhân viên như số ngày công, hệ số lươngđể tính lương cho nhân viên trong công ty.Lương được tính như sau:
+Lương cơ bản cố định là: 290000đ
+Mức lươnh chính= lương cơ bản * hệ số lương
+Mức phụ cấp chức vụ= lương cơ bản * hệ số phụ cấp
+Tổng mức lương= lương cơ bản +phụ cấp chức vụ (nếu có)
+Bảo hiểm xã hội = tổng mức lương * 5%
+Tổng mức lương thực lĩnh = tổng mức lương – mức bảo hiểm xã hội.
-Chức năng nhập bảng lương
Chức năng này có nhiệm vụ lấy thông tin về lương của mỗi nhân viên để lập ra một bảng lương của toàn nhân viên trong công ty.
-Chức năng thống kê danh sách lên lương hàng năm
Chức năng này có nhiệm vụ cập nhật thông tin của nhân viên như trình độ, quá trình công tác, ưu tiênđể tổng kết xem những nhan viên nào được tăng lương trong năm.
2.4. Chức năng thống kê báo cáo
Chức năng này có nhiệm vụ đưa ra danh sách nhân viên, đưa ra báo cáo thống kê về nhân viên, thống kê về trình độ của nhân viên theo yêu cầu của ban lãnh đạo phục vụ cho công tác quản lí và hoạt độn của công ty.
-Chức năng thống kê theo trình độ
Chức năng này có nhiệm vụ khi có yêu cầu, chức năng này sẽ in ra những báo cáo thống kê theo trình độ của nhân viên theo yêu cầu của ban lãnh đạo.chẳng hạn nó sẽ đưa ra trong cơ quan có bao nhiêu người là tiến sĩ, thạc sĩ, có bao nhiêu người trình độ đại học.
-Chức năng thống kê danh sách nhân viên đến tuổi nghỉ chế độ
Chức năng này có nhiệm vụ mối năm sẽ in ra một danh sach các nhân viên đến tuổi nghỉ chế độ.chức năng này sẽ lấy thông tin về quá trình công tác của nhân viên từ kho dữ liệu hồ sơ trong chức năng quản lí hồ sơ để thống kê lên danh sách đó và nộp cho ban lãnh đạo.
-Chức năng báo cáo lương nhân sự
Chức năng này có nhiệm vụ sẽ chỉ in ra báo cáo về lương của nhân viên theo yêu cầu của ban giám đốc. dữ liệu đầu vào của chức năng này được lấy ra từ kho dữ liệu bảng lương do chức năng quản lí lương cung cấp.
III. Phân tích dữ liệu
1. Mô hình luồng dữ liệu mức khung cảnh
Nh©n viªn
Hå s¬ nh©n viªn
Qu¶n lý nh©n sù
Nhµ qu¶n lý
Th«ng tin nh©n viªn
Th«ng tin tr¶ lêi
C¸c quyÕt ®Þnh
2. Mô hình luồng dữ liệu mức đỉnh
QLHS
Th«ng tin NV
C¸c quyÕt ®Þnh
Nh©n viªn
T/tin tr¶
lêi
T/t NV
Qu¶n lý l¬ng
Th«ng tin
yªu cÇu
Th«ng tin
tr¶
lêi
Th«ng tin vÒ l¬ng
Ngµy c«ng
Th«ng tin
yªu cÇu
Th«ng tin ngµy c«ng
Hå s¬
T/tin tr¶ lêi
Th«ng tin
yªu cÇu
B¸o c¸o thèng kª
B¸o c¸o yªu cÇu
C¸c yªu cÇu
Nhµ qu¶n lý
3. Mô hình luồng dữ liệu mức dưới đỉnh
3.1 Mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lí hồ s¬
Nhµ qu¶n lý
Nh¸n viªn
NhËp HS
Söa HS
Th«ng tin
NV
Th«ng tin
NV
Th«ng tin
c¸ nh©n cÇn nhËp
Th«ng tin
c¸ nh©n cÇn söa
Hå s¬
Th«ng tin hå s¬ ®îc nhËp
Th«ng
Tin hå
s¬ ®îc
söa
T×m kiÕm
Th«ng tin
hå
s¬
®· ®îc t×m
Th«ng tin
hå
s¬
cÇn
t×m kiÕm
Yªu cÇu t×m kiÕm
Th«ng tin c¸ nh©n
3.2 Mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lí lương
Tæng sè ngµy c«ng
Th«ng
tin vÒ
hÖ sè l¬ng cña NV
CËp nhËt l¬ng
Th«ng tin ngµy c«ng
Nh©n viªn
Ngµy c«ng
Hå s¬
LËp b¶ng l¬ng nh©n sù
B¶ng l¬ng
TK danh s¸ch lªn l¬ng
T×m kiÕm
Ban l·nh ®¹o
Danh s¸ch nh÷ng ngêi ®îc lªn ®êng
Th«ng tin
theo
yªu
cÇu
Th«ng
tin
theo
yªu
cÇu
Th«ng tin
theo
yªu
cÇu
3.3 Mô hình luồng dữ liệu mức dưới đỉnh chức năng báo cáo thống kê
Qu¶n lý l¬ng
B¶ng l¬ng
T.tin
y/c
T/tin
tr¶
lêi
B¸o c¸o l¬ng
nh©n sù
Nhµ qu¶n lý
Th«ng
tin
y/c
Thèng kª theo
tr×nh ®é
Th«ng
tin
yªu
cÇu
B¶ng
l¬ng
cña NV
In
Th«ng tin vÒ tr×nh ®ä cña NV
Hå s¬
TK theo tr×nh ®é NN
Thèng kª ®Õn tuæi nghØ chÕ ®é
Th«ng tin
yªu
cÇu
tr×nh
®é
Th«ng tin
yªu cÇu
Danh
s¸ch nh©n
viªn
®Õn
tuæi
nghØ
chÕ
®é
Ch¬ng III: ThiÕt kÕ hÖ thèng
I.ThiÕt kÕ c¬ së d÷ liÖu
S¬ ®å liªn kÕt thùc thÓ
§Ó x©y dùng mét hÖ c¬ së d÷ liÖu gióp cho m¸y tÝnh lµm viÖc cã hiÖu qu¶ cao trong qu¸ tr×nh xö lý c¸c c«ng viÖc, ta ph¶i thiÕt kÕ mét hÖ c¬ së d÷ liÖu ®¶m b¶o ®îc nh÷ng yªu cÇu sau.
Tr¸nh ®îc sù d thõa th«ng tin, d÷ liÖu
§¶m b¶o ®îc sù an toµn d÷ liÖu, tr¸nh sù mÊt m¸t th«ng tin khi thùc hiÖn c«ng viÖc.
§¶m b¶o gi¶m ®îc ®é phøc t¹p tÝnh to¸n, dÔ sö dông khi khai th¸c d÷ liÖu. Giai ®o¹n nµy dùa trªn c¸c mÉu biÓu thu thËp th«ng tin ®Çu vµo cña hÖ thèng. Ngoµi th«ng tin nhËn ®îc khi tiÕn hµnh ph©n tÝch c¸c mÉu biÓu th× qu¸ tr×nh tiÕp xóc còng lµ nguån th«ng tin quan träng gióp x¸c ®Þnh c¸c thùc thÓ, kiÓu thùc thÓ, mçi quan hÖ c¸c thùc thÓ.
Víi mçi thùc thÓ cÇn x¸c ®Þnh c¸c th«ng tin nh: Tªn thùc thÓ, thuéc tÝnh, quan hÖ gi÷a c¸c thùc thÓ, khãa. Sau khi chuÈn hãa m« h×nh thùc thÓ liªn kÕt dùa theo d¹ng chuÈn 3 cña m« h×nh d÷ liÖu quan hÖ ta thu ®îc m« h×nh thùc thÓ liªn kÕt.
M« h×nh thùc thÓ liªn kÕt
Dïng ®Ó x¸c ®Þnh c¸c th«ng tin c¬ së cã Ých cho hÖ thèng gióp ta nhËn râ mèi quan hÖ bªn trong hoÆc c¸c tham trá chÐo gi÷a chóng. M« h×nh luång d÷ liÖu chøa ®Çy ®ñ c¸c thuéc tÝnh hay c¸c c¬ së d÷ liÖu cÇn thiÕt cho c«ng t¸c qu¶n lý. Tr¸nh ®îc møc d thõa hay tæn thÊt nhÊt ®Þnh, thuËn lîi cho viÖc x©y dùng vµ thiÕt kÕ ch¬ng tr×nh.
Tõ sù ph©n tÝch vÒ hÖ thèng chøc n¨ng xö lý cña hÖ thèng biÓu ®å ph©n cÊp chøc n¨ng, biÓu ®å luång d÷ liÖu ta cã thÓ x©y dùng m« h×nh thùc thÓ liªn kÕt ®Ó lu tr÷ c¸c th«ng tin vÒ c¸c thùc thÓ nh sau:
Luong
Maluong
Hsluong
Tongiao
Matongiao
Tentongiao
Phongban
Mapb
Tenpb
Trinhdong..
Matdnn
Tentdnn
Dantoc
Madantoc
Tendantoc
Trinhdoch..
Matdcm
Tentdcm
Ngaycong
Manv
Ngaycong
Thang
Nam
1
1
1
1
1
1
∞
∞
∞
∞
∞
∞
Hoso
Manv
Maluong
Mapb
Hoten
Ngaysinh
Gioitinh
Socmnd
Matdcm
Matdnn
Hktt
Diachi
Madantoc
Matongiao
Ngayvaodoan
Ngayvaodang
Khenthuong Kyluat
Qtct
∞
1
ThiÕt kÕ tÖp
Môc ®Ých: X©y dùng d÷ liÖu tõ biÓu ®å cÊu tróc d÷ liÖu cã th«ng tin ®Çy ®ñ vµ cho phÐp truy nhËp nhanh. Ph¬ng thøc tiÕn hµnh dùa trªn hÖ qu¶n trÞ c¬ së d÷ liÖu cã s½n sö dông c¸c ng«n ng÷ ®Þnh nghÜa d÷ liÖu ®Ó x©y dùng c¸c tÖp d÷ liÖu.
1. B¶ng HOSO
HOSO
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MANV
C
5
m· nh©n viªn
MAPB
C
5
m· phßng ban
MALUONG
C
5
m· l¬ng
HOTEN
C
22
hä tªn
NGAYSINH
D
8
ngµy sinh
GIOITINH
C
8
giíi tÝnh
DIACHI
C
28
®Þa chØ
CHUCDANH
C
10
chøc danh
MATDCM
C
6
m· tr×nh ®é chuyªn m«n
MATDNN
C
6
m· tr×nh ®é ngo¹i ng÷
HKTT
C
20
hé khÈu thêng tró
DANTOC
C
10
d©n téc
TONGIAO
C
10
t«n gi¸o
NVDOAN
D
8
ngµy vµo ®oµn
NVDANG
D
8
ngµy vµo ®¶ng
KHENTHUONG
M
khen thëng
KYLUAT
M
kû luËt
QTCT
M
qu¸ tr×nh c«ng t¸c
2. B¶ng LUONG
LUONG
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MALUONG
C
5
m· l¬ng
HSLUONG
N
5
hÖ sè l¬ng
LUONGCB
N
10
l¬ng c¬ b¶n
3. B¶ng PHONGBAN
PHONGBAN
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MAPB
C
5
m· phßng ban
TENPB
C
5
tªn phßng ban
4. B¶ng TONGIAO
TONGIAO
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MATONGIAO
C
5
m· t«n gi¸o
TENTONGIAO
C
5
tªn t«n gi¸o
5. B¶ng NGAYCONG
NGAYCONG
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MANV
C
5
m· nh©n viªn
NGAYCONG
C
5
ngµy c«ng
THANG
C
5
th¸ng
NAM
C
5
n¨m
6. B¶ng TRINHDOCM
TRINHDOCM
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MATDCM
C
5
m· tr×nh ®é chuyªn m«n
TENTDCM
C
5
tªn tr×nh ®é chuyªn m«n
7. B¶ng TRINHDONN
TRINHDONN
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MATDNN
C
5
m· tr×nh ®é ngo¹i ng÷
TENTDNN
C
5
tªn tr×nh ®é ngo¹i ng÷
8. B¶ng DANTOC
DANTOC
Thuéc tÝnh
Lo¹i
§é réng
Gi¶i thÝch
Thùc thÓ
MADANTOC
C
5
m· d©n téc
TENDANTOC
C
5
tªn d©n téc
Ch¬ng IV. CµI §ÆT Vµ øNG DôNG
I. Mét sè giao diÖn chÝnh vµ ho¹t ®éng
1. Form hå s¬ cho phÐp nhËp, söa, xo¸ th«ng tin nh©n viªn
Dim fag As Integer
Private Sub cmdAE_Click()
Dim sql As String
Dim sex As Integer
Call Opendb
Select Case cmdAE.Caption
Case "T¹o míi"
fag = 0
cmdAE.Caption = "Lu l¹i"
Call AddEnableT
'txtSex = txtSex.List(0)
'txtTG = txtTG.List(0)
'txtDT = txtDT.List(0)
'txtPB = txtPB.List(0)
'txtTDCM = txtTDCM.List(0)
'txtTDNN = txtTDNN.List(0)
'txtLuong = txtLuong.List(0)
txtHoTen.SetFocus
lstNV.Enabled = False
Case "Söa ®æi"
fag = 1
cmdAE.Caption = "Lu l¹i"
Call AddEnableT
txtHoTen.SetFocus
lstNV.Enabled = False
Case "Lu l¹i"
If Trim(txtHoTen) = "" Or Trim(txtDiachi) = "" _
Or Trim(txtCMND) = "" Or Trim(txtHKTT) = "" _
Or txtSex.ListIndex < 0 Or txtLuong.ListIndex < 0 _
Or txtPB.ListIndex < 0 Or txtDT.ListIndex < 0 _
Or txtTG.ListIndex < 0 Or txtTDCM.ListIndex < 0 _
Or txtTDNN.ListIndex < 0 Then
MsgBox " B¹n ph¶i ®iÒn ®Çy ®ñ th«ng tin vµo c¸c « trèng.", vbInformation, "Th«ng b¸o"
Exit Sub
End If
If txtSex = "Nam" Then
sex = 1
Else
sex = 0
End If
If fag = 0 Then
sql = "insert into hoso(maluong,mapb,hoten,ngaysinh,gioitinh,socmnd,matdcm,matdnn,hktt,diachi,madantoc,matongiao,ngayvaodoan,ngayvaodang)"
sql = sql & "Values(" & txtLuong.ItemData(txtLuong.ListIndex) & "," & txtPB.ItemData(txtPB.ListIndex) & ",'" & txtHoTen & "','" & txtNgaysinh & "','"
sql = sql & sex & "'," & txtCMND & "," & txtTDCM.ItemData(txtTDCM.ListIndex) & "," & txtTDNN.ItemData(txtTDNN.ListIndex) & ",'" & txtHKTT & "','"
sql = sql & txtDiachi & "'," & txtDT.ItemData(txtDT.ListIndex) & "," & txtTG.ItemData(txtTG.ListIndex) & ",'" & txtDoan & "','" & txtDang
sql = sql & "')"
db.Execute sql
cmdAE.Caption = "T¹o míi"
ElseIf fag = 1 Then
sql = "Update hoso set maluong=" & txtLuong.ItemData(txtLuong.ListIndex) & ",mapb=" & txtPB.ItemData(txtPB.ListIndex) & ",hoten='" & txtHoTen & "',ngaysinh='" & txtNgaysinh
sql = sql & "',gioitinh='" & sex
sql = sql & "',socmnd=" & txtCMND
sql = sql & ",matdcm=" & txtTDCM.ItemData(txtTDCM.ListIndex)
sql = sql & ",matdnn=" & txtTDNN.ItemData(txtTDNN.ListIndex)
sql = sql & ",hktt='" & txtHKTT
sql = sql & "',diachi='" & txtDiachi & "',madantoc=" & txtDT.ItemData(txtDT.ListIndex) & ",matongiao=" & txtTG.ItemData(txtTG.ListIndex) & ",ngayvaodoan='" & txtDoan & "',ngayvaodang ='" & txtDang & "'"
sql = sql & " where manv=" & txtManv
db.Execute sql
cmdAE.Caption = "Söa ®æi"
End If
Call Form_Load
Call AddEnableF
lstNV.Enabled = True
Call ClearTT
End Select
Call Closedb
End Sub
Private Sub cmdCancel_Click()
If fag = 0 Then
cmdAE.Caption = "T¹o míi"
Call ClearTT
Else
cmdAE.Caption = "Söa ®æi"
End If
Call AddEnableF
End Sub
Private Sub cmdDel_Click()
Dim a, sql As String
Dim rs As Recordset
Dim i As Integer
If lstNV.ListIndex < 0 Then
MsgBox "Chän tªn trªn danh s¸ch ®Ó ®a vµo danh s¸ch nh÷ng ngêi" & Chr(13) & "kh«ng lµm viÖc n÷a.", vbInformation, "Th«ng b¸o"
Exit Sub
End If
a = MsgBox("B¹n cã ch¾c ch¾n kh«ng?", vbQuestion + vbYesNo, "Chó ý")
If a = vbYes Then
Call Opendb
sql = "Select * from hoso where manv=" & lstNV.ItemData(lstNV.ListIndex)
Set rs = db.OpenRecordset(sql)
sql = "insert into nghiviec(manv,maluong,mapb,hoten,ngaysinh,gioitinh,socmnd,matdcm,matdnn,hktt,diachi,madantoc,matongiao,ngayvaodoan,ngayvaodang)"
sql = sql & "Values(" & rs("manv") & "," & rs("maluong") & "," & rs("mapb") & ",'" & rs("hoten") & "','" & rs("ngaysinh") & "','"
sql = sql & rs("gioitinh") & "'," & rs("socmnd") & "," & rs("matdcm") & "," & rs("matdnn") & ",'" & rs("hktt") & "','"
sql = sql & rs("Diachi") & "'," & rs("madantoc") & "," & rs("matongiao") & ",'" & rs("ngayvaodoan") & "','" & rs("ngayvaodang")
sql = sql & "')"
db.Execute sql
db.Execute "Delete * from hoso where manv=" & lstNV.ItemData(lstNV.ListIndex)
Call Closers(rs)
MsgBox "Hoµn thµnh c«ng viÖc."
Call Closedb
Call Form_Load
End If
End Sub
Private Sub Form_Load()
Dim sql, term, tu, toi As String
Dim rs1 As Recordset
Dim i, dem As Integer
Call Opendb
sql = "Select * from tdcm"
Set rs1 = db.OpenRecordset(sql)
txtTDCM.Clear
i = 0
While Not rs1.EOF
txtTDCM.AddItem rs1(1)
txtTDCM.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
'luong
sql = "Select * from luong"
Set rs1 = db.OpenRecordset(sql)
txtLuong.Clear
i = 0
While Not rs1.EOF
txtLuong.AddItem rs1(1) & " * " & rs1(2)
txtLuong.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
sql = "Select * from tdnn"
Set rs1 = db.OpenRecordset(sql)
txtTDNN.Clear
i = 0
While Not rs1.EOF
txtTDNN.AddItem rs1(1)
txtTDNN.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
sql = "Select * from dantoc"
Set rs1 = db.OpenRecordset(sql)
txtDT.Clear
i = 0
While Not rs1.EOF
txtDT.AddItem rs1(1)
txtDT.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
sql = "Select * from phongban"
Set rs1 = db.OpenRecordset(sql)
txtPB.Clear
i = 0
While Not rs1.EOF
txtPB.AddItem rs1(1)
txtPB.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
sql = "Select * from tongiao"
Set rs1 = db.OpenRecordset(sql)
txtTG.Clear
i = 0
While Not rs1.EOF
txtTG.AddItem rs1(1)
txtTG.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
txtSex.Clear
txtSex.AddItem "Nam"
txtSex.AddItem "Nu"
If Len(sTim) > 0 Then
term = right(sTim, 1)
sTim = Left(sTim, Len(sTim) - 1)
Select Case term
Case "M"
sql = "Select manv,hoten from hoso where manv=" & sTim
Case "T"
sql = "Select manv,hoten from hoso where matdcm=" & sTim
Case "L"
dem = InStr(1, sTim, "A", vbTextCompare)
tu = Mid(sTim, 1, dem - 1)
toi = Mid(sTim, dem + 1)
With frmTimL
If .optB = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong =" & tu
If .optL = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong >=" & tu
If .optN = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong <=" & tu
If .optK = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong >= " & tu & " and l.luong <= " & toi
End With
End Select
Else
sql = "Select manv,hoten from hoso"
End If
Set rs1 = db.OpenRecordset(sql)
lstNV.Clear
i = 0
While Not rs1.EOF
lstNV.AddItem rs1(1)
lstNV.ItemData(i) = rs1(0)
rs1.MoveNext
i = i + 1
Wend
Call Closers(rs1)
Call Closedb
Call AddEnableF
cmdCancel.Enabled = False
End Sub
Sub AddEnableT()
'txtManv.Enabled = True
txtHoTen.Enabled = True
txtNgaysinh.Enabled = True
txtDiachi.Enabled = True
txtSex.Enabled = True
txtPB.Enabled = True
txtTDCM.Enabled = True
txtTDNN.Enabled = True
txtCMND.Enabled = True
txtHKTT.Enabled = True
txtDang.Enabled = True
txtDoan.Enabled = True
txtDT.Enabled = True
txtTG.Enabled = True
txtLuong.Enabled = True
cmdCancel.Enabled = True
End Sub
Sub AddEnableF()
txtManv.Enabled = False
txtHoTen.Enabled = False
txtNgaysinh.Enabled = False
txtDiachi.Enabled = False
txtSex.Enabled = False
txtPB.Enabled = False
txtTDCM.Enabled = False
txtTDNN.Enabled = False
txtCMND.Enabled = False
txtHKTT.Enabled = False
txtDang.Enabled = False
txtDoan.Enabled = False
txtDT.Enabled = False
txtTG.Enabled = False
txtLuong.Enabled = False
cmdCancel.Enabled = False
End Sub
Sub ClearTT()
txtHoTen = ""
txtDiachi = ""
txtHKTT = ""
txtDoan = ""
txtDang = ""
txtCMND = ""
txtManv = ""
End Sub
Private Sub lstNV_Click()
Dim rs As Recordset
Dim sql, a As String
Dim i As Integer
Call Opendb
With lstNV
If .ListIndex >= 0 Then
sql = "select * from hoso where manv=" & .ItemData(.ListIndex)
Set rs = db.OpenRecordset(sql)
If Not rs.EOF Then
txtManv = rs("manv")
txtHoTen = rs("hoten")
txtNgaysinh = rs("ngaysinh")
If rs("gioitinh") = False Then
txtSex = "Nu"
Else
txtSex = "Nam"
End If
txtDiachi = rs("diachi")
txtCMND = rs("socmnd")
txtHKTT = rs("hktt")
txtDoan = rs("ngayvaodoan")
txtDang = rs("ngayvaodang")
'tdcm
For i = 0 To txtTDCM.ListCount - 1
If rs("matdcm") = txtTDCM.ItemData(i) Then txtTDCM = txtTDCM.List(i)
Next
'tdnn
For i = 0 To txtTDNN.ListCount - 1
If rs("matdnn") = txtTDNN.ItemData(i) Then txtTDNN = txtTDNN.List(i)
Next
'dt
For i = 0 To txtDT.ListCount - 1
If rs("madantoc") = txtDT.ItemData(i) Then txtDT = txtDT.List(i)
Next
'tg
For i = 0 To txtTG.ListCount - 1
If rs("matongiao") = txtTG.ItemData(i) Then txtTG = txtTG.List(i)
Next
'pb
For i = 0 To txtPB.ListCount - 1
If rs("mapb") = txtPB.ItemData(i) Then txtPB = txtPB.List(i)
Next
'luong
For i = 0 To txtLuong.ListCount - 1
If rs("maluong") = txtLuong.ItemData(i) Then txtLuong = txtLuong.List(i)
Next
End If
End If
End With
Call Closers(rs)
Call Closedb
cmdAE.Enabled = True
End Sub
2. Form b¶ng l¬ng theo th¸ng
Sub loadBL()
With txtBL
.Clear
.Cols = 5
.Rows = 2
.ColWidth(0) = 3000
.ColAlignment(0) = 3
.ColWidth(1) = 3000
.ColWidth(2) = 1500
.ColWidth(3) = 1500
.ColWidth(4) = 1500
.ColAlignment(1) = 3
.ColAlignment(2) = 3
.ColAlignment(3) = 3
.ColAlignment(4) = 3
.TextMatrix(0, 0) = "Tªn nh©n viªn"
.TextMatrix(0, 1) = "Ngµy c«ng"
.TextMatrix(0, 2) = "L¬ng cb"
.TextMatrix(0, 3) = "Hs L¬ng"
.TextMatrix(0, 4) = "L¬ng"
End With
End Sub
Private Sub Form_Load()
Dim i As Integer
Call loadBL
txtNam.Clear
For i = 2000 To 2200
txtNam.AddItem i
Next
txtThang.Clear
For i = 1 To 12
txtThang.AddItem i
Next
txtThang = txtThang.List(7)
txtNam = txtNam.List(4)
End Sub
Private Sub txtNam_Click()
Dim sql As String
Dim rs As Recordset
Dim i, j As Integer
Call Opendb
sql = "Select s.hoten,c.songaycong,l.luongcb,l.hsluong from hoso s,luong l,ngaycong c where s.maluong=l.maluong and s.manv=c.manv and c.thang='" & txtThang & "' and c.nam='" & txtNam & "'"
Set rs = db.OpenRecordset(sql)
Call loadBL
i = 1
With txtBL
While Not rs.EOF
.TextMatrix(i, 0) = rs("hoten")
.TextMatrix(i, 1) = rs("songaycong")
.TextMatrix(i, 2) = rs("luongcb")
.TextMatrix(i, 3) = rs("hsluong")
.TextMatrix(i, 4) = Val(rs("luongcb")) * Val(rs("hsluong"))
rs.MoveNext
i = i + 1
Wend
End With
Call Closedb
End Sub
Private Sub txtThang_Click()
Call txtNam_Click
End Sub
3. Form b¶ng chÊm c«ng vµ b¶ng cËp nhËt l¬ng c¬ b¶n
Private Sub back_Click()
Frame1.Enabled = True
Frame2.Enabled = False
txtC = ""
End Sub
Private Sub cmdCham_Click()
Dim sql As String
Dim rs As Recordset
Call Opendb
If Trim(txtC) = "" Then Exit Sub
Set rs = db.OpenRecordset("select manv from ngaycong where manv=" & lstDs.ItemData(lstDs.ListIndex) & " and thang='" & txtThang.ItemData(txtThang.ListIndex) & "' and nam='" & txtNam & "'")
If Not rs.EOF Then
MsgBox "Nh©n viªn nµy ®· ®îc chÊm c«ng."
Exit Sub
End If
sql = "Insert into ngaycong(manv,songaycong,thang,nam)values(" & lstDs.ItemData(lstDs.ListIndex) & "," & txtC & ",'" & txtThang.ItemData(txtThang.ListIndex) & "','" & txtNam & "')"
db.Execute sql
Frame1.Enabled = True
Frame2.Enabled = False
txtC = ""
Call Closedb
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim rs As Recordset
Dim sql As String
Call Opendb
txtNam.Clear
For i = 2000 To 2200
txtNam.AddItem i
Next
txtThang.Clear
For i = 1 To 12
txtThang.AddItem "Th¸ng " & i
txtThang.ItemData(i - 1) = i
Next
txtNam = txtNam.List(4)
txtThang = txtThang.List(7)
lstDs.Clear
sql = "select manv,hoten from hoso"
Set rs = db.OpenRecordset(sql)
i = 0
While Not rs.EOF
lstDs.AddItem rs(1)
lstDs.ItemData(i) = rs(0)
rs.MoveNext
i = i + 1
Wend
lstDs = lstDs.List(0)
Frame2.Enabled = False
Call Closedb
End Sub
Private Sub lstDs_DblClick()
Frame2.Enabled = True
Frame1.Enabled = False
End Sub
Private Sub Command2_Click()
Dim sql As String
Call Opendb
If txtLcb = "" Or txtHsl = "" Then
MsgBox "B¹n ph¶i ®iÒn ®Çy ®ñ th«ng tin."
Exit Sub
End If
sql = "Insert into luong (luongcb,hsluong,luong)values(" & txtLcb & "," & txtHsl & "," & Val(txtLcb) * Val(txtHsl) & ")"
db.Execute sql
Call Closedb
Call Form_Load
End Sub
Private Sub Form_Load()
Dim rs As Recordset
Call Opendb
Set rs = db.OpenRecordset("select * from luong")
lstLcb.Clear
lstHsl.Clear
While Not rs.EOF
lstLcb.AddItem rs(1)
lstHsl.AddItem rs(2)
rs.MoveNext
Wend
txtLcb = ""
txtHsl = ""
Call Closedb
End Sub
Private Sub lstLcb_Click()
lstHsl = lstHsl.List(lstLcb.ListIndex)
End SuB
4. T×m kiÕm theo l¬ng vµ tr×nh ®é chuyªn m«n
Private Sub cmdOK_Click()
If Val(txtTu) < 0 Or Val(txtToi) < 0 Then Exit Sub
If Val(txtTu) > Val(txtToi) And optK = True Then
MsgBox "Gi¸ trÞ b¾t ®Çu ph¶i lín h¬n hoÆc b»ng gi¸ trÞ cuèi.", vbInformation, "Th«ng b¸o"
Exit Sub
End If
sTim = Trim(txtTu & "A" & txtToi & "L")
frmHoso.Show
End Sub
Private Sub cmdTDOK_Click()
sTim = txtTDCM.ItemData(txtTDCM.ListIndex) & "T"
frmHoso.Show
End Sub
Private Sub Form_Load()
Dim rs As Recordset
Dim i As Integer
Call Opendb
Set rs = db.OpenRecordset("select * from TDCM")
txtTDCM.Clear
i = 0
While Not rs.EOF
txtTDCM.AddItem rs(1)
txtTDCM.ItemData(i) = rs(0)
rs.MoveNext
i = i + 1
Wend
txtTu = 0
txtToi = 0
optB_Click
Closedb
End Sub
Private Sub optB_Click()
txtToi.Enabled = False
End Sub
Private Sub optK_Click()
txtToi.Enabled = True
End Sub
Private Sub optL_Click()
txtToi.Enabled = False
End Sub
Private Sub optN_Click()
txtToi.Enabled = False
End Sub
5. Form t×m kiÕm theo tr×nh ®é
Private Sub cboTD_Click()
Dim rs As Recordset
Dim sql As String
Dim i, j As Integer
Call Opendb
sql = "Select s.hoten,p.tenpb,s.ngaysinh,s.gioitinh,s.socmnd,cm.diengiai,nn.diengiai,s.hktt,s.diachi,dt.diengiai,t.diengiai,s.ngayvaodoan,s.ngayvaodang from phongban p,hoso s,luong l,tdcm cm,tdnn nn,tongiao t,dantoc dt where s.maluong=l.maluong and s.matongiao=t.matongiao and s.madantoc=dt.madantoc And s.mapb = p.mapb and cm.matdcm=s.matdcm and s.matdnn=nn.matdnn and cm.matdcm=" & cboTD.ItemData(cboTD.ListIndex)
Set rs = db.OpenRecordset(sql)
Call loadBL
If rs.EOF Then Exit Sub
rs.MoveLast
rs.MoveFirst
i = 1
With txtBL
.Rows = rs.RecordCount + 1
While Not rs.EOF
For j = 0 To rs.Fields.Count - 1
.TextMatrix(i, j) = rs(j)
Next
rs.MoveNext
i = i + 1
Wend
End With
Call Closedb
End Sub
Private Sub Form_Load()
Dim rs As Recordset
Dim i As Integer
loadBL
Call Opendb
Set rs = db.OpenRecordset("Select * from tdcm")
i = 0
cboTD.Clear
While Not rs.EOF
cboTD.AddItem rs(1)
cboTD.ItemData(i) = rs(0)
rs.MoveNext
i = i + 1
Wend
cboTD = cboTD.List(0)
optTim(2) = True
Call Closedb
End Sub
Sub loadBL()
Dim i As Integer
With txtBL
.Clear
.Cols = 13
.Rows = 2
.ColWidth(0) = 3000
.ColWidth(1) = 2000
.ColWidth(2) = 1500
.ColWidth(3) = 1000
.ColWidth(4) = 1500
.ColWidth(5) = 3000
.ColWidth(6) = 3000
.ColWidth(7) = 3000
.ColWidth(8) = 3000
.ColWidth(9) = 3000
.ColWidth(10) = 3000
.ColWidth(11) = 2000
.ColWidth(12) = 2000
For i = 0 To .Cols - 1
.ColAlignment(i) = 3
Next
.TextMatrix(0, 0) = "Tªn nh©n viªn"
.TextMatrix(0, 1) = "Phßng ban"
.TextMatrix(0, 2) = "Ngµy sinh"
.TextMatrix(0, 3) = "Giíi tÝnh"
.TextMatrix(0, 4) = "Sè CMND"
.TextMatrix(0, 5) = "Tr×nh ®é chuyªn m«n"
.TextMatrix(0, 6) = "Tr×nh ®é ngo¹i ng÷"
.TextMatrix(0, 7) = "Hé khÈu thêng tró"
.TextMatrix(0, 8) = "§Þa chØ"
.TextMatrix(0, 9) = "D©n téc"
.TextMatrix(0, 10) = "T«n gi¸o"
.TextMatrix(0, 11) = "Ngµy vµo §oµn"
.TextMatrix(0, 12) = "Ngµy vµo §¶ng"
End With
End Sub
Private Sub optTim_Click(Index As Integer)
Dim rs As Recordset
Dim sql As String
Dim i, j As Integer
Select Case Index
Case 2
cboTD.Enabled = True
Case 1
cboTD.Enabled = False
Call Opendb
sql = "Select s.hoten,p.tenpb,s.ngaysinh,s.gioitinh,s.socmnd,cm.diengiai,nn.diengiai,s.hktt,s.diachi,dt.diengiai,t.diengiai,s.ngayvaodoan,s.ngayvaodang from phongban p,nghiviec s,luong l,tdcm cm,tdnn nn,tongiao t,dantoc dt where s.maluong=l.maluong and s.matongiao=t.matongiao and s.madantoc=dt.madantoc And s.mapb = p.mapb and cm.matdcm=s.matdcm and s.matdnn=nn.matdnn" ' and cm.matdcm=" & cboTD.ItemData(cboTD.ListIndex)
Set rs = db.OpenRecordset(sql)
Call loadBL
If rs.EOF Then Exit Sub
rs.MoveLast
rs.MoveFirst
i = 1
With txtBL
.Rows = rs.RecordCount + 1
While Not rs.EOF
For j = 0 To rs.Fields.Count - 1
.TextMatrix(i, j) = rs(j)
Next
rs.MoveNext
i = i + 1
Wend
End With
Call Closedb
End Select
End Sub
6. Qu¶n lý th«ng tin vÒ t«n gi¸o, d©n téc, chuyªn m«n
Dim fag As Integer
Dim sTable, f1, f2 As String
Private Sub cmdAction_Click(Index As Integer)
Dim sql As String
Call Opendb
Select Case Index
Case 0
'add
If cmdAction(0).Caption = "Thªm" Then
cmdAction(0).Caption = "Hñy bá"
fag = 0
Frame1.Enabled = False
Frame2.Enabled = False
Frame4.Enabled = True
cmdAction(3).Enabled = True
ElseIf cmdAction(0).Caption = "Hñy bá" Then
cmdAction(0).Caption = "Thªm"
Frame1.Enabled = True
Frame2.Enabled = True
Frame4.Enabled = False
cmdAction(3).Enabled = False
fag = 2
End If
Case 1
'edit
If cmdAction(1).Caption = "Thay ®æi" Then
If lstDs.ListIndex >= 0 Then
fag = 1
cmdAction(1).Caption = "Hñy bá"
Frame1.Enabled = False
Frame2.Enabled = False
Frame4.Enabled = True
cmdAction(3).Enabled = True
cmdAction(0).Enabled = False
cmdAction(2).Enabled = False
txtDs = lstDs.List(lstDs.ListIndex)
End If
ElseIf cmdAction(1).Caption = "Hñy bá" Then
cmdAction(1).Caption = "Thay ®æi"
Frame1.Enabled = True
Frame2.Enabled = True
Frame4.Enabled = False
cmdAction(3).Enabled = False
cmdAction(0).Enabled = True
cmdAction(2).Enabled = True
fag = 2
txtDs = ""
End If
Case 2
'del
sql = MsgBox("B¹n ch¾c ch¾n xãa kh«ng?", vbQuestion + vbYesNo, "Chó ý")
If sql = vbYes Then
db.Execute "delete * from " & sTable & " where " & f2 & " = " & lstDs.ItemData(lstDs.ListIndex)
MsgBox "Hoµn thµnh c«ng viÖc."
End If
Call Form_Load
Case 3
'save
Select Case fag
Case 0
'add
sql = "Insert into " & sTable & "(" & f1 & ")values('" & txtDs & "')"
db.Execute sql
Call Form_Load
Case 1
'edit
sql = "update " & sTable & " set " & f1 & "='" & txtDs & "' where " & f2 & " = " & lstDs.ItemData(lstDs.ListIndex)
db.Execute sql
Call Form_Load
Case 2
End Select
cmdAction(0).Caption = "Thªm"
cmdAction(1).Caption = "Thay ®æi"
End Select
Call Closedb
End Sub
Private Sub Form_Load()
Call opt5in1_Click(0)
Frame4.Enabled = False
Frame1.Enabled = True
Frame2.Enabled = True
cmdAction(1).Enabled = False
cmdAction(2).Enabled = False
cmdAction(3).Enabled = False
End Sub
Private Sub lstDs_Click()
If lstDs.ListIndex >= 0 Then
cmdAction(1).Enabled = True
cmdAction(2).Enabled = True
End If
End Sub
Private Sub opt5in1_Click(Index As Integer)
Dim rs As Recordset
Dim sql As String
Dim i As Integer
Call Opendb
Select Case Index
Case 0
sql = "select * from phongban"
sTable = "phongban"
f1 = "tenpb"
f2 = "mapb"
Case 1
sql = "select * from tongiao"
sTable = "tongiao"
f1 = "diengiai"
f2 = "matongiao"
Case 2
sql = "select * from dantoc"
sTable = "dantoc"
f1 = "diengiai"
f2 = "madantoc"
Case 3
sql = "select * from tdcm"
sTable = "tdcm"
f1 = "diengiai"
f2 = "matdcm"
Case 4
sql = "select * from tdnn"
sTable = "tdnn"
f1 = "diengiai"
f2 = "matdnn"
End Select
Set rs = db.OpenRecordset(sql)
lstDs.Clear
i = 0
While Not rs.EOF
lstDs.AddItem rs(1)
lstDs.ItemData(i) = rs(0)
rs.MoveNext
i = i + 1
Wend
End Sub
7. Form cËp nhËt thay dæi mËt khÈu vµ quyÒn sö dông
Private Sub Command1_Click()
Dim sql As String
Dim user, pass, right As String
Call Opendb
user = InputBox("NhËp tªn Ngêi dïng")
pass = InputBox("NhËp password")
right = InputBox("G¸n quyÒn." & Chr(13) & " 0: Lµ qu¶n trÞ" & Chr(13) & " 1: Lµ ngêi ®äc")
If Val(right) 1 Then Exit Sub
If user "" And pass "" And right "" Then
sql = "insert account(user,pass,right)values('" & user & "','" & pass & "','" & right & "')"
db.Execute sql
MsgBox "OK"
Call Form_Load
Else
MsgBox "Lçi."
End If
Call Closedb
End Sub
Private Sub Command2_Click()
Call Opendb
db.Execute "update account set pass='" & txtPass & "',right='" & cboQ.ItemData(cboQ.ListIndex) & "' where user='" & lstUser.List(lstUser.ListIndex) & "'"
Call Closedb
End Sub
Private Sub Form_Load()
Dim rs As Recordset
Dim i As Integer
cboQ.Clear
cboQ.AddItem "Qu¶n trÞ"
cboQ.AddItem "QuyÒn ®äc"
cboQ.ItemData(0) = 0
cboQ.ItemData(1) = 1
Call Opendb
Set rs = db.OpenRecordset("Select * from account")
lstUser.Clear
i = 0
While Not rs.EOF
lstUser.AddItem rs(0)
lstUser.ItemData(i) = rs(2)
rs.MoveNext
i = i + 1
Wend
Call Closedb
End Sub
Private Sub lstUser_Click()
Dim rs As Recordset
Dim sql, a As String
Dim i As Integer
Call Opendb
With lstUser
If .ListIndex >= 0 Then
sql = "select * from account where user='" & .List(.ListIndex) & "'"
Set rs = db.OpenRecordset(sql)
If Not rs.EOF Then
For i = 0 To cboQ.ListCount - 1
If rs("right") = cboQ.ItemData(i) Then cboQ = cboQ.List(i)
Next
txtPass = rs("pass")
End If
End If
End With
Call Closedb
End Sub
8. Form ®¨ng nhËp hÖ thèng
Private Sub Command1_Click()
Dim rs As Recordset
Call Opendb
Set rs = db.OpenRecordset("select * from account where user='" & txtuser & "' and pass='" & txt & "'")
If rs.EOF Then Exit Sub
frmMain.Show
Closedb
End Sub
Môc lôc
Lêi nãi ®Çu
Ch¬ngI. Më ®Çu
I.LÝ do chän ®Ò tµi.
II.Kh¶o s¸t hÖ thèng
Giíi thiÖu chung vÒ ho¹t ®éng hÖ thèng
NhiÖm vô cña hÖ thèng
Nhîc ®iÓm cña hÖ thèng cò
¦u ®iÓm cña hÖ thèng míi
C¬ cÊu tæ chøc vµ c¸ch tiÕn hµnh
M« h×nh tiÕn ttr×nh nghiÖp vô
III.M« h×nh tiÕn tr×nh tin häc ho¸
IV.Híng gi¶i quyÕt vµ ph¹m vi gi¶i quyÕt
Ch¬ng II.Ph©n tÝch vµ thiÕt kÕ hÖ thèng
S¬ ®å ph©n cÊp chøc n¨ng
C¸c chøc n¨ng chÝnh cña hÖ thèng vµ nhiÖm vô c¬ b¶n cña hÖ thèng
C¸c chøc n¨ng chÝnh cña hÖ thèng
NhiÖm vô c¬ b¶n cña c¸c chøc n¨ng
Chøc n¨ng hÖ thèng
Chøc n¨ng qu¶n lÝ hå s¬
Chøc n¨ng qu¶n lÝ l¬ng
Chøc n¨ng thèng kª b¸o c¸o
Ph©n tÝch d÷ liÖu
M« h×nh luång d÷ liÖu møc khung c¶nh
M« h×nh luång d÷ liÖu møc ®Ønh
M« h×nh luång d÷ liÖu møc díi ®Ønh
m« h×nh luång d÷ liÖu møc díi ®Ønhchøc n¨ng qu¶n lÝ hå s¬
M« h×nh luång d÷ liÖu møc díi ®Ønh chøc n¨ng qu¶n lÝ l¬ng
M« h×nh luång d÷ liÖu møc díi ®Ønh chøc n¨ng b¸o c¸o thèng kª
Ch¬ngIII. ThiÕt kÕ hÖ thèng
Ch¬ng IV. Cµi ®Æt vµ øng dông
Các file đính kèm theo tài liệu này:
- 4063.doc