Ngày nay, trên thế giới cũng như ở nước ta, Tin học là một ngành mũi nhọn đã và đang thâm nhập vào mọi lĩnh vực của đời sống kinh tế xã hội và đặc biệt là trong công tác quản lý. Sự góp mặt của Tin học trong công tác quản lý đã làm nhẹ đi sự tham gia của con người, đảm bảo thông tin quản lý chính xác để đem lại hiệu quả kinh tế cũng như tiết kiệm được thời gian, công sức so với việc làm quản lý thủ công trên giấy tờ như trước đây. Điều dễ nhận thấy là nó giảm được không gian lưu trữ, tránh được sự thất lạc, mất mát dữ liệu mà nó còn có khả năng tự động hóa hệ thống, cụ thể hoá các lượng thông tin theo nhu cầu của con người.
Khả năng của tin học và máy tính là vô hạn, sự kết hợp giữa máy tính và các phần mềm hệ thống giúp chúng ta xây dựng các chương trình ứng dụng theo những gì mà ta mong muốn. Thông qua tìm hiểu việc sử dụng ngân sách tại một số cơ quan nhà nước thì hiện tại đa số các cơ quan này còn sử dụng hình thức quản lý chi tiêu ngân sách thủ công trên giấy tờ hoặc sử dụng chương trình bảng tính Excel để thực hiện việc tính toán và quản lý công việc chi tiêu ngân sách tại đơn vị mình. Việc quản lý như vậy sẽ mất rất nhiều công sức, thời gian và nhiều khi còn bị nhầm lẫn. Nhận thấy vấn đề đó có thể giải quyết được bằng cách viết một chương trình nhằm tự động tự hoá khâu tính toán để làm giảm bớt những vất vả của người làm tài chính tại các cơ quan sử dụng ngân sách đã nói ở trên. Em quyết định lựa chọn đề tài: “Khảo sát, Phân tích thiết kế và Xây dựng chương trình quản lý chi ngân sách”. Kí hiệu viết tắt của chương trình: QLCNS v1.0
104 trang |
Chia sẻ: Dung Lona | Lượt xem: 1274 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tình hình hoạt động tại Công ty ứng dụng tiến bộ khoa học và công nghệ Mitec, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ình mà đơn vị mình hoạt động.
3.4.2. Danh mục loại:
Thực hiện thông qua Menu [Các danh mục] à [Danh mục Loại] có kiểu như sau:
Hình 15: màn hình danh mục loại ngân sách.
Đối với danh mục Loại bạn có thể định nghĩa thêm mới, chỉnh sửa, xoá hay xem.
- Thêm mới danh mục loại: ấn nút [Thêm] à nhập các thông tin vào à ấn nút [Lưu lại] để ghi nhớ mã Loại và tên loại vừa được thêm mới.
- Sửa danh mục loại: chọn danh mục cần sửa rồi ấn nút sửa à chỉnh sửa thông tin về danh mục loại đó rồi ấn nút [Lưu lại] để ghi đè.
- Xoá danh mục loại: chọn danh mục cần xoá rồi ấn nút [Xoá] sẽ hiện thông báo trước khi xoá:
Hình 16: thông báo khẳng định việc xoá một danh mục loại
3.4.3. Danh mục Khoản:
Thực hiện tương tự như danh mục loại ở trên.
3.4.4. Danh mục Mục:
Thực hiện thông qua Menu [Các danh mục] à [Mục lục ngân sách] à [Cấp1Mục] hoặc bạn có thể ấn tổ hợp phím Ctrl-M để gọi màn hình Mục lục Ngân sách cấp1.
Hình 17: màn hình danh mục - Mục ngân sách
Các chức năng thao tác được thực hiện tương tự như màn hình quản lý của danh mục Loại. Trong màn hình này bạn có thể quản lý danh mục Mục lục Ngân sách (cấp 1). Tại đây bạn có thể tìm kiếm Mục lục Ngân sách cấp 1 theo mã mục.
3.4.5 Danh mục Tiểu mục:
Thực hiện thông qua Menu [Các danh mục] à [Mục lục ngân sách] à [Cấp2-Tiểu Mục] hoặc bạn có thể ấn tổ hợp phím Ctrl-T để gọi màn hình Tiểu Mục (cấp 2) của mục lục Ngân sách.
Hình 18: màn hình danh mục - Tiểu mục ngân sách
Các thao tác trên màn hình này tương tụ như việc thao tác với Mục lục Ngân sách cấp1. Thao tác tìm kiếm có thể theo 2 tiêu thức :
+ Tìm theo Mục Ngân sách cấp 1 : Bạn không cần nhập bất cứ gì vào mục Tìm kiếm theo tiểu mục mà bạn chỉ cần chọn Mục ngân sách trong hộp thả xuống và nhấn vào nút [Tìm Kiếm], chương trình sẽ tìm tất cả các tiểu mục thuộc mục này cho bạn.
+ Tìm theo Tiểu mục ngân sách cấp 2: Nếu bạn cần tìm tiểu mục, bạn gõ mã tiểu mục vào ô [Tìm theo tiểu mục] và chọn nút [Tìm Kiếm].
3.5. Báo cáo:
Chức năng này được thực hiện thông qua Menu [Báo cáo] gồm hai phần chính, đó là: Menu [bảng kê chứng từ thanh toán] và Menu [bảng kê hoạt động chi].
3.5.1. Một số chú ý trước khi xem báo cáo:
- Chương trình sẽ lấy năm lên báo cáo là năm mà bạn đã chọn trong phần Menu [Hệ thống] nên khi đưa thông tin vào cho việc lên báo cáo, bạn không cần phải chọn năm để lên báo cáo.
- Cách đánh số trang được qui định như sau: Trang hiện thời / Tổng số trang của báo cáo. Ví dụ: 1/1 tức là báo cáo này có 1 trang; 1/2 tức là báo cáo này có 2 trang và trang đang xem là trang thứ nhất trong số 2 trang của báo cáo.
- Nếu số liệu xuất ra trên các báo cáo bị âm (nhỏ hơn 0) hay số dư tạm ứng nhỏ hơn số đề nghị thanh toán trong [Giấy đề nghị thanh toán] thì các số đó sẽ có màu đỏ trên báo cáo. Chúng tôi đề nghị bạn hãy kiểm tra lại các số liệu, chứng từ đã nhập vào có liên quan đến loại, khoản, mục tương ứng đó bằng cách khoanh vùng tìm kiếm chứng từ chi theo 1 tiêu thức nào đó (ngày tháng hoặc số chứng từ...) để tìm ra chỗ sai rồi tiến hành sửa nó.
- Việc xem các báo cáo trong phần [Bảng kê chứng từ thanh toán] sẽ rất vất vả vì như vậy phải chọn rất nhiều loại và khoản cho đầu vào của báo cáo nên để xác định loại và khoản chính xác cho phần này chúng tôi khuyên các bạn nên dựa vào các loại và khoản đã được liệt kê trong báo cáo hoạt động chi tổng hợp của tháng đó để xác định chính xác đầu vào loại v à khoản của báo cáo cần xem.
Ví dụ: để in báo cáo Bảng kê chứng từ thanh toán của tháng 3 thì bạn tiến hành in [Báo cáo hoạt động chi tổng hợp] của tháng 3 trước rồi dựa vào các loại và khoản tương ứng được liệt kê trong [Báo cáo hoạt động chi tổng hợp] của tháng 3 đó để xác định thông tin đầu vào cho loại và khoản của các báo cáo trong phần [Bảng kê chứng từ thanh toán]. Như vậy sẽ tiết kiệm được thời gian của các bạn trong quá trình thực hiện xem báo cáo ở phần [Bảng kê chứng từ thanh toán]. Chúc các bạn thành công!
3.5.2. Bảng kê chứng từ thanh toán có dạng như hình sau:
Hình 19: màn hình lên báo cáo bảng kê chứng từ
Trong phần này chương trình còn hỗ trợ lựa chọn ngày để in báo cáo. Nếu bạn tích vào mục [Ngày in báo cáo] và lựa chọn ngày tháng đưa vào thì ở phần cuối của báo cáo sẽ tự động điền ngày tháng mà bạn đã đưa vào. Để chọn năm, tháng bạn nháy thẳng vào số năm, tháng sẽ hiện ra như hình sau:
Bấm chuột vào đây để chọn tháng
Bấm chuột vào để chọn năm
Ngày sẽ in trong báo cáo
Sau khi đưa vào các thông tin để lên báo cáo, bạn hãy chọn các nút tương ứng để xem báo cáo.
3.5.3. Menu [Bảng kê hoạt động chi] có 2 kiểu báo cáo về hoạt động chi trong 1 tháng và trong nhiều tháng (theo kì).
3.5.3.1. Báo cáo hoạt động chi trong 1 tháng:
Được thực hiện thông qua Menu [Báo cáo] à [Bảng kê hoạt động chi] à [Trong một tháng]. Một hộp thoại xuất hiện yêu cầu bạn hãy lựa chọn tháng để xuất báo cáo:
Hình 20: màn hình lên báo hoạt động chi ngân sách
Sau đó lựa chọn các nút tương ứng trên hộp thoại để xem báo cáo hoạt động chi (chi tiết hoặc tổng hợp) của tháng đã lựa chọn.
3.5.3.2. Báo cáo hoạt động chi theo kì (năm):
Thực hiện thông qua Menu [Báo cáo] à [Bảng kê hoạt động chi] à [Trong nhiều tháng]. Phần này chỉ cho chúng ta thực hiện xem báo cáo hoạt động chi tổng hợp trong nhiều tháng hoặc trong cả năm (từ tháng 1 à tháng 12). Tại hộp thoại này, bạn phải nhập Tháng bắt đầu lên báo cáo và tháng kết thúc báo cáo.
Hình 21: màn hình lên báo cáo chi ngân sách theo kì ( năm)
Chú ý: tháng bắt đầu lên báo cáo phải nhỏ hơn tháng kết thúc báo cáo. Nếu nhập sai chương trình sẽ cảnh báo.
- Nếu muốn có hoạt động chi chi tiết của từng tháng thì xin hãy quay lại mục 3.5.3.1 ở trên.
3.5.4 Các thao tác khi báo cáo đã hiện ra:
Khi báo cáo hiện ra sẽ có thanh công cụ ở phía trên báo cáo như hình sau:
- In báo cáo: lựa chọn hình ảnh máy in sẽ hiện ra hộp thoại in ấn yêu cầu bạn thực hiện in:
Thực hiện in
In báo cáo theo giới hạn từ trang nào đến trang nào
In tất cả các trang trong báo cáo hiện ra
Hủy không thực hiện in nữa
Số bản cần in
Ví dụ: Bạn muốn in từ trang 2 đến trang 4, bạn tích chọn ô Pages rồi sau đó trong ô From đánh 2 và trong ô To đánh 4. Sau đó ấn OK để thực hiện in báo cáo.
- Làm tươi số liệu trên báo cáo: công việc này sẽ tái hiện lại những số liệu trên báo cáo, bạn hãy nháy vào biểu tượng .
- Duyệt lướt xem báo cáo nếu báo cáo có số trang lớn hơn 1, bạn hãy nháy vào các biểu tượng :
Trang kề trước
Trang đầu
Trang cuối
Trang kế tiếp
Vị trí trang hiện tại
Tổng số trang
- Chỉnh xem to nhỏ: bạn chỉnh sửa số % thích hợp trong ô có hình Ví dụ: như hình bên là đang xem ở chế độ 100% - hình ảnh thực của báo cáo.
SAU ĐÂY LÀ MỘT SỐ MẪU BÁO CÁO CỦA CHƯƠNG TRÌNH
Mẫu số 1: Báo cáo giấy đề nghị thanh toán (tạm ứng). Báo cáo này in ra những khoản mà đơn vị đã ứng vốn (kho bạc nhà nước phải khẩn trương thanh toán cho những khoản mà đơn vị đã chi, tất nhiên là những khoản này đều thuộc trong kế hoạch vốn).
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - tự do – hạnh phúc
GIẤY ĐỀ NGHỊ THANH TOÁN TẠM ỨNG
Đơn vị: Tên gọi đơn vị
Số: xxxxxx
Tài khoản: xxxxxx
Mã số: xxxxx
Kính gửi: Kho bạc nhà nước huyện xxxxx
Căn cứ số dư tạm ứng chi ngân sách nhà nước đến ngày 31 tháng 04 năm 2003.
Đề nghị Kho bạc nhà nước thanh toán số tiền đã tạm ứng theo chi tiết sau:
TT
MỤC LỤC
SỐ DƯ
TẠM ỨNG
SỐ ĐỀ NGHỊ THANH TOÁN
SỐ KBNN DUYỆT TT
C
L
K
M
TM
022B
14
01
100
27.908.412
27.908.412
102
29.053.290
29.053.290
134
32.600.000
2.283.000
TỔNG SỐ
89.561.702
59.244.702
Số tiền bằng chữ: (Năm mươi chín triệu, hai trăm bốn bốn ngàn, bảy trăm lẻ hai đồng ).
Hà nội, ngày 02 Tháng 05 Năm 2003
Kế toán Thủ trưởng đơn vị
PHẦN DÀNH CHO KHO BẠC NHÀ NƯỚC GHI
Đồng ý thanh toán cho đơn vị số tiền:
Bằng chữ: Năm mươi chín triệu, hai trăm bốn bốn ngàn, bảy trăm lẻ hai đồng
Bằng số: 59.244.702 Nợ TK:
Có TK:
Hà nội, ngày . Tháng .. năm 2003.
Kế toán Kế toán trưởng Giám đốc KBNN
Mẫu số 2: Bảng kê chứng từ thanh toán (tạm ứng). Bảng này liệt kê chi tiết các thành phần đã được ứng vốn như số hiệu chứng từ, ngày tháng, mục, tiểu mục, số tiền.
ĐƠN VỊ SỬ DỤNG NGÂN SÁCH
TÊN ĐƠN VỊ
BẢNG KÊ CHỨNG TỪ THANH TOÁN (TẠM ỨNG)
Tháng 03 Năm 2003
KÍNH GỬI: Kho Bạc nhà nước huyện xxxxx Loại: 14 ; Khoản: 01
SỐ
CHỨNG TỪ
MỤC, T.MỤC
NỘI DUNG
SỐ TIỀN
SỐ HIỆU
NGÀY
TỔNG CỘNG
8.545.790
15
29/03/2003
102
Phụ cấp lương
8.063.790
01
phụ cấp chức vụ
286.230
02
phụ cấp khu vực
7.777.560
17
30/03/2003
119
Nghiệp vụ chuyên môn
482.000
06
Chi phục vụ hoạt động chuyên đề
482.000
Số tiền TT bằng chữ: (Tám triệu năm trăm bốn mươi lăm ngàn bảy trăm chín mươi đồng)
Hà nội, ngày 02 tháng 04 năm 2003
Xác nhận của KBNN Lập Biểu Kế toán Thủ Trưởng Đơn Vị
Mẫu số 3: Bảng kê chứng từ thanh toán (chi thẳng). Báo cáo này liệt kê chi tiết các khoản chi trực tiếp bằng số vốn đã được lĩnh về từ kho bạc nhà nước.
ĐƠN VỊ SỬ DỤNG NGÂN SÁCH
TÊN ĐƠN VỊ
BẢNG KÊ CHỨNG TỪ THANH TOÁN
Tháng 03 Năm 2003
KÍNH GỬI: Kho Bạc nhà nước huyện xxxxx Loại: 13 ; Khoản: 01
SỐ
CHỨNG TỪ
MỤC, T.MỤC
NỘI DUNG
SỐ TIỀN
SỐ HIỆU
NGÀY
TỔNG CỘNG
686.230
13
25/03/2003
100
Tiền lương
286.230
01
Tiền lương ngạch bậc
286.230
14
26/03/2003
110
Vật tư văn phòng
400.000
06
Văn phòng phẩm văn phòng
400.000
Số tiền TT bằng chữ: (Sáu trăm tám mươi sáu ngàn hai trăm ba mươi đồng).
Hà nội, ngày 02 tháng 04 năm 2003.
Xác nhận của KBNN Lập Biểu Kế toán Thủ Trưởng Đơn Vị
Mẫu số 4: Báo cáo chi chi tiết các hoạt động trong một tháng. Báo cáo này cho biết tình hình hoạt động cụ thể về loại, khoản, mục trong tháng cần lên báo cáo như thế nào.
BÁO CÁO CHI CHI TIẾT HOẠT ĐỘNG THÁNG 02 NĂM 2003
L
K
M
TỒN ĐẦU KỲ
NHẬP TRONG KỲ
XUẤT TRONG KỲ
TỒN CUỐI KỲ
KỲ NÀY
LUỸ KẾ
KỲ NÀY
LUỸ KẾ
13
02
100
150
100
300
50
100
200
101
100
60
250
80
170
80
CỘNG
250
160
550
130
270
280
14
01
118
50
10
70
100
110
-40
119
85
15
195
80
175
20
CỘNG
135
25
265
180
285
-20
Hà nội, ngày 02 Tháng 03 năm 2003.
XÁC NHẬN CỦA KHO BẠC KẾ TOÁN CHỦ TÀI KHOẢN
Mẫu số 5: Báo cáo chi tổng hợp trong một tháng. Báo cáo này đưa ra một cái nhìn tổng kết về hoạt động của các loại, khoản liên quan trong tháng báo cáo.
BÁO CÁO CHI TỔNG HỢP HOẠT ĐỘNG THÁNG 02 NĂM 2003
L
K
M
TỒN ĐẦU KỲ
NHẬP TRONG KỲ
XUẤT TRONG KỲ
TỒN CUỐI KỲ
KỲ NÀY
LUỸ KẾ
KỲ NÀY
LUỸ KẾ
13
02
250
160
550
130
270
280
14
01
135
25
265
180
285
-20
Hà nội, ngày 02 tháng 03 năm 2003.
XÁC NHẬN CỦA KHO BẠC KẾ TOÁN CHỦ TÀI KHOẢN
Mẫu số 6: Báo cáo chi tổng hợp trong nhiều tháng. Với báo cáo này người dùng có thể xem tình hình hoạt động tổng kết của các loại, khoản theo quí hay kì hoặc năm báo cáo.
BÁO CÁO CHI TỔNG HỢP TỪ THÁNG 01 ĐẾN THÁNG 03
L
K
M
TỒN ĐẦU KỲ
NHẬP TRONG KỲ
XUẤT TRONG KỲ
TỒN CUỐI KỲ
KỲ NÀY
LUỸ KẾ
KỲ NÀY
LUỸ KẾ
13
02
250
170
550
130
300
290
14
01
135
50
290
180
285
5
14
02
100
150
450
100
300
150
Hà nội, ngày 02 tháng 04 năm 2003.
XÁC NHẬN CỦA KHO BẠC KẾ TOÁN CHỦ TÀI KHOẢN
3.6. Các công cụ của chương trình
3.6.1. Công cụ tìm kiếm và sửa đổi chứng từ
Để truy nhập tới chức năng này tại màn hình chính bạn có thể ấn phím F5 để gọi hoặc vào Menu [Công cụ]à [Tìm kiếm].
Tìm kiếm: Bạn có thể tìm kiếm chứng từ theo 3 tiêu thức :
- Tìm kiếm các chứng từ theo Ngày chứng từ trong một khoảng thời gian nào đó.
- Tìm kiếm các chứng từ theo Ngày hạch toán trong một khoảng thời gian.
- Tìm kiếm theo số chứng từ.
Lựa chọn tiêu thức tìm kiếm
Giá trị cần tìm kiếm
Sau khi lựa chọn tiêu thức và điều kiện tìm kiếm. Bạn nhấn vào đây để tìm kiếm
Hình 22: màn hình tìm kiếm chứng từ.
Chú ý : Giá trị ngày ở đây bạn chọn tương tự như trong chức năng báo cáo và bạn cần lưu ý là cách hiển thị ngày theo thứ tự Tháng/Ngày/Năm
Sửa chứng từ : Bạn có thể sửa chứng từ, xoá chứng từ sau khi đã tìm kiếm thấy chứng từ đó.
Trước hết bạn chọn chứng từ cần sửa trong danh sách kết quả chứng từ tìm kiếm được bằng cách Double Click chuột vào dòng chứng từ đó hoặc click vào dòng chứng từ đó rồi ấn nút chọn. Màn hình để sửa chứng từ có dạng như sau :
Hình 23: màn hình sửa chứng từ
Sau khi bạn sửa xong chứng từ này, nhấn nút Lưu để lưu lại thông tin của chứng từ đó.
Nếu bạn muốn xoá chứng từ, bạn chỉ cần nhấn vào nút Xoá CT để xoá chứng từ.
3.6.2. Sao lưu dữ liệu
Để sao lưu dữ liệu phòng khi có sự cố xảy ra, dữ liệu của bạn không bị mất bạn vào Menu [Hệ thống] chọn mục [Sao lưu dữ liệu] hoặc bạn có thể thao tác nhanh bằng cách ấn tổ hợp phím Ctrl-B . Khi đó xuất hiện một thông báo như sau :
Hình 24: thông báo có thực hiện sao lưu hay không.
Nếu bạn chọn No thì sẽ quay trở về chương trình chính. Nếu bạn chọn Yes thì một hộp thoại xuất hiện yêu cầu chọn một tệp tin dữ liệu có dạng +.mdb. Trong trường hợp này bạn chọn tệp tin có tên là database.mdb rồi ấn nút Open, một hộp thoại khác có tên [Chọn tên file cần sao lưu dữ liệu] hiện ra.
Hộp thoại này đề nghị bạn nhập vào một tên mới trong ô File Name và để chọn đường dẫn chứa tệp tin này hãy chọn ô [Look in] để chỉ đường dẫn chứa file sao lưu này. Rồi bạn chọn nút Save. Khi đó nếu thành công sẽ có một hộp thoại thông báo công việc sao lưu đã thành công. Để phục hồi lại dữ liệu đã sao lưu khi tệp database.mdb trong thư mục cài đặt bạn copy file bạn sao lưu vào thư mục cài đặt chương trình và đổi tên thành database.mdb
Chú ý: Khi chọn tên tệp để lưu trữ bạn không được chọn tên tệp cần lưu trữ là database.mdb ở trong cùng đường dẫn với tệp hệ thống của chương trình (database.mdb). Nếu vi phạm điều này thì chương trình sẽ báo lỗi.
3.6.3. Dọn dẹp số liệu
Trong quá trình sử dụng chương trình, các file tạm có thể sinh ra, các dữ liệu, index có thể chưa dược xoá hết làm cho chương trình chạy chậm. Bạn có thể sử dụng chức năng Dọn dẹp số liệu để bảo trì cơ sở dữ liệu của chương trình. Bạn chỉ cần click chuột vào nút Yes trong thông báo dưới đây để thực hiện dọn dẹp số liệu
Sau khi dọn dẹp dữ liệu xong bạn cần phải khởi động lại chương trình để chương trình có được cơ sở dữ liệu mới nhất.
3.7. Trợ giúp:
Trong quá trình sử dụng nếu gặp khó khăn về phần nào các bạn có thể sử dụng file trợ giúp của chương trình thông qua Menu [Trợ giúp] à [Trợ giúp chương trình] hoặc ấn F1 để được hướng dẫn. Màn hình trợ giúp có dạng như sau:
KẾT LUẬN
Víi ®Ò tµi: “ X©y dùng ch¬ng tr×nh qu¶n lý chi ng©n s¸ch” ®îc triÓn khai trong thêi gian thùc tËp võa qua t¹i trung t©m ph¸t triÓn phÇn mÒm vµ gi¶i ph¸p SDS, em ®· gi¶i quyÕt ®îc c¸c chøc n¨ng, nhiÖm vô chÝnh ®Æt ra nh:
Chøc n¨ng t¹o míi vµ lùa chän n¨m lµm viÖc
CËp nhËt / ®Þnh nghÜa c¸c lo¹i, kho¶n, môc, tiÓu môc ng©n s¸ch
CËp nhËt sè d (lÇn ®Çu tiªn nÕu cã)
Th«ng b¸o h¹n møc kinh phÝ (tõ c¬ quan tµi chÝnh)
CËp nhËt / t×m kiÕm c¸c chøng tõ ph¸t sinh hµng ngµy
NhËp ng©n s¸ch thùc tÕ lÜnh vÒ ®¬n vÞ (tõ kho b¹c)
Lªn b¸o c¸o (chi tiÕt hoÆc tæng hîp ho¹t ®éng chi) theo th¸ng/ quÝ / n¨m
TiÖn Ých: Sao lu c¬ së d÷ liÖu, tèi u ho¸ c¬ së d÷ liÖu.
Híng dÉn sö dông ch¬ng tr×nh.
VÒ c¬ b¶n, c¸c chøc n¨ng chÝnh cña ch¬ng tr×nh ®· ®îc thùc hiÖn. Tuy nhiªn cßn mét sè ®iÓm cÇn ph¶i c¶i tiÕn h¬n n÷a trong t¬ng lai nh: tÝnh mü thuËt, xö lý lªn b¸o c¸o theo l«.
Do thêi gian, kh¶ n¨ng vµ tr×nh ®é cßn cã nhiÒu h¹n chÕ nªn kh«ng thÓ tr¸nh khái nh÷ng thiÕu sãt, em rÊt mong nhËn ®îc sù chØ b¶o, gãp ý cña c¸c ThÇy, C« gi¸o; c¸c Anh, ChÞ ®ång nghiÖp vµ B¹n bÌ ®Ó ®Ò tµi cña em ®îc hoµn thiÖn h¬n n÷a.
Mét lÇn n÷a, em xin ch©n thµnh c¶m ¬n sù d¹y b¶o tËn t×nh cña c¸c ThÇy C« gi¸o giµnh cho chóng em, c¶m ¬n sù gióp ®ì nhiÖt t×nh cña c¸c c¸n bé t¹i trung t©m phÇn mÒm - gi¶i ph¸p SDS vµ c¶m ¬n tíi toµn thÓ gia ®×nh, b¹n bÌ.
PHỤ LỤC
(Một số đoạn mã nguồn tiêu biểu của chương trình)
Hàm đổi số ra chữ:
Function NumToText(dblValue As Double) As String
Static ones(0 To 9) As String
Static teens(0 To 9) As String
Static tens(0 To 9) As String
Static thousands(0 To 4) As String
Dim i As Integer, nPosition As Integer
Dim nDigit As Integer, bAllZeros As Integer
Dim strResult As String, strTemp As String
Dim tmpBuff As String
ones(0) = "không"
ones(1) = "một"
ones(2) = "hai"
ones(3) = "ba"
ones(4) = "bốn"
ones(5) = "năm"
ones(6) = "sáu"
ones(7) = "bảy"
ones(8) = "tám"
ones(9) = "chín"
teens(0) = "mười"
teens(1) = "mười một"
teens(2) = "mười hai"
teens(3) = "mười ba"
teens(4) = "mười bốn"
teens(5) = "mười năm"
teens(6) = "mười sáu"
teens(7) = "mười bảy"
teens(8) = "mười tám"
teens(9) = "mười chín"
tens(0) = ""
tens(1) = "mười"
tens(2) = "hai mươi"
tens(3) = "ba mươi"
tens(4) = "bốn mươi"
tens(5) = "năm mươi"
tens(6) = "sáu mươi"
tens(7) = "bảy mươi"
tens(8) = "tám mươi"
tens(9) = "chín mươi"
thousands(0) = ""
thousands(1) = "nghìn"
thousands(2) = "triệu"
thousands(3) = "tỷ"
thousands(4) = "nghìn" ' nghin ty (trillion)
'Trap errors
On Error GoTo NumToTextError
'Get fractional part
strResult = "Đồng " & IIf(dblValue - Int(dblValue) = 0, "chẵn.", Format((dblValue - Int(dblValue)) * 100, "00") & "/100")
'Convert rest to string and process each digit
strTemp = CStr(Int(dblValue))
'Iterate through string
For i = Len(strTemp) To 1 Step -1
'Get value of this digit
nDigit = Val(Mid$(strTemp, i, 1))
'Get column position
nPosition = (Len(strTemp) - i) + 1
'Action depends on 1's, 10's or 100's column
Select Case (nPosition Mod 3)
Case 1 '1's position
bAllZeros = False
If i = 1 Then
tmpBuff = ones(nDigit) & " "
ElseIf Mid$(strTemp, i - 1, 1) = "1" Then
tmpBuff = teens(nDigit) & " "
i = i - 1 'Skip tens position
ElseIf nDigit > 0 Then
tmpBuff = ones(nDigit) & " "
Else
'If next 10s & 100s columns are also
'zero, then don't show 'thousands'
bAllZeros = True
If i > 1 Then
If Mid$(strTemp, i - 1, 1) "0" Then
bAllZeros = False
End If
End If
If i > 2 Then
If Mid$(strTemp, i - 2, 1) "0" Then
bAllZeros = False
End If
End If
tmpBuff = ""
End If
If bAllZeros = False And nPosition > 1 Then
tmpBuff = tmpBuff & thousands(nPosition / 3) & " "
End If
strResult = tmpBuff & strResult
Case 2 'Tens position
If nDigit > 0 Then
strResult = tens(nDigit) & " " & strResult
End If
Case 0 'Hundreds position
If nDigit > 0 Then
strResult = ones(nDigit) & " trăm " & strResult
End If
End Select
Next i
'Convert first letter to upper case
If Len(strResult) > 0 Then
strResult = UCase$(Left$(strResult, 1)) & Mid$(strResult, 2)
End If
EndNumToText:
'Return result
NumToText = strResult
Exit Function
NumToTextError:
strResult = "#Error#"
Resume EndNumToText
End Function
Thủ tục gọi help file:
Public Declare Function HTMLHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As String) As Long
Public Sub Call_Help()
Dim hlp As Long
hlp = HTMLHelp(0, App.Path + "\help.chm", 1, 0)
End Sub
Thủ tục dọn dẹp dữ liệu:
Public Sub Compact()
On Error Resume Next
Dim Res
Res = MsgBox("Bạn phải kết thúc tất cả các công việc trước khi thực hiện công việc này !" & vbCrLf & _
"Sau khi thực hiện dọn dẹp số liệu xong, bạn phải khởi động lại chương trình", vbYesNo + vbInformation)
If Res = vbYes Then
Conn.Close
Set Conn = Nothing
Call FileCopy(App.Path & "\database.mdb", App.Path & "\database_saoluu.mdb")
Kill App.Path & "\database.mdb"
DBEngine.CompactDatabase App.Path & "\database_saoluu.mdb", App.Path & "\database.mdb", dbLangGeneral, dbEncrypt
Kill App.Path & "\database_saoluu.mdb"
Kill App.Path & "\*.tmp"
MsgBox "Đã thực hiện dọn dẹp số liệu xong, bây giờ ứng dụng sẽ bị đóng lại", vbInformation
End
End If
End Sub
Thủ tục nhận dữ liệu trả lên Form đặc trưng thông tin:
Public Sub GetTypical()
Dim rs As New ADODB.Recordset
rs.Open "ThongSoHeThong", Conn, adOpenDynamic, adLockOptimistic
With rs
G_TenDV = !ten_don_vi
G_TenKB = !ten_kb
G_SoTaiKhoan = !taikhoan
G_MasoTK = !masotk
G_UserName = !UserName
G_Password = !Password
G_TT = !thutruong
G_TenKTDV = !ketoandv
G_KTTKB = !ketoantruong
G_KTVKB = !ketoanvien
G_GiamDocKB = !giamdoc
G_ChuTaiKhoan = !chutk
End With
rs.Close
Set rs = Nothing
End Sub
Thủ tục xử lý cắt số hiệu chứng từ:
Function CatSoCT(str As String)
Dim vt As String
vt = Mid(str, 3, 1)
If vt = "0" Then
CatSoCT = Right(str, 2)
Else
CatSoCT = Right(str, 3)
End If
End Function
Mã nguồn của FormLogIn:
Option Explicit
Private Timthay As Boolean
Dim rsUser As New ADODB.Recordset
Dim Conn As ADODB.Connection
Private Sub cmdCancel_Click()
Timthay = False
' Dim TL As Integer
' TL = MsgBox("Bạn không muốn làm việc với chương trình? ", vbYesNo + vbQuestion)
' If TL = 6 Then
End
' Else
' Exit Sub
' Me.txtUser.SetFocus
' End If
End Sub
Private Sub cmdOK_Click()
Timthay = False
With rsUser
.MoveFirst
Do While Not .EOF And Not Timthay
If Trim(txtPass) = Trim(!Password) And Trim(txtUser) = Trim(!UserName) Then
Timthay = True
Else
Timthay = False
End If
.MoveNext
Loop
End With
If Timthay Then
Unload Me
FrmMain.Show
Else
MsgBox " Nhập sai tên đăng nhập hoặc mật khẩu !", vbInformation, "Cảnh báo đăng nhập QLCTNS"
Me.txtPass.Text = ""
Me.txtUser.Text = ""
Me.txtUser.SetFocus
End If
End Sub
Private Sub Command1_Click()
frmHelpLogin.Show
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Form_Load()
Set Conn = New ADODB.Connection
Conn.Open StrConn & App.Path & "\DataBase.mdb"
rsUser.Open "thongsohethong", Conn, adOpenDynamic, adLockOptimistic
End Sub
Private Sub Form_Unload(Cancel As Integer)
rsUser.Close
Set rsUser = Nothing
Conn.Close
Set Conn = Nothing
End Sub
Mã nguồn của Frm_TieuMuc:
Dim rs As ADODB.Recordset
Dim F As Integer
Dim o_TieuMuc, O_Muc, o_tenTM As String
Private Sub CboMame_Click()
txtTieuMuc.Text = CboMame.Text
txtTieuMuc.SetFocus
txtTieuMuc.SelStart = 3
End Sub
Private Sub CboMame_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdAdd_Click()
F = 1
Me.CboMame.Enabled = True
Me.txtTieuMuc.Enabled = True
Me.TxtTenTieumuc.Enabled = True
CboMame.Text = ""
txtTieuMuc.Text = ""
TxtTenTieumuc.Text = ""
CboMame.SetFocus
cmdDel.Enabled = True
cmdSave.Enabled = True
End Sub
Private Sub cmdAdd_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdDel_Click()
On Error Resume Next
Dim tb As Integer
tb = MsgBox("Bạn thực sự muốn xoá thông tin về tiểu mục" & TxtTenTieumuc.Text & " ? ", vbQuestion + vbYesNo)
If tb = 6 Then
With rs
.Delete
.MovePrevious
If .EOF Then .MoveLast
If .BOF Then .MoveFirst
End With
End If
If rs.BOF = True And rs.EOF = True Then
Me.TxtTenTieumuc.Text = ""
Me.txtTieuMuc.Text = ""
End If
Me.Refresh
Display
LoadListView
End Sub
Private Sub cmdfirst_Click()
rs.MoveFirst
Display
LoadListView
End Sub
Private Sub DisplayRecord(rs As ADODB.Recordset)
On Error Resume Next
LvwTM.ListItems.Clear
Dim Item As ListItem
Dim i As Integer
i = 1
rs.MoveFirst
Do While Not rs.EOF
With rs
Set Item = LvwTM.ListItems.Add(i, , !TieuMuc)
Item.SubItems(1) = !tentieumuc
.MoveNext
End With
i = i + 1
Loop
End Sub
Private Sub cmdDel_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub CmdFind_Click()
Dim MaMe, TieuMuc, StrSQL As String
Dim rs1 As New ADODB.Recordset
MaMe = Trim(CboMame)
TieuMuc = Trim(TxtFind)
If MaMe = "" And TieuMuc = "" Then
MsgBox "Bạn phải chọn tiêu thức tìm kiếm. Chọn mã mẹ nếu bạn muốn tìm kiếm theo mã mẹ, Gõ vào tiểu mục nếu bạn muốn tìm kiếm theo tiểu mục"
Exit Sub
CboMame.SetFocus
End If
If MaMe "" And TieuMuc = "" Then
StrSQL = "Select tieumuc, TenTieuMuc from tieumuc where tieumuc.Muc='" & MaMe & "';"
ElseIf MaMe = "" And TieuMuc "" Then
StrSQL = "Select tieumuc, TenTieuMuc from tieumuc where tieumuc='" & TieuMuc & "';"
ElseIf MaMe "" And TieuMuc "" Then
StrSQL = "Select tieumuc, TenTieuMuc from tieumuc where tieuMuc='" & TieuMuc & "';"
End If
rs1.Open StrSQL, Conn, adOpenForwardOnly, adLockReadOnly
DisplayRecord rs1
rs1.Close
Set rs1 = Nothing
End Sub
Private Sub CmdFind_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdFist_Click()
rs.MoveFirst
Display
LoadListView
End Sub
Private Sub cmdFist_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdLast_Click()
rs.MoveLast
Display
LoadListView
End Sub
Private Sub CmdLast_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Cmdmody_Click()
F = 2
Me.CboMame.Enabled = True
Me.txtTieuMuc.Enabled = True
Me.TxtTenTieumuc.Enabled = True
txtTieuMuc.SetFocus
cmdDel.Enabled = True
cmdSave.Enabled = True
o_TieuMuc = LvwTM.SelectedItem.Text
O_Muc = Left(LvwTM.SelectedItem.Text, 3)
o_tenTM = LvwTM.SelectedItem.SubItems(1)
End Sub
Private Sub Cmdmody_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdnext_Click()
With rs
.MoveNext
If .EOF Then
MsgBox "Bản ghi cuối cùng, không thể di chuyển tiếp được", vbCritical
.MoveLast
End If
End With
Display
LoadListView
End Sub
Private Sub CmdNext_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub cmdprev_Click()
With rs
.MovePrevious
If .BOF Then
MsgBox "Bản ghi đầu tiên, không thể di chuyển tiếp được", vbCritical
.MoveFirst
End If
End With
Display
LoadListView
End Sub
Private Sub cmdPrev_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub CmdSave_Click()
On Error GoTo BL
If CboMame.Text = "" Then
MsgBox "Chưa cho biết mã mẹ của tiểu mục ", vbCritical
CboMame.SetFocus
Exit Sub
End If
If txtTieuMuc.Text = "" Then
MsgBox "Chưa nhập mã tiểu mục của Mục lục Ngân sách", vbCritical
txtTieuMuc.SetFocus
Exit Sub
End If
If TxtTenTieumuc.Text = "" Then
MsgBox "Chưa nhập tên của tiểu mục ", vbCritical
TxtTenTieumuc.SetFocus
Exit Sub
End If
On Error GoTo ErrHdl
If F = 1 Then
With rs
.AddNew
!TieuMuc = Trim(txtTieuMuc.Text)
!muc = Trim(CboMame.Text)
!tentieumuc = Trim(TxtTenTieumuc.Text)
.Update
End With
ElseIf F = 2 Then
Dim StrSQL As String
Dim cmd As New ADODB.Command
StrSQL = "UPDATE TieuMuc SET tieuMuc='" & txtTieuMuc & "',TentieuMuc='" & TxtTenTieumuc & "' WHERE tieumuc='" & o_TieuMuc & "' AND tentieumuc='" & o_tenTM & "';"
cmd.ActiveConnection = Conn
cmd.CommandText = StrSQL
cmd.Execute
Set cmd = Nothing
End If
cmdSave.Enabled = False
Me.CboMame.Enabled = False
Me.txtTieuMuc.Enabled = False
Me.TxtTenTieumuc.Enabled = False
Display
LoadListView
BL:
ErrHdl:
If Err.Number = -2147217887 Then
MsgBox "Mục lục đã có, nhập lại !"
Me.txtTieuMuc.SetFocus
Exit Sub
End If
End Sub
Private Sub cmdSave_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Form_Activate()
F = 0
End Sub
Private Sub Form_Load()
Set rs = New ADODB.Recordset
rs.Open "tieumuc", Conn, adOpenDynamic, adLockOptimistic, adCmdTable
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 6
Display
LoadCboMame
LoadListView
cmdSave.Enabled = False
Me.CboMame.Enabled = False
Me.txtTieuMuc.Enabled = False
Me.TxtTenTieumuc.Enabled = False
End Sub
Private Sub Display()
On Error Resume Next
With rs
CboMame.Text = !muc
txtTieuMuc.Text = !TieuMuc
TxtTenTieumuc.Text = !tentieumuc
End With
Me.CboMame.Enabled = False
Me.txtTieuMuc.Enabled = False
Me.TxtTenTieumuc.Enabled = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
rs.Close
Set rs = Nothing
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub LoadListView()
On Error Resume Next
LvwTM.ListItems.Clear
Dim rsLvw As New ADODB.Recordset
Dim i As Integer
Dim Item As Variant
rsLvw.Open "tieumuc", Conn, adOpenForwardOnly, adLockReadOnly
i = 1
rsLvw.MoveFirst
Do While Not rsLvw.EOF
Set Item = LvwTM.ListItems.Add(i, , rsLvw!TieuMuc)
Item.SubItems(1) = rsLvw!tentieumuc
rsLvw.MoveNext
i = i + 1
Loop
rsLvw.Close
Set rsLvw = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
FrmMain.MnuCap2.Enabled = True
End Sub
Private Sub LvwTM_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
If KeyCode = 38 Or KeyCode = 40 Then
CboMame.Text = Left(LvwTM.SelectedItem.Text, 3)
txtTieuMuc = LvwTM.SelectedItem.Text
TxtTenTieumuc = LvwTM.SelectedItem.SubItems(1)
End If
Me.Refresh
End Sub
Private Sub LvwTM_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Or KeyCode = 40 Then
CboMame.Text = Left(LvwTM.SelectedItem.Text, 3)
txtTieuMuc = LvwTM.SelectedItem.Text
TxtTenTieumuc = LvwTM.SelectedItem.SubItems(1)
End If
Me.Refresh
End Sub
Private Sub LvwTM_Click()
F = 2
Dim Item As Variant
Dim i As Integer
For i = 1 To Me.LvwTM.ListItems.count
If LvwTM.ListItems(i).Selected = True Then
Item = LvwTM.ListItems(i).index
With Me
Me.CboMame = Left(LvwTM.ListItems(Item), 3)
Me.txtTieuMuc = LvwTM.ListItems(Item)
Me.TxtTenTieumuc = LvwTM.ListItems(Item).SubItems(1)
o_TieuMuc = LvwTM.SelectedItem.Text
O_Muc = Left(LvwTM.SelectedItem.Text, 3)
o_tenTM = LvwTM.SelectedItem.SubItems(1)
txtTieuMuc.Enabled = True
TxtTenTieumuc.Enabled = True
txtTieuMuc.SetFocus
cmdDel.Enabled = True
cmdSave.Enabled = True
End With
End If
Next
End Sub
Private Sub LoadCboMame()
Dim rsTemp As New ADODB.Recordset
rsTemp.Open "select * from muc order by Muc", Conn, adOpenForwardOnly, adLockReadOnly
With rsTemp
.MoveFirst
Do While Not .EOF
Me.CboMame.AddItem !muc
.MoveNext
Loop
.Close
End With
Set rsTemp = Nothing
End Sub
Private Sub TxtFind_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub TxtFind_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = vbBack Then Exit Sub
If Not IsNumeric(Chr(KeyAscii)) Then
KeyAscii = 0
End If
End Sub
Private Sub TxtTenTieumuc_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub txtTieuMuc_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub txtTieuMuc_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = vbBack Then Exit Sub
If Not IsNumeric(Chr(KeyAscii)) Then
KeyAscii = 0
End If
End Sub
Mã nguồn của báo cáo tổng hợp chi:
Option Explicit
Dim VarReport4 As New CrRptBaoCaoChiTongHop
Dim cmd As ADODB.Command
Dim cmd1 As Command
Dim cmd2 As Command
Dim cmd3 As Command
Dim cmd4 As Command
Dim cmd5 As Command
Dim cmdbangtonghop As Command
Dim cmdADO As ADODB.Command
'Dim conn As New ADODB.Connection
'Dim VarThang11 As String
Dim VarThang22 As String
Dim VarYear As String
Private Sub CRViewer1_CloseButtonClicked(UseDefault As Boolean)
End Sub
Private Sub Form_Load()
Dim StrSQL As String
'SLieu cu:
'VarThang2 = G_ThangBC ' "3"
'VarThang1 = "( Cint(varthang2)-1 )"
'VarYear = G_CurrentYear ' "2003"
' Du lieu dung de kiem tra truy van:
VarThang22 = G_ThangBC ' "3"
'VarThang11 = "( Cint(varthang22)-1 )"
VarYear = G_CurrentYear ' "2003"
Dim VarThang2 As Integer
Dim VarThang1 As Integer
VarThang2 = CInt(VarThang22)
VarThang1 = VarThang2 - 1 ' CInt(VarThang11)
' Tao mot Instance for Command Object:
' SQL Statements defined following:
'************************ SQL Bang Tam LKM (Bang nay se duoc lay lam goc)
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = Conn
Dim CreateLKM As String
Dim InsertLKM As String
CreateLKM = " CREATE TABLE LKM (Ma Text(7)) "
InsertLKM = " INSERT INTO LKM ( Ma) " & _
" SELECT loai.loai & khoan.khoan & muc.muc " & _
" From loai, khoan, muc " & _
" ORDER BY loai.loai & khoan.khoan & muc.muc;"
'Dim DropLKM As String
'DropLKM = " DROP TABLE LKM"
' **** START:
'**** SQL Ton Dau Ki: --> CO BIEN DINH KEM: chu y : (VarThang-1) *******
‘*********************************************************************
' TonDauKi thang n = LuyKeNhap thang (n-1 ) - LuyKeXuat thang(n-1)
' Xu ly Luy Ke Xuat toi Thang N-1:
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = Conn
Dim CreateLuyKeXuat2 As String
Dim InsertLuyKeXuat2 As String
CreateLuyKeXuat2 = " CREATE TABLE LuyKeXuat2 (Ma Text(7) , SoTien Double)"
cmd1.CommandText = CreateLuyKeXuat2
cmd1.Execute
cmd1.Cancel
InsertLuyKeXuat2 = " INSERT INTO LuyKeXuat2 ( Ma, SoTien) " & _
" SELECT [chungtuchichitiet].[loai] & [chungtuchichitiet].[khoan] & [chungtuchichitiet].[muc], sum([chungtuchichitiet].[sotien]) " & _
" FROM Chungtuchi INNER JOIN ChungTuChiChiTiet ON [ChungTuChi].[SoCT]=[ChungTuChiChiTiet].[SoCT] " & _
" WHERE ( cint(Month([chungtuchi].[Ngayct]))<= " & VarThang1 & ") And (Year([chungtuchi].[NgayCT])='" & VarYear & "') " & _
" GROUP BY [chungtuchichitiet].[loai] & [chungtuchichitiet].[khoan] & [chungtuchichitiet].[muc]; "
cmd1.CommandText = InsertLuyKeXuat2
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " select * From LuyKeXuat2 Order by ma"
cmd1.Execute
cmd1.Cancel
'Dim DropLuyKeXuat2 As String
'DropLuyKeXuat2 = " DROP TABLE LuyKeXuat2 "
' Xu ly Luy Ke Nhap Toi Thang N-1:
Dim CreateLuyKeNhapChuaCoSoDu2 As String
Dim InsertLuyKeNhapChuaCoSoDu2 As String
CreateLuyKeNhapChuaCoSoDu2 = " CREATE TABLE LuyKeNhapChuaCoSoDu2 ( Ma Text(7), SoTien Double)"
cmd1.CommandText = CreateLuyKeNhapChuaCoSoDu2
cmd1.Execute
cmd1.Cancel
InsertLuyKeNhapChuaCoSoDu2 = " INSERT INTO LuyKeNhapChuaCoSoDu2 ( Ma, SoTien)" & _
" SELECT A.loai & [khoan] & [muc] , sum(A.sotien) " & _
" FROM NhapNS AS A " & _
" Where ( cint ( Month(A.ngaythang)) <= " & VarThang1 & " ) And (Year(A.ngaythang) = '" & VarYear & "') " & _
" GROUP BY A.loai & [khoan] & [muc] " & _
" ORDER BY A.loai & [khoan] & [muc]; "
cmd1.CommandText = InsertLuyKeNhapChuaCoSoDu2
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " select * from luykenhapchuacosodu2 "
cmd1.Execute
cmd1.Cancel
'Dim DropLuyKeNhapChuaCoSoDu2 As String
'DropLuyKeNhapChuaCoSoDu2 = " DROP TABLE LuyKeNhapChuaCoSoDu2 "
'************ VUA SUA XONG LOI CHO NAY:
' Tao bang SoDu 2:
Dim CreateSoDu2 As String
CreateSoDu2 = " CREATE TABLE SoDu2 ( Nam Text(4), Loai Text(2), Khoan Text(2), Muc Text(3), TonDau Double)"
cmd1.CommandText = CreateSoDu2
cmd1.Execute
cmd1.CommandText = " INSERT INTO SoDu2 (Nam,Loai,Khoan,Muc,TonDau) " & _
" SELECT nam,loai,khoan,muc,tondau FROM SODU WHERE Nam= '" & VarYear & "'"
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " SELECT * FROM SoDu2 Order By Loai,Khoan,muc"
cmd1.Execute
cmd1.Cancel
'**************** KET THUC CHO VUA SUA !
'Su dung Query QryLKM:
'Create LuyKeNhap . LuyKeNhap co cau truc: ' Ma (text), TonDau (Double), NhapTrongNam( Double)
Dim CreateLuyKeNhap2 As String
Dim InsertLuyKeNhap2 As String
CreateLuyKeNhap2 = " CREATE TABLE LuyKeNhap2 ( Ma Text(7), TonDauNam Double , NhapTrongNam Double)"
cmd1.CommandText = CreateLuyKeNhap2
cmd1.Execute
cmd1.Cancel
InsertLuyKeNhap2 = " INSERT INTO LuyKeNhap2 (Ma, TonDauNam,NhapTrongNam) " & _
" SELECT QRYLKM.MA, IIF( ISNULL(A.TONDAU),0,A.TONDAU), IIF(ISNULL(B.SOTIEN),0,B.SOTIEN) " & _
" FROM SODU2 AS A RIGHT JOIN ( QryLKM LEFT JOIN LUYKENHAPCHUACOSODU2 AS B ON QRYLKM.MA = B.MA) ON QRYLKM.MA=A.LOAI & KHOAN & MUC " & _
" ORDER BY QRYLKM.MA"
'DANG SUA: '" WHERE A.NAM='" & VarYear & "' " &
cmd1.CommandText = InsertLuyKeNhap2
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " SELECT * FROM LuyKeNhap2 ORDER BY Ma "
cmd1.Execute
cmd1.Cancel
'Dim DropLuyKeNhap2 As String
'DropLuyKeNhap2 = " DROP TABLE LuyKeNhap2 "
' LuyKeNhapOK2: includes 2 fields : Ma & SoTien
Dim CreateLuyKeNhapOK2 As String
Dim InsertLuyKeNhapOK2 As String
CreateLuyKeNhapOK2 = " CREATE TABLE LuyKeNhapOK2 (Ma Text(7), SoTien Double)"
cmd1.CommandText = CreateLuyKeNhapOK2
cmd1.Execute
cmd1.Cancel
InsertLuyKeNhapOK2 = " INSERT INTO LuyKeNhapOK2 ( Ma, SoTien)" & _
" SELECT Ma, TonDauNam + NhapTrongNam FROM LuyKeNhap2 "
cmd1.CommandText = InsertLuyKeNhapOK2
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " Select * FROM luykenhapok2"
cmd1.Execute
cmd1.Cancel
'Dim DropLuyKeNhapOK2 As String
'DropLuyKeNhapOK2 = "DROP TABLE LuyKeNhapOK2 "
' TonDauKi
Dim CreateTonDauKi As String
Dim InsertTonDauKi As String
CreateTonDauKi = " CREATE TABLE TonDauKi ( Ma Text(7), SoTien Double)"
cmd1.CommandText = CreateTonDauKi
cmd1.Execute
cmd1.Cancel
InsertTonDauKi = " INSERT INTO TonDauKi (Ma, SoTien) " & _
" SELECT A.Ma , A.SoTien - IIF ( ISNULL ( B.SoTien),0,B.SoTien)" & _
" From LuyKeNhapOK2 as A Left Join LuyKeXuat2 as B ON A.Ma = B.Ma"
cmd1.CommandText = InsertTonDauKi
cmd1.Execute
cmd1.Cancel
cmd1.CommandText = " select * FROM TonDauKi"
cmd1.Execute
cmd1.Cancel
' Dim DropTonDauKi As String
'DropTonDauKi = " DROP TABLE TonDauKi"
' SELECT a.ma, a.expr1001 - IIf(IsNull(b.expr1001),0,b.expr1001)
'FROM baocao2_luykenhap_better AS a LEFT JOIN baocao2_luykexuat AS b ON a.ma=b.expr1000;
'************************ SQL Nhap Trong Ki: -->CO BIEN DINH KEM ************************************************************************
Set cmd2 = New Command
Set cmd2.ActiveConnection = Conn
Dim CreateNhapTrongKy As String
Dim InsertNhapTrongKy As String
CreateNhapTrongKy = " CREATE TABLE NhapTrongKy ( Ma Text(7), SoTien Double) "
cmd2.CommandText = CreateNhapTrongKy
cmd2.Execute
cmd2.Cancel
InsertNhapTrongKy = " INSERT INTO NhapTrongKy ( Ma,SoTien) " & _
" SELECT [loai] & [khoan] & [muc], sum([sotien]) FROM NhapNS " & _
" WHERE ( cint(Month(ngaythang))=" & VarThang2 & " ) And (Year(ngaythang)='" & VarYear & "') " & _
" GROUP BY [loai] & [khoan] & [muc];"
cmd2.CommandText = InsertNhapTrongKy
cmd2.Execute
cmd2.Cancel
cmd2.CommandText = " select * FROM NhapTrongKy"
cmd2.Execute
cmd2.Cancel
'Dim InsertNhapTrongKy As String
'DropNhapTrongKy = " DROP TABLE NhapTrongKy "
'************************ SQL Luy Ke Nhap: --> CO BIEN DINH KEM
Set cmd4 = New ADODB.Command
Set cmd4.ActiveConnection = Conn
Dim CreateLuyKeNhapChuaCoSoDu As String
Dim InsertLuyKeNhapChuaCoSoDu As String
CreateLuyKeNhapChuaCoSoDu = " CREATE TABLE LuyKeNhapChuaCoSoDu ( Ma Text(7), SoTien Double)"
cmd4.CommandText = CreateLuyKeNhapChuaCoSoDu
cmd4.Execute
cmd4.Cancel
InsertLuyKeNhapChuaCoSoDu = " INSERT INTO LuyKeNhapChuaCoSoDu ( Ma, SoTien)" & _
" SELECT A.loai & [khoan] & [muc] , sum(A.sotien) " & _
" FROM NhapNS AS A " & _
" Where (cint(Month(A.ngaythang)) <= " & VarThang2 & " ) And (Year(A.ngaythang) = '" & VarYear & "') " & _
" GROUP BY A.loai & [khoan] & [muc] " & _
" ORDER BY A.loai & [khoan] & [muc]; "
cmd4.CommandText = InsertLuyKeNhapChuaCoSoDu
cmd4.Execute
cmd4.Cancel
cmd4.CommandText = " select * FROM LuyKeNhapChuaCoSoDu "
cmd4.Execute
cmd4.Cancel
'Dim DropLuyKeNhapChuaCoSoDu As String
'DropLuyKeNhapChuaCoSoDu = " DROP TABLE LuyKeNhapChuaCoSoDu "
'Dang sua cho Luy Ke Nhap ====> Tao bang so du 4:
cmd4.CommandText = " CREATE TABLE SoDu4 (Nam Text(4), Loai Text(2), Khoan Text(2), Muc Text(3), TonDau Double)"
cmd4.Execute
cmd4.Cancel
cmd4.CommandText = " Insert into SoDu4 (Nam, loai, khoan, muc, tondau) " & _
" SELECT Nam,loai,khoan,muc,tondau FROM SoDu WHERE Nam = '" & VarYear & "' "
cmd4.Execute
cmd4.Cancel
cmd4.CommandText = " Select * FROM SoDu4 ORDER BY Loai, khoan,muc"
cmd4.Execute
cmd4.Cancel
'' Ket thuc sua luy ke nhap
'Su dung Query QryLKM:
'Create LuyKeNhap . LuyKeNhap co cau truc: ' Ma (text), TonDau (Double), NhapTrongNam( Double)
Dim CreateLuyKeNhap As String
Dim InsertLuyKeNhap As String
CreateLuyKeNhap = " CREATE TABLE LuyKeNhap ( Ma Text(7), TonDauNam Double , NhapTrongNam Double)"
cmd4.CommandText = CreateLuyKeNhap
cmd4.Execute
cmd4.Cancel
InsertLuyKeNhap = " INSERT INTO LuyKeNhap (Ma, TonDauNam,NhapTrongNam) " & _
" SELECT QRYLKM.MA, IIF( ISNULL(A.TONDAU),0,A.TONDAU), IIF(ISNULL(B.SOTIEN),0,B.SOTIEN) " & _
" FROM SODU4 AS A RIGHT JOIN ( QryLKM LEFT JOIN LUYKENHAPCHUACOSODU AS B ON QRYLKM.MA = B.MA) ON QRYLKM.MA=A.LOAI & KHOAN & MUC " & _
" ORDER BY QRYLKM.MA"
'DANG SUA: ==> " WHERE A.NAM='" & VarYear & "' " &
cmd4.CommandText = InsertLuyKeNhap
cmd4.Execute
cmd4.Cancel
cmd4.CommandText = "select * FROM LuyKeNhap"
cmd4.Execute
cmd4.Cancel
'Dim DropLuyKeNhap As String
'DropLuyKeNhap = " DROP TABLE LuyKeNhap "
' LuyKeNhapOK: includes 2 fields : Ma & SoTien
Dim CreateLuyKeNhapOK As String
Dim InsertLuyKeNhapOK As String
CreateLuyKeNhapOK = " CREATE TABLE LuyKeNhapOK (Ma Text(7), SoTien Double)"
cmd4.CommandText = CreateLuyKeNhapOK
cmd4.Execute
cmd4.Cancel
InsertLuyKeNhapOK = " INSERT INTO LuyKeNhapOK ( Ma, SoTien)" & _
" SELECT Ma, TonDauNam + NhapTrongNam FROM LuyKeNhap "
cmd4.CommandText = InsertLuyKeNhapOK
cmd4.Execute
cmd4.Cancel
cmd4.CommandText = " select * FROM LuyKeNhapOK"
cmd4.Execute
cmd4.Cancel
'Dim DropLuyKeNhapOK As String
'DropLuyKeNhapOK = "DROP TABLE LuyKeNhapOK "
'************************ SQL Xuat Trong Ky --> CO BIEN DINH KEM
Set cmd3 = New Command
Set cmd3.ActiveConnection = Conn
Dim CreateXuatTrongKy As String
Dim InsertXuatTrongKy As String
CreateXuatTrongKy = " CREATE TABLE XuatTrongKy ( Ma Text(7), SoTien Double)"
cmd3.CommandText = CreateXuatTrongKy
cmd3.Execute
cmd3.Cancel
InsertXuatTrongKy = " INSERT INTO XuatTrongKy ( Ma, SoTien) " & _
" SELECT chungtuchichitiet.loai & chungtuchichitiet.khoan & chungtuchichitiet.muc , sum( chungtuchichitiet.sotien) " & _
" FROM Chungtuchi INNER JOIN ChungTuChiChiTiet ON ChungTuChi.SoCT = ChungTuChiChiTiet.SoCT " & _
" WHERE (cint(Month(chungtuchi.Ngayct))= " & VarThang2 & " ) AND (Year(chungtuchi.NgayCT)='" & VarYear & "') " & _
" GROUP BY chungtuchichitiet.loai & chungtuchichitiet.khoan & chungtuchichitiet.muc; "
cmd3.CommandText = InsertXuatTrongKy
cmd3.Execute
cmd3.Cancel
cmd3.CommandText = " SELECT * FROM XuatTrongKy "
cmd3.Execute
cmd3.Cancel
'Dim DropXuatTrongKy As String
'DropXuatTrongKy = " DROP TABLE XuatTrongKy "
'************************ SQL Luy Ke Xuat : --> CO BIEN DINH KEM
Set cmd5 = New ADODB.Command
Set cmd5.ActiveConnection = Conn
Dim CreateLuyKeXuat As String
Dim InsertLuyKeXuat As String
CreateLuyKeXuat = " CREATE TABLE LuyKeXuat (Ma Text(7) , SoTien Double)"
cmd5.CommandText = CreateLuyKeXuat
cmd5.Execute
cmd5.Cancel
InsertLuyKeXuat = " INSERT INTO LuyKeXuat ( Ma, SoTien) " & _
" SELECT [chungtuchichitiet].[loai] & [chungtuchichitiet].[khoan] & [chungtuchichitiet].[muc], sum([chungtuchichitiet].[sotien]) " & _
" FROM Chungtuchi INNER JOIN ChungTuChiChiTiet ON [ChungTuChi].[SoCT]=[ChungTuChiChiTiet].[SoCT] " & _
" WHERE (cint(Month([chungtuchi].[Ngayct]))<=" & VarThang2 & ") And (Year([chungtuchi].[NgayCT])='" & VarYear & "') " & _
" GROUP BY [chungtuchichitiet].[loai] & [chungtuchichitiet].[khoan] & [chungtuchichitiet].[muc]; "
cmd5.CommandText = InsertLuyKeXuat
cmd5.Execute
cmd5.Cancel
cmd5.CommandText = " select * FROM LuyKeXuat "
cmd5.Execute
'************************** Bang Tong Hop : ******************************
Set cmdbangtonghop = New ADODB.Command
Set cmdbangtonghop.ActiveConnection = Conn
Dim CreateBangTongHop As String
CreateBangTongHop = " CREATE TABLE BangTongHop ( Ma Text(7),TonDauKi Double, NhapTrongKy Double,LuyKeNhap Double,XuatTrongKi Double,LuyKeXuat Double )"
cmdbangtonghop.CommandText = CreateBangTongHop
cmdbangtonghop.Execute
cmdbangtonghop.Cancel
Dim InsertBangTongHop As String
'InsertBangTongHop = " Insert INTO BangTongHop(Ma,TonDauKi,NhapTrongKy,LuyKeNhap,XuatTrongKi,LuyKeXuat ) " & _
' " SELECT qryLKM.Ma as Ma, IIF ( ISNULL(TonDauKi.SoTien),0,TonDauKi.SoTien) as TonDauKi,IIF( ISNull (NhapTrongKy.SoTien), 0, NhapTrongKy.SoTien) as NhapTrongKy, LuyKeNhap.TonDauNam + LuyKeNhap.NhapTrongNam as LuyKeNhap,IIF ( ISNULL(XuatTrongKy.SoTien),0,XuatTrongKy.SoTien) as XuatTrongKi,IIF ( ISNULL (LuyKeXuat.SoTien),0,LuyKeXuat.SoTien) as LuyKeXuat " & _
' " From LuyKeXuat Right Join (XuatTrongKy Right Join (LuyKeNhap Right Join (NhapTrongKy Right Join ( QryLKM Left Join TonDauKi ON QryLKM.Ma =TonDauKi.Ma ) " & _
'"ON NhapTrongKy.Ma = QryLKM.Ma) ON LuyKeNhap.Ma = QryLKM.Ma) ON XuatTrongKy.Ma = QryLKM.Ma) ON LuyKeXuat.Ma = QryLKM.Ma " & _
' " ORDER BY QryLKM.Ma"
InsertBangTongHop = " Insert INTO BangTongHop(Ma,TonDauKi,NhapTrongKy,LuyKeNhap,XuatTrongKi,LuyKeXuat ) " & _
" SELECT qryLKM.Ma as Ma, IIF ( ISNULL(TonDauKi.SoTien),0,TonDauKi.SoTien) as TonDauKi,IIF( ISNull (NhapTrongKy.SoTien), 0, NhapTrongKy.SoTien) as NhapTrongKy, IIF ( ISNULL (LuyKeNhapOK.SoTien) , 0 ,LuyKeNhapOK.SoTien ) as LuyKeNhap,IIF ( ISNULL(XuatTrongKy.SoTien),0,XuatTrongKy.SoTien) as XuatTrongKi,IIF ( ISNULL (LuyKeXuat.SoTien),0,LuyKeXuat.SoTien) as LuyKeXuat " & _
" From LuyKeXuat Right Join (XuatTrongKy Right Join (LuyKeNhapok Right Join (NhapTrongKy Right Join ( QryLKM Left Join TonDauKi ON QryLKM.Ma =TonDauKi.Ma ) " & _
" ON NhapTrongKy.Ma = QryLKM.Ma) ON LuyKeNhapok.Ma = QryLKM.Ma) ON XuatTrongKy.Ma = QryLKM.Ma) ON LuyKeXuat.Ma = QryLKM.Ma " & _
" ORDER BY QryLKM.Ma"
cmdbangtonghop.CommandText = InsertBangTongHop
cmdbangtonghop.Execute
cmdbangtonghop.Cancel
cmdbangtonghop.CommandText = " select * from bangtonghop order by Ma"
cmdbangtonghop.Execute
'****** Ket Noi Tao Nguon cho Report Bao Cao Chi Tong Hop Trong Thang: ********
‘***********************************************************************
Set cmdADO = New ADODB.Command
Set cmdADO.ActiveConnection = Conn
StrSQL = " SELECT * " & _
" FROM (SELECT left(ma,4) as Ma1,sum(tondauki) as TonDauKi1 ,sum(nhaptrongky) as NhapTrongKy1, sum(luykenhap) as LuyKeNhap1, sum(xuattrongki) as XuatTrongKi1, sum(luykexuat) as LuyKeXuat1 " & _
" From BangTongHop " & _
" Group By left(ma,4) ) " & _
" WHERE not ( LuyKeXuat1 =0 AND TonDauKi1 =0 AND NhapTrongKy1=0 AND LuyKeNhap1=0 AND XuatTrongKi1=0 ); "
'" WHERE not ( LuyKeXuat1 =0 AND TonDauKi1 =0 AND NhapTrongKy1=0 AND LuyKeNhap1=0 AND XuatTrongKi1=0 ) "
cmdADO.CommandText = StrSQL
cmdADO.CommandType = adCmdText
On Error Resume Next
VarReport4.Database.AddADOCommand Conn, cmdADO
'On Error Resume Next
With VarReport4
.UnbForLoai.SetUnboundFieldSource "Left({ado.Ma1},2)"
.UnbForKhoan.SetUnboundFieldSource "Right({ado.Ma1},2)"
'.UnbForMuc.SetUnboundFieldSource "Right({ado.Ma1},3)"
.UnbForTonDauKy.SetUnboundFieldSource "{ado.TonDauKi1}"
.UnbForNhapTrongKyNay.SetUnboundFieldSource "{ado.NhapTrongKy1}"
.UnbForLuyKeNhap.SetUnboundFieldSource "{ado.LuyKeNhap1}"
.UnbForXuatTrongKy.SetUnboundFieldSource "{ado.XuatTrongKi1}"
.UnbForLuyKeXuat.SetUnboundFieldSource "{ado.LuyKeXuat1}"
.txtTieuDeThang.SetText VarThang2
.txtTieuDeNam.SetText G_CurrentYear
If G_NgayInBC "" Then
.txtNgay.SetText Day(CDate(G_NgayInBC))
.txtThang.SetText Month(CDate(G_NgayInBC))
.txtNam.SetText Year(CDate(G_NgayInBC))
Else
.txtNgay.SetText " "
.txtThang.SetText " "
.txtNam.SetText " "
End If
.txtKeToan.SetText G_TenKTDV
.txtChuTaiKhoan.SetText G_ChuTaiKhoan
.PaperSize = crPaperA4
End With
Screen.MousePointer = vbHourglass
With CRViewer1
.ReportSource = VarReport4
.ViewReport
.Zoom 100
.EnableGroupTree = False
.EnableRefreshButton = True
End With
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim DropLuyKeXuat2 As String
DropLuyKeXuat2 = " DROP TABLE LuyKeXuat2 "
cmd.CommandText = DropLuyKeXuat2
cmd.Execute
cmd.Cancel
cmd.CommandText = "DROP TABLE SoDu2"
cmd.Execute
cmd.CommandText = " DROP TABLE SoDu4"
cmd.Execute
Dim DropLuyKeNhapChuaCoSoDu2 As String
DropLuyKeNhapChuaCoSoDu2 = " DROP TABLE LuyKeNhapChuaCoSoDu2 "
cmd1.CommandText = DropLuyKeNhapChuaCoSoDu2
cmd1.Execute
Dim DropLuyKeNhap2 As String
DropLuyKeNhap2 = " DROP TABLE LuyKeNhap2 "
cmd1.CommandText = DropLuyKeNhap2
cmd1.Execute
Dim DropLuyKeNhapOK2 As String
DropLuyKeNhapOK2 = "DROP TABLE LuyKeNhapOK2 "
cmd2.CommandText = DropLuyKeNhapOK2
cmd2.Execute
Dim DropTonDauKi As String
DropTonDauKi = " DROP TABLE TonDauKi"
cmd2.CommandText = DropTonDauKi
cmd2.Execute
'Dim DropNhapTrongKy As String
'DropNhapTrongKy = " DROP TABLE NhapTrongKy "
'cmd2.CommandText = DropNhapTrongKy
Dim DropLuyKeNhapChuaCoSoDu As String
DropLuyKeNhapChuaCoSoDu = " DROP TABLE LuyKeNhapChuaCoSoDu "
cmd2.CommandText = DropLuyKeNhapChuaCoSoDu
cmd2.Execute
cmd2.Cancel
Dim DropLuyKeNhap As String
DropLuyKeNhap = " DROP TABLE LuyKeNhap "
cmd3.CommandText = DropLuyKeNhap
cmd3.Execute
Dim DropLuyKeNhapOK As String
DropLuyKeNhapOK = "DROP TABLE LuyKeNhapOK "
cmd3.CommandText = DropLuyKeNhapOK
cmd3.Execute
Dim DropXuatTrongKy As String
DropXuatTrongKy = " DROP TABLE XuatTrongKy "
cmd3.CommandText = DropXuatTrongKy
cmd3.Execute
Dim DropLuyKeXuat As String
DropLuyKeXuat = " DROP TABLE LuyKeXuat "
cmd4.CommandText = DropLuyKeXuat
cmd4.Execute
cmd4.Cancel
'Dim DropLuyKeNhapChuaCoSoDu As String
'DropLuyKeNhapChuaCoSoDu = " DROP TABLE LuyKeNhapChuaCoSoDu"
'cmd5.CommandText = DropLuyKeNhapChuaCoSoDu
'cmd5.Execute
Dim DropNhapTrongKy As String
DropNhapTrongKy = " DROP TABLE NhapTrongKy "
cmd5.CommandText = DropNhapTrongKy
cmd5.Execute
cmdbangtonghop.CommandText = "DROP TABLE BangTongHop "
cmdbangtonghop.Execute
Set cmd = Nothing
Set cmd1 = Nothing
Set cmd2 = Nothing
Set cmd3 = Nothing
Set cmd4 = Nothing
Set cmd5 = Nothing
Set cmdbangtonghop = Nothing
Set cmdADO = Nothing
Set VarReport4 = Nothing
End Sub
Private Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End Sub
Hết
Các file đính kèm theo tài liệu này:
- 3492.doc