Đề tài Chương trình quản lý công văn đến bằng Visual Basic
Trang 1Đề tài:
“Chương trình quản lý công văn đến bằng Visual
Basic”
Trang 2LỜI NÓI ĐẦU
OOO
Ngày nay ,các công nghệ khoa học ,kỹ thuật ngày càng phát triển như vũ bão,trong đó khoa học máy tính cũng phát triển mạnh mẽ và xâm nhập vào mọi lĩnh vực khoa học ,kinh tế ,xã hội ,quản lý , máy tính hầu như đều có đóng góp khả năng tuyệt vời của nó tới tất cả các lĩnh vực Từ việc xây dựng các chương trình khoa học kỹ thuật lớn đến các công việc quản lý thường nhật ,máy tính giúp chúng ta cập nhật ,tìm kiếm và lưu trữ thông tin một cách tốt nhất Nhưng các phần mềm hỗ trợ cho việc sử dụng máy tính hầu hết của nước ngoài ,điều này gây rất nhiều trở ngại đối với những người không biết hoặc biết ít tiếng Anh.Vì vậy các phần mềm sử dụng tiếng Việt sẽ giúp người sử dụng có hiều quả hơn trong công việc.Bên cạnh các ngôn ngữ lập trình đa dạng và phong phú ,thì ngôn ngữ
lập trình Visual Basic có tính năng cao hơn cả ,giúp cho người dùng trong các
công tác tổ chức ,lập dự án,tìm kiếm,lưu trữ,biểu diễn thông tin ,tiết kiệm thời
gian Phần mềm Visual Basic của hãng Microsoft là phần mềm phổ biến ở nước
ta hiện nay.Visual Basic là ngôn ngữ lập trình trực quan theo hướng đối tượng lấy ngôn ngữ Basic làm gốc Sử dụng phần mềm lập trình hướng đối tượng trên Windows sẽ giúp chương trình dễ sử dụng và tiện lợi cho người sử dụng vì nó cung cấp khả năng tạo đối tượng và các lớp bằng cách sử dụng giao diện thay ngôn ngữ,Visual Basic có giao diện đẹp ,các thao tác đơn giản không bị phụ thuộc vào chương trình như các chương trình lập trình trên môi trường DOS.Khả năng kết nối và các công cụ truy vấn giúp cho ta tổ chức tìm kiếm thông tin một cách nhanh chóng khi cơ sở dữ liệu đã được tạo các quan hệ ràng buộc
Trang 3Tóm lại ,ngôn ngữ lập trình hướng đối tượng này là một công cụ cần thiết cho người sử dụng có thể cập nhật ,lưư trữ ,tìm kiếm ,xem sửa một cách nhanh chóng Với mong muốn áp dụng Visual Basic vào công tác quản lý,em xin thực hiện đề
tài : Quản lý công văn đến trong bài tập lớn này.Công việc quản lý công văn
bằng thủ công là rất phức tạp và dễ gây nhầm lẫn vì các thao tác thủ công nhàm chán,đồng thời việc tìm kiếm công văn sẽ rất lâu và khó ,vì vậy có một phần mềm
hỗ trợ việc sử dụng máy tính để quản lý các công văn sẽ giúp người quản lý dễ dàng hơn
Mặc dù đã rất cố gắng để hoàn thành đề tài nhưng vì còn hạn chế về kinh nghiệm và kiến thức nên chương trình còn nhiều sai sót cần được bổ sung.Vì vậy,
em mong thầy cô và các bạn xem và đóng góp ý kiến giúp cho chương trình ngày càng hoàn thiện hơn
Cuối cùng ,em xin chân thành cảm ơn thầy giảng viên bộ môn Lập trình hướng
đối tượng qua Visual Basic _Nguyễn Văn Xuất đã tận tình giảng dạy và hướng
dẫn em hoàn thành đề tài này
CHƯƠNG TRÌNH QUẢN LÝ CÔNG VĂN ĐẾN
Chương trình Quản lý công văn đến cần đạt được các yêu cầu tối thiểu sau :
Trang 4+ Việc cập nhật ,lưu trữ các công văn đến phải đơn giản ,dễ ràng ,tránh được các sai sót khi cập nhật
+ Việc tìm kiếm đơn giản ,nhanh chóng ,chính xác
+ Việc in ấn các công văn tiện lợi ,đẹp ,dễ nhìn
Trong bài tập lớn này với đề tài Quản lý công văn đến được lập bằng ngôn ngữ lập trình hướng đối tượng Visual Basic 4.0
Chương trình sử dụng hệ quản trị cơ sở dữ liệu Access
+ Form2 : là Form chính để thao tác với các công văn đến như sửa hoặc xoá các công văn,gọi các Form khác như Form cập nhật để cập nhật các công văn đến, Form Xem để xem toàn bộ các công văn đã cập nhật ,Form Tìm kiếm để thực hiện thao tác tìm kiễm côngvăn thoả mãn điều kiện nào đó,Form In để in ấn các công văn
Trang 5+ Form3 ( Form capnhat) : tại đây người sử dụng có thể cập nhật các thông tin
về công văn đến như loại công văn ,Cơ quan ra công văn , nội dung,
+ Form 4 (Form xem) :là Form để người sử dụng xem toàn bộ các công văn đã
nhập vào ,Form này cho phép chúng ta thêm mới công văn,sửa ,xoá các công văn gọi chức năng in công văn
+ Form 5 (Form timkiem) : giúp người sử dụng tìm kiếm các công văn thoả mãn
điều kiện của một trường nào đó.Khi tìm thấy các công văn thoả mãn điều kiện tìm kiếm thì hiện ra toàn bộ các trường hoặc một trường nào đó của các công văn
đó tuỳ theo yêu cầu của người sử dụng
+ Form 6 (Form inan) : dùng để in ấn công văn ra giấy qua máy in
CHƯƠNG TRÌNH
Trang 6Mở đầu chương trình là Form1 giới thiệu về tên chương trình,tại form này người
sử dụng có thể vào chương trình chính Quản lý công văn đến hoặc thoát ra khỏi chương trình
Khi vào chương trình chính thì form 1 được lấy làm nền cho chương trình
+ Form 2 ( Chương trình chính) : Trên Form này giúp người sử dụng làm các thao tác về công việc quản lý công văn đến.Chương trình cho phép sửa hoặc xoá các công văn,gọi các Form khác để thực hiện các công việc của quản lý công văn như Cập nhật ,Xem toàn bộ các công văn đã cập nhật vào ,tìm kiếm công văn ,in các công văn
+ From 3 : (Form capnhat) : Form này giúp người sử dụng cập nhật các thông tin về các công văn đến để lưu trữ trên máy tính.Chương trình có chức năng sử lý một số lỗi thường gặp khi cập nhật như vào nhầm ngày tháng ,chương trình sẽ thông báo lỗi và báo cho người cập nhật cập nhật lại cho đúng , hoặc việc cập nhật chưa hết các thông tin
+ Form 4 : ( Form Xem ) : Form này cho phép người sử dụng xem toàn bộ các công văn đã được cập nhật vào.Tại đây người sử dụng có thể thêm ,sửa hoặc xoá các công văn trực tiếp trên cơ sở dữ liệu của mình Form còn cho phép gọi form in
để in các công văn cần thiết
+ Form 5 : ( Form timkiem) : Form giúp người sử dụng chương trình tìm kiếm các công văn theo một trường nào đó thoả mãn điều kiện tìm kiếm
+ Form 6 : ( Form in ) : Form cho người sử dụng để in ấn các công văn ra giấy qua máy in theo một mẫu quy định trước
Trang 8I.FORM MỞ ĐẦU : Giới thiệu tên đề tài ,tên người thực hiện chương
trình , Form có 2 nút lệnh để người sử dụng có thể thoát ra khỏi chương trình hoặc vào chương tình chính Khi vào chương trình chính Form làm nền cho toàn bộ
chương trình và hiện lên một nút có nhãn X cho phép người sử dụng thoát ra chương trình bất cứ lúc nào
Các phương thức xử lý ở Form mở đầu :
Attribute VB_Name = "Form1"
Private Sub Command1_Click()
Lbl1.Visible = False
Command1.Visible = False
Trang 10Private Sub Command2_MouseMove(Button As Integer, Shift As Integer,
Private Sub Form_Load()
Form2.Data1.DatabaseName = App.Path & "\qlcvd.mdb"
Trang 12II.FORM 2 : ( Chương trình chính ): Từ Form mở đầu của chương trình nếu
bạn chọn mục “ Mở chương trình” thì form chính sẽ mở ra ,ở chương trình này cho phép người sử dụng làm các công việc với công văn đến như gọi chương trình
cập nhật , xoá hoặc sửa các công văn ,sau đó ghi lại , gọi các form khác để xem ,tìm kiếm hoặc in các công văn
Các phương thức xử lý trong chương trình :
Trang 13Private Sub cmdsua_Click()
If (noidung.Text = "") Or (chuyen.Text = "") Then
MsgBox "Không có dữ liệu công văn cần sửa!"
Exit Sub
Trang 16Private Sub cmdxem_Click()
If (chuyen.Text = "") Or (noidung.Text = "") Then
MsgBox "Không có dữ liệu công văn cần xoá!"
Trang 20Private Sub Command3_MouseMove(Button As Integer, Shift As Integer, X As
Trang 21Private Sub Command4_MouseMove(Button As Integer, Shift As Integer, X As
Trang 24Data1.Recordset.Fields("Cơ quan") = cq.Text
Data1.Recordset.Fields("Nội dung") = noidung.Text Data1.Recordset.Fields("Chuyển cho") = chuyen.Text Data1.Recordset.Fields("Thời hạn") = thoihan.Text Data1.Recordset.Fields("Người ký") = nguoi.Text Data1.Recordset.Update
Command5.Enabled = False
cmdsua.Enabled = True
End Sub
Trang 25Private Sub cq_KeyPress(KeyAscii As Integer)
Trang 26Private Sub Form_Load()
Trang 27Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As
Private Sub loai_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And loai.Text <> "" Then
ngra.SetFocus
End If
Trang 28Private Sub namden1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And namden1.Text <> "" Then Ten.SetFocus
End If
End Sub
Private Sub namra1_KeyPress(KeyAscii As Integer)
Trang 29If KeyAscii = 13 And namra1.Text <> "" Then
Private Sub ngden_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngden.Text <> "" Then
Ten.SetFocus
End If
End Sub
Trang 30Private Sub ngden1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngden1.Text <> "" Then
Private Sub ngra_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngra.Text <> "" Then
ngden.SetFocus
Trang 31End If
End Sub
Private Sub ngra1_Change()
If Not IsNumeric(ngra1.Text) Then
ngra1.SetFocus
End If
End If
End Sub
Private Sub ngra1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngra1.Text <> "" Then
thra1.SetFocus
End If
Trang 34Private Sub noidung_KeyPress(KeyAscii As Integer)
If KeyAscii = 9 And noidung.Text <> "" Then
Private Sub Ten_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Ten.Text <> "" Then
Trang 35If KeyAscii = 13 And thden1.Text <> "" Then
Private Sub thra1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And thra1.Text <> "" Then
Trang 36L02.Visible = False
End Sub
III.FORM CẬP NHẬT : khi người sử dụng bấm chuột vào nút Cập nhật
trên Form chính thì form cập nhật sẽ mở ra ,Form này để người sử dụng cập nhật các thông tin về công văn đến,form có chức năng sử lý một số lỗi thường gặp khi
cập nhật như vào nhầm ngày tháng ,chương trình sẽ thông báo lỗi và báo cho người cập nhật cập nhật lại cho đúng , hoặc việc cập nhật chưa hết các thông tin
Các phương thức xử lý trên Form Cập nhật :
Attribute VB_Name = "nhap"
Trang 37Attribute VB_Creatable = False
Attribute VB_Exposed = False
Private Sub chuyen_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And chuyen.Text <> "" Then
Trang 42Form2.Data1.Recordset.Fields("Ngày ra") = ngra.Text & "/" & thra.Text & "/"
& namra.Text
Form2.Data1.Recordset.Fields("Ngày đến") = ngden.Text & "/" & thden.Text
& "/" & namden.Text
Form2.Data1.Recordset.Fields("Mức khẩn") = mk.Text
Form2.Data1.Recordset.Fields("Độ mật") = dm.Text
Form2.Data1.Recordset.Fields("Cơ quan") = cq.Text
Form2.Data1.Recordset.Fields("Chuyển cho") = chuyen.Text
Trang 44Private Sub cq_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And cq.Text <> "" Then
Trang 45Private Sub dm_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And dm.Text <> "" Then cq.SetFocus
Trang 46loai.AddItem "Thông báo"
Trang 47Private Sub Label5_MouseMove(Button As Integer, Shift As Integer, X As
Private Sub loai_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And loai.Text <> "" Then
Trang 48Private Sub mk_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And mk.Text <> "" Then
dm.SetFocus
End If
End Sub
Private Sub namden_Change()
If Not IsNumeric(namden.Text) Then
If (Val(namden.Text) < 1900) Or (Val(namden.Text) > 2100) Then
MsgBox "Bạn cập nhật năm không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
namden.Text = ""
namden.SetFocus
Trang 49Private Sub namden_KeyPress(KeyAscii As Integer)
Dim hoi As Integer
Dim i As Integer
If KeyAscii = 13 And namden.Text <> "" Then
If Val(namden.Text) < Val(namra.Text) Then
hoi = MsgBox("Bạn nhập vào năm công văn đến nhỏ hơn năm ra công văn.Bạn
có muốn sửa lại", 4, "Nếu sửa lại thì chọn nút Yes")
If hoi = 6 Then
namden.Text = ""
namden.SetFocus
Trang 50If Val(namden.Text) = Val(namra.Text) Then
If Val(thden.Text) = Val(thra.Text) Then
If Val(ngden.Text) < Val(ngra.Text) Then
i = MsgBox("Bạn nhập ngày công văn đến nhỏ hơn ngày ra công văn.Bạn có sửa lại?", 4, "Nếu sửa lại thì chọn nút Yes")
Trang 51Else
Ten.SetFocus
End If
If Val(thden.Text) < Val(thra.Text) Then
i = MsgBox("Bạn nhập tháng công văn đến nhỏ hơn tháng ra công văn.Bạn có sửa lại?", 4, "Nếu sửa lại thì chọn nút Yes")
Trang 52Private Sub namra_Change()
If Not IsNumeric(namra.Text) Then
If (Val(namra.Text) < 1900) Or (Val(namra.Text) > 2100) Then
MsgBox "Bạn cập nhật năm không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
Trang 53End If
End Sub
Private Sub namra_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And namra.Text <> "" Then
ngden.SetFocus
End If
End Sub
Private Sub ngden_Change()
If Not IsNumeric(ngden.Text) Then
ngden.Text = ""
Exit Sub
ngden.SetFocus
Else
If (Val(ngden.Text) < 1) Or (Val(ngden.Text) > 31) Then
MsgBox "Bạn cập nhật ngày không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
ngden.Text = ""
Trang 54Private Sub ngden_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngden.Text <> "" Then thden.SetFocus
End If
End Sub
Private Sub ngra_Change()
If Not IsNumeric(ngra.Text) Then
ngra.Text = ""
Exit Sub
Trang 55ngra.SetFocus
Else
If (Val(ngra.Text) < 1) Or (Val(ngra.Text) > 31) Then
MsgBox "Bạn cập nhật ngày không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
Private Sub ngra_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And ngra.Text <> "" Then
thra.SetFocus
End If
End Sub
Trang 56Private Sub nguoi_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And nguoi.Text <> "" Then
Trang 57Private Sub Ten_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Ten.Text <> "" Then
mk.SetFocus
End If
End Sub
Private Sub thden_Change()
If Not IsNumeric(thden.Text) Then
thden.Text = ""
Exit Sub
thden.SetFocus
Else
Trang 58If (Val(thden.Text) < 1) Or (Val(thden.Text) > 12) Then
MsgBox "Bạn cập nhật tháng không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
Private Sub thden_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And thden.Text <> "" Then
namden.SetFocus
End If
End Sub
Trang 59Private Sub thoihan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And thoihan.Text <> "" Then
nguoi.SetFocus
End If
End Sub
Private Sub thra_Change()
If Not IsNumeric(thra.Text) Then
thra.Text = ""
Exit Sub
thra.SetFocus
Else
If (Val(thra.Text) < 1) Or (Val(thra.Text) > 12) Then
MsgBox "Bạn cập nhật tháng không hợp lệ.Bạn hãy nhập lại!", , "Quản lý công văn đến"
thra.Text = ""
thra.SetFocus
End If
If Len(thra.Text) > 2 Then