[Tạo CSDL quan hệ trên Excel; Fần 2] Bài 1: CSDL để quản lý nhập/xuất tờ tiền

Liên hệ QC

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia
8/6/06
Bài viết
14,316
Được thích
22,353
Nghề nghiệp
Nuôi ba ba & trùn quế
Loạt bài này là sự tiếp nối của loạt bài fần 1. (Được đăng ở đây:
http://www.giaiphapexcel.com/dienda...o-ra-số-hóa-đơn-theo-ngày.130062/#post-819061)

Xuất xứ vấn đề: Ở 1 cơ quan (CQ) hoạt động sản xuất kinh doanh nào cũng cần quản lí lượng tiền mặt ra vô CQ mình hàng ngày
Để làm việc này, người ta có nhiều cách;
Sau đây xin được giới thiệu 1 cách: Đó là xây dựng CSDL quan hệ (1<-> Nhiều)
Cụ thể CSDL gồm 2 bảng dữ liệu; Fần chung & fần chi tiết

Fần chung là bảng dữ liệu gồm các trường sau đây:
[STT], [Ngày], [Mã fiếu], [Mã QH], [Mã KH], [Ghi chú]
Trong đó [STT] để ghi nhận sự fát sinh tăng dần theo thời gian
[Ngày] là hiển nhiên cần ghi nhận lại lúc giao dịch (GD)
[Mã fiếu]: Gồm 7 kí tự ABCX123;
Trong đó A là kí tự chỉ năm; B:= Chỉ tháng; & C chỉ ngày GD
X là fân loại thu vô hay chi ra (T/C)
123 là số thứ tự của loại fiếu trong ngày; Ví dụ G3DT000 là số của fiếu thu đầu tiên của năm 2017, tháng 3 & ngày 13
(Ngày 10 của tháng 3 này sẽ/đã là A,. . . )
[Mã KH] là mã của 1 khách hàng đến CQ để GD

Fần chi tiết gồm các trường sau:
[STT], [Mã QH], [Mã MG], [Số lương], [T Tiền], [Ghi chú]
[STT]: như trên đã nêu;
[Mã QH] đây là mã liện kết giữa 1 dòng của fần chung bên trên với 1 hay nhiều dòng của fần chi tiết
Là 1 dòng duy nhất, 1 khi trong fiếu thanh toán chỉ có 1 mệnh giá tiền trong GD; Nếu nhiều mệnh giá khác nhau thì bao nhiêu mệnh giá sẽ có bấy nhiêu dòng trong chi tiết này. Các dòng này có chung 1 [Mã QH]
[Số lượng] ghi là số lượng tờ (tiền) của mệnh giá này;
[TTiền] =[số lượng] x [Mệnh giá]
[Ghi chú] để ghi nhận những nghi vấn có thể có.

(. . . )
 
Loạt bài này là sự tiếp nối của loạt bài fần 1. (Được đăng ở đây:
http://www.giaiphapexcel.com/diendan/threads/thỬ-tẠo-1-csdl-quan-hỆ-trong-excel-bài-2-tạo-ra-số-hóa-đơn-theo-ngày.130062/#post-819061)

Xuất xứ vấn đề: Ở 1 cơ quan (CQ) hoạt động sản xuất kinh doanh nào cũng cần quản lí lượng tiền mặt ra vô CQ mình hàng ngày
Để làm việc này, người ta có nhiều cách;
Sau đây xin được giới thiệu 1 cách: Đó là xây dựng CSDL quan hệ (1<-> Nhiều)
Cụ thể CSDL gồm 2 bảng dữ liệu; Fần chung & fần chi tiết

Fần chung là bảng dữ liệu gồm các trường sau đây:
[STT], [Ngày], [Mã fiếu], [Mã QH], [Mã KH], [Ghi chú]
Trong đó [STT] để ghi nhận sự fát sinh tăng dần theo thời gian
[Ngày] là hiển nhiên cần ghi nhận lại lúc giao dịch (GD)
[Mã fiếu]: Gồm 7 kí tự ABCX123;
Trong đó A là kí tự chỉ năm; B:= Chỉ tháng; & C chỉ ngày GD
X là fân loại thu vô hay chi ra (T/C)
123 là số thứ tự của loại fiếu trong ngày; Ví dụ G3DT000 là số của fiếu thu đầu tiên của năm 2017, tháng 3 & ngày 13
(Ngày 10 của tháng 3 này sẽ/đã là A,. . . )
[Mã KH] là mã của 1 khách hàng đến CQ để GD

Fần chi tiết gồm các trường sau:
[STT], [Mã QH], [Mã MG], [Số lương], [T Tiền], [Ghi chú]
[STT]: như trên đã nêu;
[Mã QH] đây là mã liện kết giữa 1 dòng của fần chung bên trên với 1 hay nhiều dòng của fần chi tiết
Là 1 dòng duy nhất, 1 khi trong fiếu thanh toán chỉ có 1 mệnh giá tiền trong GD; Nếu nhiều mệnh giá khác nhau thì bao nhiêu mệnh giá sẽ có bấy nhiêu dòng trong chi tiết này. Các dòng này có chung 1 [Mã QH]
[Số lượng] ghi là số lượng tờ (tiền) của mệnh giá này;
[TTiền] =[số lượng] x [Mệnh giá]
[Ghi chú] để ghi nhận những nghi vấn có thể có.

(. . . )
Bỏ [Mã QH] và dùng [Mã fiếu] thay thế có được không?
 
Đúng là 2 cái là 1 (ở fần chính); Đúng là coi lại thấy mình lú mất rồi!
Sau đây xin gới file để thao tác fần nhập liệu

[Bài 2:] KHÂU NHẬP LIỆU VÔ 2 BẢNG CỦA CSDL .. . . .xxxxGPEGPEGPR>COMxxxxxx . . . . . . . . . . . . . . .

Trong fần I ta đã thấy cách thức nhập liệu thông qua Form;

Trong fần này ta kết hợp nhập dữ liệu vô "Fiếu Thanh toán" & từ fiếu này nhờ macro đưa dữ liệu vô lưu tại 2 bảng chính & chi tiết.

Mong các bạn tham khảo qua file & trao đổi, cũng như góp thêm ý kiến.

[Xin các bạn xem file đã cập nhật ở bài tiếp sau; Xin được tháo file này, thu hồi tài nguyên]
 
Lần chỉnh sửa cuối:
Đúng là 2 cái là 1 (ở fần chính); Đúng là coi lại thấy mình lú mất rồi!
Sau đây xin gới file để thao tác fần nhập liệu

[Bài 2:] KHÂU NHẬP LIỆU VÔ 2 BẢNG CỦA CSDL

Trong fần I ta đã thấy cách thức nhập liệu thông qua Form;

Trong fần này ta kết hợp nhập dữ liệu vô "Fiếu Thanh toán" & từ fiếu này nhờ macro đưa dữ liệu vô lưu tại 2 bảng chính & chi tiết.

Mong các bạn tham khảo qua file & trao đổi, cũng như góp thêm ý kiến.
Đúng là 2 cái là 1 (ở fần chính); Đúng là coi lại thấy mình lú mất rồi!
Sau đây xin gới file để thao tác fần nhập liệu

[Bài 2:] KHÂU NHẬP LIỆU VÔ 2 BẢNG CỦA CSDL

Trong fần I ta đã thấy cách thức nhập liệu thông qua Form;

Trong fần này ta kết hợp nhập dữ liệu vô "Fiếu Thanh toán" & từ fiếu này nhờ macro đưa dữ liệu vô lưu tại 2 bảng chính & chi tiết.

Mong các bạn tham khảo qua file & trao đổi, cũng như góp thêm ý kiến.
Ở tuổi bạn và mình làm sau quên trước là khó tránh
Mình xin góp thêm vài ý
- Phiếu ghi tiền mặt của ngân hàng hình như không có phân loại: Loại thanh toán(T/C). Mình không nhớ rỏ
- Cột Mệnh giá và Mã MG nên khóa lại , đề phòng người dùng thay đổi
- ô Số Phiếu cần tách 2 phần: Mã hóa do code tạo không cho sửa, số thứ tự người dùng có thể sửa, và thêm lệnh kiểm tra không cho nhập trùng với các số phiếu trước. Hoặc khóa luôn không cho sửa, code tự tạo số phiếu không cần thêm thao tác bấm chuột cột P
Chúc bạn 1 ngày vui
 
Xin bổ sung fần các câu lệnh kiểm tra đã tồn tại của mã quan hệ (giữa hai dòng lệnh được đánh số & xin chú í dòng lệnh có dấu '*' cuối dòng)

PHP:
Sub NhapMoi()
 Dim Rws As Long, J As Long, Dm As Byte     '*'
 Dim MaQH As String
 Dim Arr()
 Set Sh = ThisWorkbook.Worksheets("DuLieu")
 Rws = Sh.[D65500].End(xlUp).Row + 1
 MaQH = [g5].Value
 If Len(MaQH) <> 7 Then
    MsgBox "Mã Chua Chính Xác", , "GPE.COM: Dè Nghi Ban Xem Lai!          "
    Exit Sub
 End If
1 'Thêm Kiêm Tra Mã QH:'
 Set Sh = ThisWorkbook.Worksheets("DuLieu")
 Rws = Sh.[D2].CurrentRegion.Rows.Count
 Arr() = Sh.[D2].Resize(Rws).Value
 For J = 1 To UBound(Arr())
    If Arr(J, 1) = MaQH Then
        MsgBox "Mã Này Dã Có!", , "GPE.COM Tam Biet Ban!"
        Set Sh = Nothing:                   Exit Sub
    End If
2 Next J
 If [G6].Value = "" Then
    MsgBox "Ban Chua Chon Mã KH", , "GPE.COM Xin Canh Báo!"
    Exit Sub
 End If
 If [d23].Value = 0 Then
    MsgBox "Ban Chua Nhap Menh Giá Nào!", , "GPE.COM Xin Chào!"
    Exit Sub
 End If
 Sh.Cells(Rws, "A").Value = Sh.Cells(Rws - 1, "A").Value + 1
 Sh.Cells(Rws, "B").Value = [C5].Value
 Sh.Cells(Rws, "C").Value = [g5].Value
 Sh.Cells(Rws, "D").Value = MaQH
 Sh.Cells(Rws, "E").Value = [G6].Value              'Mã KH'
 Sh.Cells(Rws, "F").Value = [c8].Value              'Ghi Chú Chung'
 Rws = Sh.[Ab65500].End(xlUp).Row
 [G5:g6].Value = "":                                [C7:c8].Value = ""
 For J = 1 To 11
    If Cells(10 + J, "D").Value > 0 Then
        Dm = Dm + 1
        Sh.Cells(Rws + Dm, "aA").Value = Sh.Cells(Rws + Dm - 1, "Aa").Value + 1
        Sh.Cells(Rws + Dm, "Ab").Value = MaQH
        Sh.Cells(Rws + Dm, "AC").Value = [c10].Offset(J).Value      'Mã MG'
        Sh.Cells(Rws + Dm, "Ad").Value = [d10].Offset(J).Value      'Só Lg'
        Sh.Cells(Rws + Dm, "Ae").Value = [E10].Offset(J).Value      'T Tièn'
        Sh.Cells(Rws + Dm, "Af").Value = [f10].Offset(J).Value      'Ghi Chú CT'
    End If
 Next J
 Union([D11:d21], [f11:F21]).Value = "":            MsgBox "Nhap Xong!"
 Set Sh = Nothing
End Sub
 
BÀI 3: Thống kê số lượng tờ tiền thu & chi trong 1 thời kỳ

Thời kỳ báo cáo hay thống kê ở đây có thể là trong ngày, tuần; Mươi ngày hoặc nữa tháng;
Thời kì báo cáo cũng có thể là tháng, quí, 6 tháng hay cả năm.
Xin các bạn xem & kiểm kết quả tại trang 'TKe'
 

File đính kèm

  • GPE.rar
    33 KB · Đọc: 109
Lần chỉnh sửa cuối:
BÀI 04 QUẢN LÝ LƯƠNG CỦA NHÂN VIÊN​


File đơn giản để quản lý việc thuyên chuyển lương trong 1 công ti
 

File đính kèm

  • Form.rar
    24.2 KB · Đọc: 81
Web KT
Back
Top Bottom