Trong thời đại bùng nổ thông tin, hiện nay nhu cầu sử dụng các ứng dụng Tin học để xử lý thông tin là một nhu cầu cấp thiết. Ngoài việc tiếp nhận Công nghệ mới và sử dụng các phần mềm có sẵn, chúng ta cần phải có những chương trình ứng dụng của mình. Trong những năm trở lại đây, nghành Công nghệ phần mềm của nước ta đã có những bước ngoặt rất lớn, sản phẩm phần mềm không những chỉ phục vụ trong nước mà còn đang có hướng xuất khẩu ra nước ngoài xắp tới chúng ta hoàn thiện khu công nghệ cao Láng Hoà Lạc sẽ thu hút được rất nhiều các lập trình viên có đẳng cấp quốc tế và sẽ cho ra các sản phẩm phần mềm ngày càng có chất lượng cao. Và đưa Việt Nam trở thành một nước xuất khẩu phần mềm tầm cỡ khu vực cũng như trên thế giới. Những ứng dụng Tin học đã phục vụ rất tốt cho các hoạt động phát triển kinh tế xã hội mang lại hiệu quả kinh tế cao. Đặc biệt trong lĩnh vực quản lý có nhiều trương trình đạt tới trình độ cao, đáp ứng được nhu cầu cho người sử dụng.
Việc tin học hoá các công tác quản lý nói chung và vấn đề quản lý tài trợ vốn tại NHN0VN nói riêng đã và đang được tiến hành mạnh mẽ ở khắp mọi nơi trên toàn quốc. Nó không chỉ giải phóng con người khỏi những công việc buòn tẻ mà còn nâng cao một cách đáng kể hiệu quả công việc, độ chính xác, an toàn của thông tin cao và là một cánh tay đắc lực trợ giúp cho con người đưa ra những qyết định chính xác trong công việc.
Có thể nói rằng việc đưa Công nghệ mới vào vấn đề quản lý tài trợ vốn là cả một sự năng động, tìm tòi sáng tạo trọng việc đầu tư nhằm cải tiến Hệ thống cũng như trọng việc lựa chọn giải pháp kỹ thuật nhằm xây dựng một Hệ thống quản lý vốn giữa NHN0 &PTNTVN với các Ngân hàng chi nhánh và các Ngân hàng tài trợ vốn trên thế giới. Nhằm thanh toán chính xác, thuận lợi, an toàn và hiệu quả đáp ứng nhu cầu của khách hàng, giảm chi phí quản lý và tăng cường hiệu suất kinh doanh, sẵn sàng tích hợp với các sản phẩm Dịch vụ ngân hàng trong tương lai và thế giới. Hệ thống này sẽ giúp cho việc nâng cao chất lượng và hiệu quả kinh doanh.
85 trang |
Chia sẻ: aloso | Lượt xem: 1531 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng, thiết kế và cài đặt hệ thống thông tin phục vụ quản lý vốn tài trợ thương mại là nội dung của báo cáo tổng hợp sau 3 tháng thực tập tại ngân hàng nông nghiệp và phát triển nông thôn Việt Nam, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thống, vì nó xác định thông tin nào phải có mặt trước khi quá trình được thực hiện.
Sơ đồ luồng giữ liệu ở mức tổng quát :
Đối tác
Ngân hàng
Ban lãnh đạo khối phòng liên quan
Hệ thống
Trả
Lời
Yêu cầu
Yêu cầu
Báo cáo
Mô hình trên thể hiện sự trao đổi thông tin giữa hệ thống và các tác nhân bên ngoài. Luồng giữ liệu từ bên ngoài của hệ thống bao qồm các yêu cầu của Ban lãnh đạo, các khối phòng liên quan. Luồng dữ liệu tạo ra bao gồm các báo cáo thống kê trả lời.
Sau khi đã có sơ đồ mức tổng quát và dựa vào yêu cầu mục đích của Hệ thống ta có sơ đồ luồng dữ liệu phân giã chức năng như sau :
Đối tác
Ngân hàng
Ban lãnh đạo,
khối phòng liên quan
Hệ thống
Báo cáo
Kho
Dữ
Liệu
Trả
Lời
Yêu
Cầu
Tài
Trợ
Báo
Cáo
Yêu
Cầu
báo
cáo
Báo
Cáo
Yêu
Cầu
Báo
Cáo
Chức năng quản lý các khoản vốn tài trợ : Quản lý các khoản vốn tài trợ và các khoản vay cụ thể, quản lý các giao dịch phát sinh hàng ngày, sẽ nhận dữ liệu từ khối phòng liên quan gửi về và tiến hành cập nhật, xử lý, bổ xung vào kho dữ liệu.
Chức năng Báo cáo : Lập các báo cáo thống kê căn cứ vào yêu cầu của ban lãnh đạo để đưa ra mẫu báo cáo thích hợp.
Sơ đồ dữ liệu chức năng qủan lý Hồ sơ tài trợ
Kho dữ liệu
Đối tác tài trợ
Ban lãnh đạo
Khối phòng liên quan
Cập nhật DL
Xử lý
Ngân hàng
Yêu
Cầu lãnh đạo
Khối phòng liên quan
Thông lãnh đạo
Khối phòng liên quan
tin
Báo
Cáo
Báo cáo
Thông tin trả lời
Nhập khoản vay
Nhập Giấy báo nợ
Nhập lịch trả nợ
Nhập phiếu trả nợ
Yêu
Cầu lãnh đạo
Khối phòng liên quan
Biểu đồ luồng dữ liệu chức năng cập nhật DL:
Đối tác
Quản lý KV
Rút vốn
Lịch trả nợ
Kho dữ liệu
Trả nợ
Ban lãnh đạo
Khối phòng liên quan
Đối tác
Ban lãnh đạo
Khối phòng liên quan
Trả nợ
Rút vốn
Đối tác
Gia hạn
Kho dữ liệu
Sơ đồ luồng dữ liệu chức năng sử lý:
Sơ đồ luồng dữ liệu chức năng báo cáo:
Báo cáo
Báo cáo
Kho dữ liệu
Tổng hợp
Báo cáo chi tiết
Ban lãnh đạo
khối phòng liên quan
Ngân hàng
2. Mô hình liên kết giữa các thực thể.
Thực thể và các khoá
Qua quá trình khảo sát ta có một số thực như sau:
Các thực thể :
Tên thực thể
Nội dung
Thuộc tính khoá
Doitac
Lưu trữ thông tin về các đối tác có quan
hệ với NHNo & PTNT
Bank_id
Hosotaitro
Các thông về hồ sơ tài trợ
Hosovay
Chứa các thông tin về các khoản vay cụ thể
MasoKV
Ngoaite
Bảng mã các ngoại tệ
MaNT
Chinhanh
Các chi nhánh của ngân hàng
MasoCN
Lichtrano
Lịch trả nợ của các khoản vay
Bank_id
Sophieu
Rutvon
Các thông tin về từng rút của các khoản vay
Bank_id
MasoKV
Sophieu
Lantrano
Các lần trả nợ cụ thể
Bank_id
Sophieu
MasoKV
- Table Doitac
Name
Type
Width
Dec
Chú thích
Bank_ID
Ten
Diachi
Daidien
Dienthoai
Ghichu
Text
Text
Text
Text
Number
Text
15
50
60
25
11
60
1
Mã số đối tác
Tên đối tác
Địa chỉ
Đại diện
Diên thoại
Ghichú
- Table Chi nhánh
Name
Type
Width
Dec
Chú thích
MasoCn
TenCN
Daidien
Dienthoai
Ghichu
Text
Text
Text
Number
Text
15
35
25
10
60
Mã số chi nhánh
Tên chi nhánh
Đại diện
Điện thoại
Ghi chú
-Table Hosotaitro
Name
Type
Width
Dec
Chú thích
Bank_id
Mucdich
Giatri
Laixuat
Thoigian
Dieukien
NgayTT
Text
Text
Number
Number
Number
Text
Date
15
35
10
3
3
45
10
Mã sô NH
Mục đích
Giá trị
Lãi xuất
Thời gian
Điều kiện
Ngày thoả thuận
-Table HOVAYVON
NaNameName
Type
Width
Dec
Chú thích
Masohs
NgayXN
LoaiNgoaite
Bank_id
Loaivay
Nguonvon
Vontuco
Giatri
Anhan
Nhucau
Ngaytralai
Giamlai
Chuongtrinh
Kieutra
Hinhthucvay
Thoigian
CanboXN
Daidien
Chinhanh
Taikhoan
Text
Date
Text
Text
Text
Text
Number
Number
Number
Text
Date
Text
Text
Text
Text
Date
Text
Text
Text
Text
15
10
6
15
25
25
10
10
3
40
10
15
30
30
30
10
25
26
39
12
1
Mã số hồ sơ
Ngay xác nhận
Loại ngoại tệ
Mã số ngân hàng
Loại vay(Tai trợ)
Nguồn vốn
Vốn tự có
Gía trị khoản vay
Ân hạn cho NH
Nhu cầu vay
Ngày BĐ trả lãi
Giảm lãi không?
Chương trình gì
Kiểu trả(lãi,vốn)
Hình thức(Vay)
Thời gian vay
Người xác nhận
Đại diện ký
Chi nhánh
Tài khoản
- Table Lantrano
Name
Type
Width
Dec
Chú thích
Masokv
Bank_id
Trano
Ngaytra
Sophieu
Giatri
Text
Text
Text
Date
Text
Text
15
15
10
10
10
10
Mã số khoản vay
Mã số đối tác
Rút tiền?
Ngày trả
Số phiếu
Giá trị
- Table Rutvon
Name
Type
Width
Dec
Chú thích
Masokv
Bank_id
Rutvon
Ngaytra
Sophieu
Giatri
Text
Text
Text
Date
Text
Text
15
15
10
10
10
10
Mã số khoản vay
Mã số đối tác
Rút tiền?
Ngày trả
Số phiếu
Giá trị
Mô hình liên kết giữ các thực thể
Trano
Rutvon
Doitac(NH)
Taitro
Hosovayvon
Tiente
Chinhanh
Lichtrano
Biểu đồ phân cấp chức năng.
Sau khi đã có các sơ đồ luồng dữ liệu, ta xây dựng biểu đồ phân cấp chức năng như sau:
Sơ đồ chức năng
Hệ thống
Quản lý Hồ sơ tài trợ vốn
Quản lý
Giao dịch
Thống kê
báo cáo
Sơ đồ phân cấp chức năng quản lý Hồ sơ tài trợ
- Mỗi hồ sơ có một mã số duy nhất.
-Quản lý thông tin chung về từng hồ sơ tài trợ và tường khoản vay cụ thể
Các thông tin chung về hồ sơ tài trợ
Các khoản vay khi trả nợ hết cả gốc và lãi .
Các khoản vay huỷ bỏ
Cập nhật hồ sơ
Vấn tin
Xoá hồ sơ
Quản lý hồ sơ tài trợ
Sơ đồ phân cấp chức năng quản lý giao dịch
- Kiểm tra số dư còn lại xem có còn được rút không.
- Ghi số tiền dút vào sổ
Kiểm tra số tiền còn phải trả
-Khi có sự chấp nhận của đối tác
- Kiểm tra xem có được phép gia hạn không
Rút vốn
Trả nợ
Gia hạn
Quản lý giao dịch
Sơ đồ phân cấp chức năng in báo cáo
Tổng hợp số dư
Liệt kê nợ đế hạn
Liệt kê giao dịch
Hệ thống báo cáo
Căn cứ vào sơ đồ phân cấp chức năng ta xây dựng hệ thông thực đơn như sau :
Quản lý hồ sơ
Xác nhận về vốn tài trợ
Thoả thuận về vốn tài trợ
Thông tin đối tác tài trợ
Danh mục các chi nhánh
Danh mục Lãi suất
Danh mục ngoại tệ
Giao dịch hàng ngày
Giao dịch dút vốn
Giao dịch trả nợ
Giao dịc tạo lịch trả nợ
Giao dịch gia hạn nợ
Các khoản vay &còn nợ
Các khoản vay được &gia hạn
Các khoản vay &quá hạn
Hệ thống báo cáo
Thống kê báo cáo hàng ngày
Các KV ĐH phải trả trong ngày
Các KV phát sinh trong ngày
Các KV đã trả nợ trong ngày
Thống kê &báo cáo NHNo
Báo cáo đi vay &Ngắn hạn
Báo cáo đi vay &dài hạn
Theo dõi trả nợ và trả Lãi
IV. Mô tả chi tiết các chức năng sử lý chung trong hệ thống quản lý Vốn tài trợ
Hệ thống quản lý các hồ sơ vay nợ :
Hệ thống này có các chức năng quản lý toàn bộ hồ sơ của các khoản vốn tài trợ cũng như các khoản vay cụ thể. Các thông tin này là nền tảng, là cơ sở xác định các mối quan hệ giữ NHNo & PTNT và các đối tác. Ta có thể phân ra thành các bộ hồ sơ như sau :
Hồ sơ tài trợ : Quản lý thông tin về các khoản vốn tài trợ đã được thoả thuận giữa NHNo & PTNT và đối tác tài trợ. Các thông tin này bao gồm : mục đích sử dụng, giá trị khoản vốn tàu trợ, thời gian cho va , lãi xuất, điều kiện cu thể .
Hồ sơ về khoản vay cụ thể: quản lý thông tin về khoản vay cụ thể như : số vốn đựoc chấp nhận thời gian, lãi xuất….
Hệ thống giao dịch :
Quản lý các giao dịch phát sinh của các khoản vay đã được xác nhận, bao gồm các chức năng như :
+ Rút vốn : Số vốn tài trợ
+ Trả nợ : Trả tiền cho các khoản vay đến hạn phải trả.
+ Gia hạn : Với các điều kiện đến hạn trả nợ thì đối tác có thể gia hạn.
Hệ thống báo cáo, thống kê :
Cung cấp các biểu mẫu ttỏng hợp thống kê hàng thán, quí năm, theo yêu cầu của hệ thống.
Theo dõi tình hình đi vay, trả nợ của các khoản vay.
4. Quản trị hệ thống :
Một chương trình quản lý hệ thống thông tin được Tin học hoá thì Quản trị hệ thống là công việc không thể thiếu.
5. Chọn lựa cơ sở dữ liệu và môi trường phát triển.
Do tính bảo mật của cơ sở dữ liệu lên môi trường để phát triển phù hợp đó là
Oracle và Visual Basic.
CHƯƠNG III :
THIếT Kế Hệ TIN HọC QUảN Lý TàI TRợ VốN
Quản lý hồ sơ vốn vay :
Quản lý các hồ sơ giữa Ngân hàng nông nghiệp vơi các Ngân hàng nước ngoài. Các thông tin mà Máy tính lưu trữ chỉ là những điều khoản cơ bản nhất của hạn ngạch tài trợ này vì đây mới chỉ là những thủa thuận ban đầu còn khi nào phát sinh những khoản vay cụ thể thì mới có những khoản cụ thể phù hợp với từng khoản vay.
ở đây chỉ sư dụng hai thực thể là BANK và INVITE các thực thể được liên kết vơi nhau như sau :
BANK
INVITE
Form Xác nhận các khoản vay
Trả nợ :
Cán bộ quản lý chon tài trợ trên thực đơn mức giao dịch hàng ngày thì màn hình sẽ hiện lên như sau :
Giao dịch trả nợ
Các kiểm soát trên màn hình trả nợ : Về cơ bản cũng kiểm soát khoản vay và ố tham chiếu như các phần trên. Khi tiến hànhn giao dịch trả mới cho các lần rút vốn của từng khoản vay.
Sau khi nhập mã số khoản vay và số tham chiếu hợp lệ qua sự kiểm soát của chuơng trình thì chương trình sẽ tính toán.
Giao dịch hàng ngày :
Rút vốn : Phần này cho phép quản lý thông tin chi tiết của các lần rút vốn hàng ngày khi nhận được các giấy báo rút tiền từ các ngân hàng chi nhánh
Ta có giao diện sau :
Giao dịch rút vốn
Giao diện các chức năng của chương trình như sau : Giao diện này cho phép truy cập vào toàn bộ hệ thống :
Giao diện của chương trình
Giao diện Quản lý người sử dụng :
Form Quản trị người dùng
Form Gia hạn nợ
Giao diện lịch trả nợ :
Giao diện gia hạn cho các lần trả nợ :
Giao diện các đối tác tài trợ vốn vay :
Form Đối tác tài trợ
Form Thoả thuận ban đầu
Giao diện thỏa thuận về hạn ngạch tài trợ :
Giao diện chính của chương trình:
Kết luận
Trong thời đại bùng nổ thông tin, hiện nay nhu cầu sử dụng các ứng dụng Tin học để xử lý thông tin là một nhu cầu cấp thiết. Ngoài việc tiếp nhận Công nghệ mới và sử dụng các phần mềm có sẵn, chúng ta cần phải có những chương trình ứng dụng của mình. Trong những năm trở lại đây, nghành Công nghệ phần mềm của nước ta đã có những bước ngoặt rất lớn, sản phẩm phần mềm không những chỉ phục vụ trong nước mà còn đang có hướng xuất khẩu ra nước ngoài xắp tới chúng ta hoàn thiện khu công nghệ cao Láng Hoà Lạc sẽ thu hút được rất nhiều các lập trình viên có đẳng cấp quốc tế và sẽ cho ra các sản phẩm phần mềm ngày càng có chất lượng cao. Và đưa Việt Nam trở thành một nước xuất khẩu phần mềm tầm cỡ khu vực cũng như trên thế giới. Những ứng dụng Tin học đã phục vụ rất tốt cho các hoạt động phát triển kinh tế xã hội mang lại hiệu quả kinh tế cao. Đặc biệt trong lĩnh vực quản lý có nhiều trương trình đạt tới trình độ cao, đáp ứng được nhu cầu cho người sử dụng.
Việc tin học hoá các công tác quản lý nói chung và vấn đề quản lý tài trợ vốn tại NHN0VN nói riêng đã và đang được tiến hành mạnh mẽ ở khắp mọi nơi trên toàn quốc. Nó không chỉ giải phóng con người khỏi những công việc buòn tẻ mà còn nâng cao một cách đáng kể hiệu quả công việc, độ chính xác, an toàn của thông tin cao và là một cánh tay đắc lực trợ giúp cho con người đưa ra những qyết định chính xác trong công việc.
Có thể nói rằng việc đưa Công nghệ mới vào vấn đề quản lý tài trợ vốn là cả một sự năng động, tìm tòi sáng tạo trọng việc đầu tư nhằm cải tiến Hệ thống cũng như trọng việc lựa chọn giải pháp kỹ thuật nhằm xây dựng một Hệ thống quản lý vốn giữa NHN0 &PTNTVN với các Ngân hàng chi nhánh và các Ngân hàng tài trợ vốn trên thế giới. Nhằm thanh toán chính xác, thuận lợi, an toàn và hiệu quả đáp ứng nhu cầu của khách hàng, giảm chi phí quản lý và tăng cường hiệu suất kinh doanh, sẵn sàng tích hợp với các sản phẩm Dịch vụ ngân hàng trong tương lai và thế giới. Hệ thống này sẽ giúp cho việc nâng cao chất lượng và hiệu quả kinh doanh.
Hướng phát triển của chương trình : Trong tương lai gần sẽ hoàn thiện các chức năng và thực hiện việc quản lý toàn bộ các khoản vay nợ trong nước và nước ngoài.
Do thời gian và trình độ có hạn của một sinh viên thực tập, do vậy mà chương trình không thể tránh khỏi những thiếu sót. Tôi rất mong nhận được sự đóng góp qúy báu của các thầy cô giáo và các bạn đồng nghiệp gần xa để Hệ thống được bảo trì và phát triển tốt hơn.
Cuối cùng tôi xin trân thành cảm ơn thầy giáo : TS. Cao Đình Thi đã tận tình giúp đỡ tôi trong quá trình thực tập và hoàn thực hiện đề tài này. Tôi cũng xin chân thành cảm ơn anh Nguyễn Quốc Hùng trưởng phòng kỹ thuật phần mềm thuộc trung tâm công nghệ thông tin và toàn thể các anh lập trình viên đẫ tận tình giúp đỡ, đóng góp những ý kiến quý báu và tạo mọi điều kiện về cơ sở vật chất kỹ thuật, thuận lợi cho tôi trong quá trình thực tập tại phòngkỹ thuật phần mềm thuộc trung tâm Công nghệ thông tin của NHN0&PTNT Việt nam và đề làm đề tài này.
Hà Nội tháng 5 năm 2002
Người thực hiện
Nguyện Ngọc Toàn
*****************************************************************
Một số Module của chương trình
*****************************************************************’
‘Toàn bộ cốt của form Xác nhận khoản vay
‘Dim gcnnsm As ADODB.Connection
‘Cn.CursorLocation = adUseClient
Private Sukien As String
Private Dulieu As String 'Lay du lieu tu Frm khac
Private Sub CmbGIAMLAI_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtChuongt.SetFocus
End If
End Sub
Private Sub cmdDONG_Click()
Unload Me
End Sub
Private Sub Cmd_Click(Index As Integer)
Select Case Index
Case 1
Sukien = "Themmoi"
Case 3
Sukien = "Suadoi"
Case 2
If Sukien = "Suadoi" Then
CmdSuadoi
End If
If Sukien = "Themmoi" Then
CmdSave
End If
Case 4
CmdDelete
End Select
End Sub
Private Sub CmdChinhanh_Click()
Dulieu = "Chinhanh"
Frmchinhanh.Show
TxtTaikhoan.SetFocus
End Sub
Private Sub cmdFindt_Click()
cmdFind
End Sub
Private Sub CmdKhachhang_Click()
Dulieu = "Nganhang"
FrmThoathuan.Show
End Sub
Private Sub CmdNgoaite_Click()
Dulieu = "Ngoaite"
FrmNgoaite.Show
End Sub
Private Sub Load()
Sql = "select * from hosovayvon order by masohs "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
Mdlpublic.FillMSgrid Rs, MSFlexGrid1
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1), "DD/MM/YYYY")
MSFlexGrid1(MSFlexGrid1.Row, 0) = ""
MSFlexGrid1.FormatString = "Mã số HS|Ngày Nhận"
End Sub
Private Sub Form_Load()
Call SetMouse(Me)
'chen Tranh vao nut lenh
Cmd(0).Picture = LoadResPicture("TIMKIEM", 0)
Cmd(1).Picture = LoadResPicture("THEMMOIF2", 0)
Cmd(3).Picture = LoadResPicture("SUADOI", 0)
Cmd(4).Picture = LoadResPicture("XOAF8", 0)
Cmd(2).Picture = LoadResPicture("CAPNHATF3", 0)
Cmd(5).Picture = LoadResPicture("THOAT", 0)
End Sub
Private Sub MaskEdBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmdNgoaite.SetFocus
End If
End Sub
Private Sub TxtBATDAUTRA_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmbGIAMLAI.SetFocus
End If
End Sub
Private Sub TxtCBTD_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtDaidien.SetFocus
End If
End Sub
Private Sub Txtchinhanh_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtTaikhoan.SetFocus
End If
End Sub
Private Sub TxtChuongt_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtKieutra.SetFocus
End If
End Sub
Private Sub TxtDaidien_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmdChinhanh.SetFocus
End If
End Sub
Private Sub TxtGiatri_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNGAYANHAN.SetFocus
End If
End Sub
Private Sub TxtHTvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtThoigian.SetFocus
End If
End Sub
Private Sub TxtKieutra_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtHTvay.SetFocus
End If
End Sub
Private Sub TxtLoaivay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNguonvon.SetFocus
End If
End Sub
Private Sub TxtNGAYANHAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNhucau.SetFocus
End If
End Sub
Private Sub TxtNguonvon_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtVONTUCO.SetFocus
End If
End Sub
Private Sub TxtNhucau_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtBATDAUTRA.SetFocus
End If
End Sub
Private Sub TxtPTvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtCBTD.SetFocus
End If
End Sub
Private Sub Txtsohieuvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
MaskEdBox.SetFocus
End If
End Sub
Private Sub TxtThoigian_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtPTvay.SetFocus
End If
End Sub
Private Sub TxtVONTUCO_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtGiatri.SetFocus
End If
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case Is = vbKeyF6
If Cmd(0).Enabled = True Then cmdFinds
Case Is = 13
SendKeys "{Tab}", True
Case Is = vbKeyF2
If Cmd(1).Enabled = True Then CmdAdds
Case Is = vbKeyF3
If Cmd(2).Enabled = True Then CmdSaves
Case Is = vbKeyF8
If Cmd(4).Enabled = True Then CmdDeletes
Case Is = vbKeyF5
If Cmd(3).Enabled = True Then CmdEdits
Case Is = vbKeyF12
If Cmd(5).Enabled = True Then CmdTSTCs
End Select
End Sub
Private Sub CmdSave()
If IsNull(Txtsohieuvay.Text) Then
MsgBox " Mã số khoản vay ?", vbCritical, "Thông báo"
Exit Sub
Sql = "select * from Hosokhoanvay Where MasoHS= '" & Txtsohieuvay.Text & "'"
Set Rs = New ADODB.Recordset
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
MsgBox " Mã số khoản vay đã dùng rồi", vbCritical, "Thông báo"
Exit Sub
If Not IsDate(MaskEdBox.Text) Then
MaskEdBox = Date
Else
MaskEdBox.Text = Format(CDate(MaskEdBox.Text), "DD/MM/YYYY")
End If
If Not IsDate(TxtBATDAUTRA.Text) Then
MaskEdBox = Date
Else
TxtBATDAUTRA.Text = Format(CDate(TxtBATDAUTRA.Text), "DD/MM/YYYY")
End If
If IsNull(Txtchinhanh.Text) Then
MsgBox "Sử Dụng cho chi nhánh nào", vbCritical, "Thông báo"
Exit Sub
End If
If IIf(IsNull(TxtNganhang.Text), "", TxtNganhang.Text) Then
MsgBox "Đối tác tài trợ ?", vbCritical, "Thông báo"
End If
If IIf(IsNull(TxtTaikhoan.Text), "", TxtTaikhoan.Text) Then
MsgBox "Khoản vay này cần đưa vào tài khoản nào ?", vbCritical, "Thông báo"
End If
' Kiểm tra số tiềm vay phải < Số tiền Thoả thuận trước
Dim NgayTT%
NgayTT = Max(NgayTT)
Sql = "Select Max(NgayTT) from Hstaitro where Bank_id ='" & TxtNganhang & "' "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
If Rs > Date Then
Exit Sub
Else
Sql = "Select giatri from Hstaitro where Bank_id ='" & TxtNganhang & "' "
Set Rs = New ADODB.Recordset
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If TxtGiatri.Text > Rs("giatri") Then
MsgBox "Khoản vay Không thể lớn hơn mức thoả thuận", vbCritical, "Thông báo"
End If
Exit Sub
Sql = "Insert into Hosovayvon values('" & Txtsohieuvay.Text & "' " & _
",'" & MaskEdBox.Text & "' ,'" & TxtLoaiNT.Text & "'" & _
",'" & TxtNganhang.Text & "' ,'" & TxtLoaivay.Text & "' " & _
",'" & TxtNguonvon.Text & "'," & TxtVONTUCO.Text & " " & _
",'" & TxtNGAYANHAN.Text & "','" & TxtNhucau.Text & "' " & _
", '" & TxtBATDAUTRA.Text & "', '" & CmbGIAMLAI.Text & "'" & _
",'" & TxtChuongt.Text & "' ,'" & TxtKieutra.Text & "', '" & TxtHTvay.Text & "'" & _
"," & TxtThoigian.Text & ",'" & TxtPTvay.Text & "' " & _
",'" & TxtCBTD.Text & "','" & TxtDaidien.Text & "' " & _
",'" & Txtchinhanh.Text & "','" & TxtTaikhoan.Text & "')"
Cn.Execute (Sql)
End Sub
Private Sub CmdSuadoi()
Sql = " select NgayXN from Hosovayvon where MasoHS =' " & Txtsohieuvay.Text & " '"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Dim Ngayvay%
Dim Homnay%
'Hệ thống hoạt động theo tháng
Homnay = FormatDateTime(Format(Date, "DD/MM/YYYY"))
Ngayvay = FormatDateTime(Format(Rs("NgayXN"), "DD/MM/YYYY"))
If Right(Homnay) - Right(Ngayvay) > 1 Then
MsgBox "Khoản vay không thể sử chữa", vbCritical, "Thông báo"
Exit Sub
End If
Sql = " Update Hosovayvon set " & _
" NgayXN= '" & MaskEdBox.Text & "' ,LoaiNgoaite= '" & TxtLoaiNT.Text & "'" & _
",Bank_id= '" & TxtNganhang.Text & "' ,Loaivay='" & TxtLoaivay.Text & "' " & _
",nguonvon ='" & TxtNguonvon.Text & "',vontuco=" & TxtVONTUCO.Text & " " & _
",anhan='" & TxtNGATxtNguonvonYANHAN.Text & "',nhucau='" & TxtNhucau.Text & "' " & _
", Ngaytralai='" & TxtBATDAUTRA.Text & "', Giamlai=' " & CmbGIAMLAI.Text & "'" & _
",Chuongtrinh ='" & TxtChuongt.Text & "' ,Kieutra='" & TxtKieutra.Text & "', Hinhthucvay='" & TxtHTvay.Text & "'" & _
",Thoigian=" & TxtThoigian.Text & ",Phuongthuc='" & TxtPTvay.Text & "' " & _
",CanboXN='" & TxtCBTD.Text & "',Daidien='" & TxtDaidien.Text & "' " & _
",Chinhanh='" & Txtchinhanh.Text & "',Taikhoan='" & TxtTaikhoan.Text & "'" & _
" where Masokv='" & Txtsohieuvay.Text & "'"
Cn.Execute (Sql)
Load ' Sua lai du lieu
MsgBox "Khoản vay đã sửa chữa", vbInformation, "Thông báo"
End Sub
Private Sub CmdDelete()
Dim ThamSoDele As String
Dim Bien As String
ThamSoDele = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
Sql = "select Sum(giatri) as SUMGT from Ruttien where MasoKV='" & ThamSoDele & "'"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
If Rs.Fields(0) >= TxtGiatri.Text Then
Lưu chữ các khoản vay
Sql = "insert into Lutru Select * from Hosovayvon where maoskv='" & ThamSoDele & "'"
Cn.Execute (Sql)
Sql = "Delete * from Hosovayvon Where MasoKV='" & ThamSoDele & "'"
Bien = MsgBox("Xoá khoản vay vay có mã" & ThamSoDele, vbCritical + vbYesNo, "Thông báo")
If Bien = 6 Then
Cn.Execute (Sql)
Load
End If
End If
End Sub
Private Sub cmdFind() 'Tìm theo mã hồ sơ
Sql = "Select * from Hosovayvon Where Masohs ='" & Txtsohieuvay.Text & "' "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
Mdlpublic.FillMSgrid Rs, MSFlexGrid1
FlextToTxt
MSFlexGrid1.FormatString = "Mã số HS|^ Ngày XN|^Ngoại tệ|^ Ngân hàng | ^Loại vay |^ Nguồn vốn | " & _
"Vốn tự có|^Giá trị KV| Ân hạn| ^ Nhu cầu |^BĐTrả lãi|^Giảm lãi|^Chương trình|^Kiểu trả |^ Hình thức vay|^ " & _
"Thời gian |^ Phương thức|^ Cán bộ |^ Đại diện |^ Chi nhánh| ^Tài khoản"
Else
MsgBox "Không có khoản vay có mã số : " & Txtsohieuvay.Text, vbInformation, " Thông báo "
End If
End Sub
Private Sub FlextToTxt()
Txtsohieuvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
MaskEdBox.Text = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1), "DD/MM/YYYY")
TxtLoaiNT.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)
TxtNganhang.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3)
TxtLoaivay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)
TxtNguonvon.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5)
TxtVONTUCO.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6)
TxtGiatri.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 7)
TxtNGAYANHAN.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 8)
TxtNhucau.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 9)
TxtBATDAUTRA.Text = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 10), "DD/MM/YYYY")
CmbGIAMLAI.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 11)
TxtChuongt.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 12)
TxtKieutra.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 13)
TxtHTvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 14)
TxtThoigian.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 15)
TxtPTvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 16)
TxtCBTD.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 17)
TxtDaidien.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 18)
Txtchinhanh.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 19)
TxtTaikhoan.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 20)
End Sub
‘********************************************************************’
‘Cốt của form Quản trị các user
Dim Sql As String
Dim Themsua As String
Private Sub cmdghi_Click()
Dim a, b, c, d As String
On Error GoTo Loi
a = Me.txtMaso
b = Me.txtMatkhau
c = Me.txtQuyenTC
d = Me.txtTenUser
e = Me.txttendd.Text
f = Me.txtTenGhiChu.Text
If a = "" And c = "" Then
MsgBox "Mã số và quyền không được rỗng", vbOKOnly + vbExclamation, "Thông báo"
Me.txtMaso.SetFocus
Exit Sub
End If
If b = "" Then
b = " "
End If
If d = "" Then
d = " "
End If
If e = "" Then
e = " "
End If
If f = "" Then
f = " "
End If
If Themsua = "them" Then
Sql = "Insert into NSD Values ('" & a & "','" & d & "', '" & b & "', '" & c & "', '" & e & "', '" & f & "')"
Cn.Execute (Sql)
MsgBox "Bạn đã thực hiện thành công", vbOKOnly + vbExclamation, "Thông báo"
End If
If Themsua = "sua" Then
Sql = "Update NSD set Ten_NSD = '" & Me.txtTenUser & "', MM_NSD ='" & Me.txtMatkhau & "', QUYEN = '" & Me.txtQuyenTC & "' , TEN_DAY_DU ='" & Me.txttendd & "', GHI_CHU ='" & Me.txtTenGhiChu & "' where Maso = '" & Me.txtMaso.Text & "'"
Cn.Execute (Sql)
End If
Dim FormatString As String
Sql = "Select Maso,Ten_NSD from NSD Order by Maso "
FormatString = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
Call Load_Flex(FormatString, Rs, GridUser)
Set Rs = Nothing
TextDisable
Me.cmdghi.Enabled = False
Me.cmdthem.Enabled = True
TextDisable
TextClear
Exit Sub
Loi:
Dim user_err
user_err = "Mã Lỗi : " & Err & " -> " & Err.Description
MsgBox user_err, 16
Exit Sub
End Sub
Private Sub cmdsua_Click()
Themsua = "sua"
Me.txtMaso.Enabled = False
Me.txtMatkhau.Enabled = True
Me.txtQuyenTC.Enabled = True
Me.txtTenUser.Enabled = True
Me.txttendd.Enabled = True
Me.txtTenGhiChu.Enabled = True
Me.cmdghi.Enabled = True
' Me.cmdTHEM.Enabled = False
End Sub
Private Sub cmdTHEM_Click()
TextEnable
TextClear
Themsua = "them"
Me.txtMaso.SetFocus
Me.cmdghi.Enabled = True
Me.cmdxoa.Enabled = False
Me.cmdsua.Enabled = False
End Sub
Private Sub cmdXOA_Click()
Dim FormatString As String
Dim Thong_Bao As String
On Error GoTo Loi
Thong_Bao = MsgBox("Bạn có chắc chẵn xoá bản ghi này không", vbOKCancel, "Thông báo")
If Thong_Bao = vbOK Then
Cn.BeginTrans
Sql = "Delete from NSD Where Maso='" & Me.txtMaso.Text & "'"
Set Rs = Cn.Execute(Sql)
Set Rs = Nothing
Cn.CommitTrans
Sql = "Select Maso,Ten_NSD from NSD order by maso"
FormatString = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
Call Load_Flex(FormatString, Rs, GridUser)
TextDisable
TextClear
End If
Exit Sub
Loi:
MsgBox "Bạn Không thể xoá được bản ghi này", , "Thông báo"
End Sub
Private Sub Form_Load()
Dim FormatString As String
Dim i As Integer
Sql = "Select * from NSD Order by Maso"
Header = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
GridUser.Cols = 3
GridUser.FormatString = Header
i = 1
If Not Rs.EOF Then
Rs.MoveFirst
GridUser.Rows = 1
Do While Not Rs.EOF
GridUser.Rows = GridUser.Rows + 1
GridUser.Row = GridUser.Rows - 1
GridUser.TextMatrix(i, 0) = Str(i)
GridUser.TextMatrix(GridUser.Row, 1) = Rs!maso
GridUser.TextMatrix(GridUser.Row, 2) = Rs!Ten_NSD
i = i + 1
Rs.MoveNext
Loop
Else
GridUser.Rows = 1
GridUser.Rows = 2
End If
Set Rs = Nothing
TextDisable
Me.cmdghi.Enabled = False
Me.cmdsua.Enabled = False
Me.cmdxoa.Enabled = False
End Sub
Private Sub TextDisable()
Me.txtMaso.Enabled = False
Me.txtMatkhau.Enabled = False
Me.txtQuyenTC.Enabled = False
Me.txtTenUser.Enabled = False
Me.txttendd.Enabled = False
Me.txtTenGhiChu.Enabled = False
End Sub
Private Sub TextEnable()
Me.txtMaso.Enabled = True
Me.txtMatkhau.Enabled = True
Me.txtQuyenTC.Enabled = True
Me.txtTenUser.Enabled = True
Me.txttendd.Enabled = True
Me.txtTenGhiChu.Enabled = True
End Sub
Private Sub TextClear()
Me.txtMaso.Text = ""
Me.txtMatkhau.Text = ""
Me.txtQuyenTC.Text = ""
Me.txtTenUser.Text = ""
Me.txttendd.Text = ""
Me.txtTenGhiChu.Text = ""
End Sub
Private Sub GridUser_Click()
Set Rs = Cn.Execute("Select * from NSD Order by Maso")
Rs.Move Me.GridUser.Row - 1, 1
Me.txtMaso.Text = Rs!maso
Me.txtMatkhau.Text = IIf(Not IsNull(Rs!MM_NSD), Rs!MM_NSD, " ")
Me.txtQuyenTC.Text = IIf(Not IsNull(Rs!QUYEN), Rs!QUYEN, " ")
Me.txtTenUser.Text = IIf(Not IsNull(Rs!Ten_NSD), Rs!Ten_NSD, " ")
Me.txttendd.Text = IIf(Not IsNull(Rs!Ten_DAY_DU), Rs!Ten_DAY_DU, " ")
Me.txtTenGhiChu.Text = IIf(Not IsNull(Rs!GHI_CHU), Rs!GHI_CHU, " ")
Me.cmdxoa.Enabled = True
Me.cmdsua.Enabled = True
End Sub
Private Sub txtMaso_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtMatkhau.SetFocus
End If
End Sub
Private Sub txtMatkhau_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtQuyenTC.SetFocus
End If
End Sub
Private Sub txtQuyenTC_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtTenUser.SetFocus
End If
End Sub
Private Sub txttendd_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtTenGhiChu.SetFocus
End If
End Sub
Private Sub txtTenGhiChu_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.cmdghi.SetFocus
End If
End Sub
Private Sub txtTenUser_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txttendd.SetFocus
End If
End Sub
‘ Xác nhận khoản vay
‘Dim gcnnsm As ADODB.Connection
‘Cn.CursorLocation = adUseClient
Private Sukien As String
Private Dulieu As String 'Lay du lieu tu Frm khac
Private Sub CmbGIAMLAI_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtChuongt.SetFocus
End If
End Sub
Private Sub cmdDONG_Click()
Unload Me
End Sub
Private Sub Cmd_Click(Index As Integer)
Select Case Index
Case 1
Sukien = "Themmoi"
Case 3
Sukien = "Suadoi"
Case 2
If Sukien = "Suadoi" Then
CmdSuadoi
End If
If Sukien = "Themmoi" Then
CmdSave
End If
Case 4
CmdDelete
End Select
End Sub
Private Sub CmdChinhanh_Click()
Dulieu = "Chinhanh"
Frmchinhanh.Show
TxtTaikhoan.SetFocus
End Sub
Private Sub cmdFindt_Click()
cmdFind
End Sub
Private Sub CmdKhachhang_Click()
Dulieu = "Nganhang"
FrmThoathuan.Show
End Sub
Private Sub CmdNgoaite_Click()
Dulieu = "Ngoaite"
FrmNgoaite.Show
End Sub
Private Sub Load()
Sql = "select * from hosovayvon order by masohs "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
Mdlpublic.FillMSgrid Rs, MSFlexGrid1
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1), "DD/MM/YYYY")
MSFlexGrid1(MSFlexGrid1.Row, 0) = ""
MSFlexGrid1.FormatString = "Mã số HS|Ngày Nhận"
End Sub
Private Sub Form_Load()
Call SetMouse(Me)
'chen Tranh vao nut lenh
Cmd(0).Picture = LoadResPicture("TIMKIEM", 0)
Cmd(1).Picture = LoadResPicture("THEMMOIF2", 0)
Cmd(3).Picture = LoadResPicture("SUADOI", 0)
Cmd(4).Picture = LoadResPicture("XOAF8", 0)
Cmd(2).Picture = LoadResPicture("CAPNHATF3", 0)
Cmd(5).Picture = LoadResPicture("THOAT", 0)
End Sub
Private Sub MaskEdBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmdNgoaite.SetFocus
End If
End Sub
Private Sub TxtBATDAUTRA_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmbGIAMLAI.SetFocus
End If
End Sub
Private Sub TxtCBTD_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtDaidien.SetFocus
End If
End Sub
Private Sub Txtchinhanh_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtTaikhoan.SetFocus
End If
End Sub
Private Sub TxtChuongt_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtKieutra.SetFocus
End If
End Sub
Private Sub TxtDaidien_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
CmdChinhanh.SetFocus
End If
End Sub
Private Sub TxtGiatri_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNGAYANHAN.SetFocus
End If
End Sub
Private Sub TxtHTvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtThoigian.SetFocus
End If
End Sub
Private Sub TxtKieutra_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtHTvay.SetFocus
End If
End Sub
Private Sub TxtLoaivay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNguonvon.SetFocus
End If
End Sub
Private Sub TxtNGAYANHAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtNhucau.SetFocus
End If
End Sub
Private Sub TxtNguonvon_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtVONTUCO.SetFocus
End If
End Sub
Private Sub TxtNhucau_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtBATDAUTRA.SetFocus
End If
End Sub
Private Sub TxtPTvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtCBTD.SetFocus
End If
End Sub
Private Sub Txtsohieuvay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
MaskEdBox.SetFocus
End If
End Sub
Private Sub TxtThoigian_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtPTvay.SetFocus
End If
End Sub
Private Sub TxtVONTUCO_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = vbKeyTab Then
TxtGiatri.SetFocus
End If
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case Is = vbKeyF6
If Cmd(0).Enabled = True Then cmdFinds
Case Is = 13
SendKeys "{Tab}", True
Case Is = vbKeyF2
If Cmd(1).Enabled = True Then CmdAdds
Case Is = vbKeyF3
If Cmd(2).Enabled = True Then CmdSaves
Case Is = vbKeyF8
If Cmd(4).Enabled = True Then CmdDeletes
Case Is = vbKeyF5
If Cmd(3).Enabled = True Then CmdEdits
Case Is = vbKeyF12
If Cmd(5).Enabled = True Then CmdTSTCs
End Select
End Sub
Private Sub CmdSave()
If IsNull(Txtsohieuvay.Text) Then
MsgBox " Mã số khoản vay ?", vbCritical, "Thông báo"
Exit Sub
Sql = "select * from Hosokhoanvay Where MasoHS= '" & Txtsohieuvay.Text & "'"
Set Rs = New ADODB.Recordset
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
MsgBox " Mã số khoản vay đã dùng rồi", vbCritical, "Thông báo"
Exit Sub
If Not IsDate(MaskEdBox.Text) Then
MaskEdBox = Date
Else
MaskEdBox.Text = Format(CDate(MaskEdBox.Text), "DD/MM/YYYY")
End If
If Not IsDate(TxtBATDAUTRA.Text) Then
MaskEdBox = Date
Else
TxtBATDAUTRA.Text = Format(CDate(TxtBATDAUTRA.Text), "DD/MM/YYYY")
End If
If IsNull(Txtchinhanh.Text) Then
MsgBox "Sử Dụng cho chi nhánh nào", vbCritical, "Thông báo"
Exit Sub
End If
If IIf(IsNull(TxtNganhang.Text), "", TxtNganhang.Text) Then
MsgBox "Đối tác tài trợ ?", vbCritical, "Thông báo"
End If
If IIf(IsNull(TxtTaikhoan.Text), "", TxtTaikhoan.Text) Then
MsgBox "Khoản vay này cần đưa vào tài khoản nào ?", vbCritical, "Thông báo"
End If
' Kiểm tra số tiềm vay phải < Số tiền Thoả thuận trước
Dim NgayTT%
NgayTT = Max(NgayTT)
Sql = "Select Max(NgayTT) from Hstaitro where Bank_id ='" & TxtNganhang & "' "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
If Rs > Date Then
Exit Sub
Else
Sql = "Select giatri from Hstaitro where Bank_id ='" & TxtNganhang & "' "
Set Rs = New ADODB.Recordset
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If TxtGiatri.Text > Rs("giatri") Then
MsgBox "Khoản vay Không thể lớn hơn mức thoả thuận", vbCritical, "Thông báo"
End If
Exit Sub
Sql = "Insert into Hosovayvon values('" & Txtsohieuvay.Text & "' " & _
",'" & MaskEdBox.Text & "' ,'" & TxtLoaiNT.Text & "'" & _
",'" & TxtNganhang.Text & "' ,'" & TxtLoaivay.Text & "' " & _
",'" & TxtNguonvon.Text & "'," & TxtVONTUCO.Text & " " & _
",'" & TxtNGAYANHAN.Text & "','" & TxtNhucau.Text & "' " & _
", '" & TxtBATDAUTRA.Text & "', '" & CmbGIAMLAI.Text & "'" & _
",'" & TxtChuongt.Text & "' ,'" & TxtKieutra.Text & "', '" & TxtHTvay.Text & "'" & _
"," & TxtThoigian.Text & ",'" & TxtPTvay.Text & "' " & _
",'" & TxtCBTD.Text & "','" & TxtDaidien.Text & "' " & _
",'" & Txtchinhanh.Text & "','" & TxtTaikhoan.Text & "')"
Cn.Execute (Sql)
End Sub
Private Sub CmdSuadoi()
Sql = " select NgayXN from Hosovayvon where MasoHS =' " & Txtsohieuvay.Text & " '"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Dim Ngayvay%
Dim Homnay%
'Hệ thống hoạt động theo tháng
Homnay = FormatDateTime(Format(Date, "DD/MM/YYYY"))
Ngayvay = FormatDateTime(Format(Rs("NgayXN"), "DD/MM/YYYY"))
If Right(Homnay) - Right(Ngayvay) > 1 Then
MsgBox "Khoản vay không thể sử chữa", vbCritical, "Thông báo"
Exit Sub
End If
Sql = " Update Hosovayvon set " & _
" NgayXN= '" & MaskEdBox.Text & "' ,LoaiNgoaite= '" & TxtLoaiNT.Text & "'" & _
",Bank_id= '" & TxtNganhang.Text & "' ,Loaivay='" & TxtLoaivay.Text & "' " & _
",nguonvon ='" & TxtNguonvon.Text & "',vontuco=" & TxtVONTUCO.Text & " " & _
",anhan='" & TxtNGATxtNguonvonYANHAN.Text & "',nhucau='" & TxtNhucau.Text & "' " & _
", Ngaytralai='" & TxtBATDAUTRA.Text & "', Giamlai=' " & CmbGIAMLAI.Text & "'" & _
",Chuongtrinh ='" & TxtChuongt.Text & "' ,Kieutra='" & TxtKieutra.Text & "', Hinhthucvay='" & TxtHTvay.Text & "'" & _
",Thoigian=" & TxtThoigian.Text & ",Phuongthuc='" & TxtPTvay.Text & "' " & _
",CanboXN='" & TxtCBTD.Text & "',Daidien='" & TxtDaidien.Text & "' " & _
",Chinhanh='" & Txtchinhanh.Text & "',Taikhoan='" & TxtTaikhoan.Text & "'" & _
" where Masokv='" & Txtsohieuvay.Text & "'"
Cn.Execute (Sql)
Load ' Sua lai du lieu
MsgBox "Khoản vay đã sửa chữa", vbInformation, "Thông báo"
End Sub
Private Sub CmdDelete()
Dim ThamSoDele As String
Dim Bien As String
ThamSoDele = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
Sql = "select Sum(giatri) as SUMGT from Ruttien where MasoKV='" & ThamSoDele & "'"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
If Rs.Fields(0) >= TxtGiatri.Text Then
Lưu chữ các khoản vay
Sql = "insert into Lutru Select * from Hosovayvon where maoskv='" & ThamSoDele & "'"
Cn.Execute (Sql)
Sql = "Delete * from Hosovayvon Where MasoKV='" & ThamSoDele & "'"
Bien = MsgBox("Xoá khoản vay vay có mã" & ThamSoDele, vbCritical + vbYesNo, "Thông báo")
If Bien = 6 Then
Cn.Execute (Sql)
Load
End If
End If
End Sub
Private Sub cmdFind() 'Tìm theo mã hồ sơ
Sql = "Select * from Hosovayvon Where Masohs ='" & Txtsohieuvay.Text & "' "
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
Mdlpublic.FillMSgrid Rs, MSFlexGrid1
FlextToTxt
MSFlexGrid1.FormatString = "Mã số HS|^ Ngày XN|^Ngoại tệ|^ Ngân hàng | ^Loại vay |^ Nguồn vốn | " & _
"Vốn tự có|^Giá trị KV| Ân hạn| ^ Nhu cầu |^BĐTrả lãi|^Giảm lãi|^Chương trình|^Kiểu trả |^ Hình thức vay|^ " & _
"Thời gian |^ Phương thức|^ Cán bộ |^ Đại diện |^ Chi nhánh| ^Tài khoản"
Else
MsgBox "Không có khoản vay có mã số : " & Txtsohieuvay.Text, vbInformation, " Thông báo "
End If
End Sub
Private Sub FlextToTxt()
Txtsohieuvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
MaskEdBox.Text = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1), "DD/MM/YYYY")
TxtLoaiNT.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)
TxtNganhang.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3)
TxtLoaivay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)
TxtNguonvon.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5)
TxtVONTUCO.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6)
TxtGiatri.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 7)
TxtNGAYANHAN.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 8)
TxtNhucau.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 9)
TxtBATDAUTRA.Text = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 10), "DD/MM/YYYY")
CmbGIAMLAI.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 11)
TxtChuongt.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 12)
TxtKieutra.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 13)
TxtHTvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 14)
TxtThoigian.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 15)
TxtPTvay.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 16)
TxtCBTD.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 17)
TxtDaidien.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 18)
Txtchinhanh.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 19)
TxtTaikhoan.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 20)
End Sub
‘*****************************************************************
Formgiaodich()
Private Sub cmdCAPNHAT_Click(Index As Integer)
End Sub
Private Sub cmdDONG_Click()
Unload Me
End Sub
Private Sub cmdFind_Click()
cmdFinds
End Sub
Private Sub cmdFinds()
'Tìm theo mã hồ sơ
Thamso = txtMasoKV.Text
Sql = "Select MasoHS,Bank_ID,TenNH,Daidien,NgayXacNhan,TenNT,MaTK " & _
" from Hosovayvon Where Masohs ='" & Thamso & "' "
Set Rs = New ADODB.Recordset
' Set Rs = Cn.Execute(Sql)
'Các thông tin về Khoản vay
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
txtMaSNH.Text = Rs.Fields(1).Value
txtTenNH.Text = Rs.Fields(2).Value
txtDaidien.Text = Rs.Fields(3).Value
txtNgayXN.Text = Rs.Fields(4).Value
txtLoai_NT.Text = Rs.Fields(5).Value
txtTK_Von.Text = Rs.Fields(6).Value
'******************************************************************************************************************************
''Thông tin về số lần trả nợ và giá trị cụ thể
Sql = "Select * from Lantrano Order by Lantra "
Set Rs = New ADODB.Recordset
Rs.Open Sql, Cn, adOpenKeyset, adLockPessimistic
Mdlpublic.FillMSgrid Rs, Flex1
' FlextToTxt
Else
MsgBox "Khoản vay chưa được trả nợ : " & Txtsohieuvay.Text, vbInformation, " Thông báo "
End If
End Sub
Private Sub Addnew()
'******************************************************************************************************************************
Dim Con As Long
' Lưu số liệu Giao dịch mới
If Opt_LoaiGD(1).Value = True Then
'Giao dich tra no
If Not IsDate(txtNGAY_GD) Then
txtNGAY_GD.Text = Format(CDate(txtNGAY_GD.Text), "DD/MM/YYYY")
End If
If Not IsDate(txtNGAY_CT) Then
txtNGAY_CT.Text = Format(CDate(txtNGAY_CT.Text), "DD/MM/YYYY")
End If
If txtMGD.Text = "" Then
MsgBox "Ma so Giao dich khong the trong", vbCritical, "Thong bao"
Exit Sub
End If
Con = KiemtaGD(Conlai)
If Con < txtSOTIEN.Text Then
MsgBox "So tien giao dich da lon hon So Tien con lai", vbCritical, "Thong bao"
Exit Sub
End If
Sql = " Insert Into Lantra values( )"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
End Sub
Private Sub KiemtaGD(Conlai As Long)
Dim Giatri As Long
Dim Tongsotra As Long
Sql = "Select Giatri from Hosovayvon Where Masohs ='" & Trim(txtMasoKV.Text) & "'"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Errors(Sql)
Giatri = Rs.Fields(0) 'Lay duoc gia tri khoan vay
Sql = "Select SUM(Giatri) from Lantra Where Masohs ='" & Trim(txtMasoKV.Text) & "'"
Set Rs = New ADODB.Recordset
Set Rs = Cn.Execute(Sql)
Tongsotra = Rs.Fields(0)
Conlai = Giatri - Tongsotra
End Sub
‘***********************************************************************************************************************************
‘Cốt của form Quản trị các user
Dim Sql As String
Dim Themsua As String
Private Sub cmdghi_Click()
Dim a, b, c, d As String
On Error GoTo Loi
a = Me.txtMaso
b = Me.txtMatkhau
c = Me.txtQuyenTC
d = Me.txtTenUser
e = Me.txttendd.Text
f = Me.txtTenGhiChu.Text
If a = "" And c = "" Then
MsgBox "Mã số và quyền không được rỗng", vbOKOnly + vbExclamation, "Thông báo"
Me.txtMaso.SetFocus
Exit Sub
End If
If b = "" Then
b = " "
End If
If d = "" Then
d = " "
End If
If e = "" Then
e = " "
End If
If f = "" Then
f = " "
End If
If Themsua = "them" Then
Sql = "Insert into NSD Values ('" & a & "','" & d & "', '" & b & "', '" & c & "', '" & e & "', '" & f & "')"
Cn.Execute (Sql)
MsgBox "Bạn đã thực hiện thành công", vbOKOnly + vbExclamation, "Thông báo"
End If
If Themsua = "sua" Then
Sql = "Update NSD set Ten_NSD = '" & Me.txtTenUser & "', MM_NSD ='" & Me.txtMatkhau & "', QUYEN = '" & Me.txtQuyenTC & "' , TEN_DAY_DU ='" & Me.txttendd & "', GHI_CHU ='" & Me.txtTenGhiChu & "' where Maso = '" & Me.txtMaso.Text & "'"
Cn.Execute (Sql)
End If
Dim FormatString As String
Sql = "Select Maso,Ten_NSD from NSD Order by Maso "
FormatString = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
Call Load_Flex(FormatString, Rs, GridUser)
Set Rs = Nothing
TextDisable
Me.cmdghi.Enabled = False
Me.cmdthem.Enabled = True
TextDisable
TextClear
Exit Sub
Loi:
Dim user_err
user_err = "Mã Lỗi : " & Err & " -> " & Err.Description
MsgBox user_err, 16
Exit Sub
End Sub
Private Sub cmdsua_Click()
Themsua = "sua"
Me.txtMaso.Enabled = False
Me.txtMatkhau.Enabled = True
Me.txtQuyenTC.Enabled = True
Me.txtTenUser.Enabled = True
Me.txttendd.Enabled = True
Me.txtTenGhiChu.Enabled = True
Me.cmdghi.Enabled = True
' Me.cmdTHEM.Enabled = False
End Sub
Private Sub cmdTHEM_Click()
TextEnable
TextClear
Themsua = "them"
Me.txtMaso.SetFocus
Me.cmdghi.Enabled = True
Me.cmdxoa.Enabled = False
Me.cmdsua.Enabled = False
End Sub
Private Sub cmdXOA_Click()
Dim FormatString As String
Dim Thong_Bao As String
On Error GoTo Loi
Thong_Bao = MsgBox("Bạn có chắc chẵn xoá bản ghi này không", vbOKCancel, "Thông báo")
If Thong_Bao = vbOK Then
Cn.BeginTrans
Sql = "Delete from NSD Where Maso='" & Me.txtMaso.Text & "'"
Set Rs = Cn.Execute(Sql)
Set Rs = Nothing
Cn.CommitTrans
Sql = "Select Maso,Ten_NSD from NSD order by maso"
FormatString = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
Call Load_Flex(FormatString, Rs, GridUser)
TextDisable
TextClear
End If
Exit Sub
Loi:
MsgBox "Bạn Không thể xoá được bản ghi này", , "Thông báo"
End Sub
Private Sub Form_Load()
Dim FormatString As String
Dim i As Integer
Sql = "Select * from NSD Order by Maso"
Header = "STT |Mã số |Tên người sử dụng "
Set Rs = Cn.Execute(Sql)
GridUser.Cols = 3
GridUser.FormatString = Header
i = 1
If Not Rs.EOF Then
Rs.MoveFirst
GridUser.Rows = 1
Do While Not Rs.EOF
GridUser.Rows = GridUser.Rows + 1
GridUser.Row = GridUser.Rows - 1
GridUser.TextMatrix(i, 0) = Str(i)
GridUser.TextMatrix(GridUser.Row, 1) = Rs!maso
GridUser.TextMatrix(GridUser.Row, 2) = Rs!Ten_NSD
i = i + 1
Rs.MoveNext
Loop
Else
GridUser.Rows = 1
GridUser.Rows = 2
End If
Set Rs = Nothing
TextDisable
Me.cmdghi.Enabled = False
Me.cmdsua.Enabled = False
Me.cmdxoa.Enabled = False
End Sub
Private Sub TextDisable()
Me.txtMaso.Enabled = False
Me.txtMatkhau.Enabled = False
Me.txtQuyenTC.Enabled = False
Me.txtTenUser.Enabled = False
Me.txttendd.Enabled = False
Me.txtTenGhiChu.Enabled = False
End Sub
Private Sub TextEnable()
Me.txtMaso.Enabled = True
Me.txtMatkhau.Enabled = True
Me.txtQuyenTC.Enabled = True
Me.txtTenUser.Enabled = True
Me.txttendd.Enabled = True
Me.txtTenGhiChu.Enabled = True
End Sub
Private Sub TextClear()
Me.txtMaso.Text = ""
Me.txtMatkhau.Text = ""
Me.txtQuyenTC.Text = ""
Me.txtTenUser.Text = ""
Me.txttendd.Text = ""
Me.txtTenGhiChu.Text = ""
End Sub
Private Sub GridUser_Click()
Set Rs = Cn.Execute("Select * from NSD Order by Maso")
Rs.Move Me.GridUser.Row - 1, 1
Me.txtMaso.Text = Rs!maso
Me.txtMatkhau.Text = IIf(Not IsNull(Rs!MM_NSD), Rs!MM_NSD, " ")
Me.txtQuyenTC.Text = IIf(Not IsNull(Rs!QUYEN), Rs!QUYEN, " ")
Me.txtTenUser.Text = IIf(Not IsNull(Rs!Ten_NSD), Rs!Ten_NSD, " ")
Me.txttendd.Text = IIf(Not IsNull(Rs!Ten_DAY_DU), Rs!Ten_DAY_DU, " ")
Me.txtTenGhiChu.Text = IIf(Not IsNull(Rs!GHI_CHU), Rs!GHI_CHU, " ")
Me.cmdxoa.Enabled = True
Me.cmdsua.Enabled = True
End Sub
Private Sub txtMaso_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtMatkhau.SetFocus
End If
End Sub
Private Sub txtMatkhau_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtQuyenTC.SetFocus
End If
End Sub
Private Sub txtQuyenTC_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtTenUser.SetFocus
End If
End Sub
Private Sub txttendd_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txtTenGhiChu.SetFocus
End If
End Sub
Private Sub txtTenGhiChu_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.cmdghi.SetFocus
End If
End Sub
Private Sub txtTenUser_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Me.txttendd.SetFocus
End If
End Sub
******************************************************************
Module Public
******************************************************************
‘Ket noi chuot
Public Sub SetMouse(ByRef frm As Form)
Dim MyConTrol
For Each MyConTrol In frm.Controls
If (TypeOf MyConTrol Is CommandButton) Or _
(TypeOf MyConTrol Is ComboBox) Or _
(TypeOf MyConTrol Is ListBox) Or _
(TypeOf MyConTrol Is TreeView) Or _
(TypeOf MyConTrol Is Toolbar) Or _
(TypeOf MyConTrol Is MSFlexGrid) Then
MyConTrol.MouseIcon = LoadResPicture("ChiTay", 2)
MyConTrol.MousePointer = 99
End If
Next
End Sub
Public Sub FillMSgrid(ByVal mrssM As ADODB.Recordset, ByVal mMsGrid As MSFlexGrid)
'use all form in project
Dim miRow As Integer 'so dong
Dim miCol As Integer 'socot
Dim miiFor As Integer
Dim mijFor As Integer
miRow = mrssM.RecordCount
miCol = mrssM.Fields.Count
mMsGrid.Cols = miCol
mMsGrid.Rows = miRow + 1
If miRow 0 Then
mrssM.MoveFirst
For miiFor = 1 To miRow
For mijFor = 0 To miCol - 1
If mrssM.Fields(mijFor) "" Then
mMsGrid.TextMatrix(miiFor, mijFor) = mrssM.Fields(mijFor)
End If
Next mijFor
mrssM.MoveNext
Next miiFor
End If
End Su
Tài liệu tham khảo
Kỹ thuật lập trình Cơ sở dữ kiệu ViSual Basic 6.0.
Cơ sở dữ liệu SQL sever 7.0.
Hệ thống thông tin quản lý. TS : Trương văn Tú.
Tạp chí Ngân hàng.( Tháng 1 và 2 năm 2002 ).
Các file đính kèm theo tài liệu này:
- 29845.doc