Tổ chức Database cho chương trình Kế toán Excel

Liên hệ QC

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,787
Mình thường tổ chức chương trình Kế toán trên Excel như sau:

1. Tổng thể : Gồm 3 File

- DanhMuc :
Chứa đựng các Sheet DanhMuc như DMKhachHang, DMVatTu, DMHangHoa, DMKhuVuc, DMNhomHangHoa, DMLoaiHangHoa, DMTaiKhoan . . .

- Data :
Chứa đựng dữ liệu phát sinh : Gồm 4 Sheet
--------ShDanhMuc: Kết nối các dữ liệu từ File DanhMuc sang
--------ShMain : Lưu trữ thông tin chính lặp lại 1 lần trong Chứng từ như : Số CT, Ngày CT, Số CT, Nội dung, Hóa đơn, Đối tác, . .
--------ShDinhKhoan: Chứa thông tin về định khoản
--------ShXN: chứa thông tin về xuất nhập hàng hóa, vật tư, TSCĐ
Cả 3 sheet này sẽ được liên kết với nhau thông qua Số CTừ
--------ShTemp: Dùng để làm những thủ tục trung gian từ UserForm trước khi nhập vào các sheet dữ liệu

- Report : Nơi chứa đựng những báo cáo có thể có, ngoài ra còn có các sheet để lấy dữ liệu từ DanhMucData


Chỉ cần nhập dữ liệu vào DanhMucData , việc còn lại là Click mouse thôi.
Tuy nhiên vì không có kinh nghiệm cho việc này nên nhờ các cao thủ chỉ giáo thêm về cách bố trí và thiết kế Database cho tối ưu, phù hợp và đơn giản. Vì điều này sẽ ảnh hưởng đến tất cả chương trình.

Hiện tại thì CSDL mới chỉ có gần 20.000 dòng, vẫn chạy tốt, không sao cả. Nhưng dù sao vẫn cảm thấy chưa tối ưu và thiếu cái nền tảng (tất cả là tự học).

Mong được giúp đỡ.

Cảm ơn nhiều!
 
Đây là quan hệ CSDL kế toán được thiết kế trên Excel.
Shmain = THCT
ShDinhkhoan=DATA
ShNX=KHO
DB_R.jpg


CSDL là Access hoặc SQL Server thì cách thiết kế hơi khác một chút.
 
Lần chỉnh sửa cuối:
Chào anh Tuân,

Anh có thể Documenter cấu trúc file này post lên được không? Chắc nhiều người cũng cần cách thiết kế CSDL này.

Cảm ơn anh,

TP.
 
TuanVNUNI đã viết:
Đây là quan hệ CSDL kế toán được thiết kế trên Excel.
Shmain = THCT
ShDinhkhoan=DATA
ShNX=KHO


CSDL là Access hoặc SQL Server thì cách thiết kế hơi khác một chút.


Anh có thể nói rõ hơn về vấn đề này được không ạ ???

Thân!
 
Cở sở dữ liệu cho Kế toán

ttphong2007 đã viết:
Chào anh Tuân,

Anh có thể Documenter cấu trúc file này post lên được không? Chắc nhiều người cũng cần cách thiết kế CSDL này.

Cảm ơn anh,

TP.

Thay cho việc Documenter mình gửi các bạn CSDL kế toán, CSDL này mình làm cho hệ thống kế toán cho các công ty thương mại & dịch vụ. CSDL này mình đã làm thực tế và thành công cho nhiều công ty rồi.
(Trong cấu trúc của sổ THCT, có một số cột-field các bạn có thể sẽ không hiểu vì tôi làm để xử lý trong PM.)


Mr Mr Okebab đã viết:
Shmain = THCT
ShDinhkhoan=DATA
ShNX=KHO
Ý mình nói là một số sổ của bạn giống của tôi, chỉ khác nhau tên gọi.
Sổ tổng hợp CT của bạn là "Shmain", của tôi là "THCT" (Shmain = THCT).

Cấu trúc thiết kế cho Excel hơi khác với CSDL là Access hoặc SQL Server. CSDL cho Excel, ngoài việc đảm bảo các khóa quan hệ giữa các table (như Access, SQL Server,...) thì các trường thông tin trong các table phải hỗ trợ cho việc ứng dụng các hàm tính của Excel. Vì liên quan với các hàm của Excel nên có một số thông tin (DVKH, MANV,..) phải ghi cả trên 3 sổ mà lẽ ra chỉ cần ghi trên một sổ là THCT.

Các bạn lưu ý, trong CSDL của tôi. Mỗi một chứng từ sẽ được lưu cùng một lúc vào 3 sổ:
+ THCT - ghi những thông tin chung trên một chứng từ, mỗi dòng là một chứng từ (mã chứng từ không trùng).
+ DATA - Ghi định khoản nghiệp vụ
+ KHO - Ghi thông tin chi tiết của các hàng hóa nhập và xuất.

Khi lập các báo cáo:
+ Liên quan tới số tiền và nghiệp vụ sẽ lấy từ sổ DATA
+ Liên quan đến kho - Cân đo đong đếm về số lượng VLSPHH sẽ lấy dữ liệu từ sổ KHO
+ Liên quan tới báo cáo chứng từ sẽ lấy dữ liệu từ sổ THCT. Các báo cáo như là "Bảng kê chứng từ HHDV mua vào", "Bảng kê chứng từ HHDV bán ra"," Công nợ theo chứng từ,...

File CSDL tôi gửi dưới đây các bạn tham khảo và có thể sửa đôi chút cho phù hợp hơn nữa với đặc thù của cty mình. Là file định dạng của Access, các bạn có thể mở và Save As về Type of file là Excel để có CSDL trên Excel.
 

File đính kèm

Lần chỉnh sửa cuối:
Mọi người trên này siêu phết nhỉ. Hay đấy!

Tuy nhiên có vài nhận xét nhỏ: Đối với những ai coi đó là SP có tính lâu dài phục vụ kinh doanh (với những người còn lại thì làm thế là quá OK rồi)

- Nếu muốn sản phẩm có tính chuyên nghiệp hơn. Có lẽ hay làm lại cách thiết kế CSDL đi. Cách đặt tên đối tượng nên theo chuẩn (nên có các prefix và english hóa). Nhìn vào các quan hệ đối tượng ko thấy phân biệt rõ đâu là indentify relation, non-identify relation cả. (một phần do cái relation diagram trong access quá thiếu nên ko thể hiện được)
- Ở đây thấy cái DATA có cấu trúc là sổ nhật ký, ở các phần mềm nước ngoài họ dùng khái niệm giao dịch (transactions), từ giao dịch đó, họ chỉ cần query ra sổ nhật ký, sổ tổng hợp,.... Trên bảng giao dịch có trạng thái posted (To GL). Tuy nhiên, bản chất của các giao dịch là khác nhau nên nếu để chung vào 1 table DATA thì sẽ có loại giao dịch (chứng từ) sẽ ko sử dụng hết các thuộc tính (các fields) có trong table DATA đó --> Thừa dữ liệu trong CSDL. Tuy nhiên, nếu nhét tất cả các thông tin trong DATA thì được cái là... dễ viết code :)
- Về bản chất, KHO ở đây chính là bảng Detail (inventory transaction line items) của các giao dịch kho hàng. Quan hệ giữa transaction với transaction line items phải là 1-nhiều. (Trên data diagram của access khó thể hiện cái này thật)
- Chi tiết thanh toán công nợ để ở bảng nào nhỉ? (mờ mắt nhìn chưa ra)

Vài lời nhận xét vui vui thế thôi
 
Lần chỉnh sửa cuối:
Như đã nói
TuanVNUNI đã viết:
Cấu trúc thiết kế cho Excel hơi khác với CSDL là Access hoặc SQL Server. CSDL cho Excel, ngoài việc đảm bảo các khóa quan hệ giữa các table (như Access, SQL Server,...) thì các trường thông tin trong các table phải hỗ trợ cho việc ứng dụng các hàm tính của Excel. Vì liên quan với các hàm của Excel nên có một số thông tin (DVKH, MANV,..) phải ghi cả trên 3 sổ mà lẽ ra chỉ cần ghi trên một sổ là THCT.

Một lý do mà phải tạo dữ liệu trùng giữa các sổ THCT,DATA,KHO là vì, khi dùng câu lệnh SQL với CSDL là Excel, nếu dùng nhiều JOIN tốn nhiều RAM - Vấn đề này sẽ bàn ở box khác. Với lý do đó mà rất phải hạn chế việc dùng JOIN với CSDL là Excel.

Đặt tên trường trong table rất quan trọng, nên tác giả đã cố gắng tìm cái tên Việt ngắn gọn nhất. Nếu được làm lại từ đầu thì nên đặt theo tiếng Anh là ngắn gọn hơn cả.

- Chi tiết thanh toán công nợ để ở bảng nào nhỉ? (mờ mắt nhìn chưa ra)
Oh, chẳng biết khi Convert to Access thế nào mà lại không thấy table "THANHTOAN" nữa, trong hệ thống là có sổ này.
 
TuanVNUNI đã viết:
Như đã nói
Một lý do mà phải tạo dữ liệu trùng giữa các sổ THCT,DATA,KHO là vì, khi dùng câu lệnh SQL với CSDL là Excel, nếu dùng nhiều JOIN tốn nhiều RAM - Vấn đề này sẽ bàn ở box khác. Với lý do đó mà rất phải hạn chế việc dùng JOIN với CSDL là Excel.
Ah, I See. Giờ thì tớ hiểu tại sao lại có cái DATA, lại có thêm cái THCT rồi. Phải nói là A-Excel đã làm mọi người thay đổi quan điểm về Excel đấy. Trước khi vào đây (tự nhiên google về vấn đề bảo hiểm xã hội, thế quái nào lại vào nơi hay ho thế này chứ), tớ chỉ nghĩ Excel chỉ làm mấy cái sheet có links với nhau và có thêm tý VBA thôi (dĩ nhiên xưa kia tớ cũng từng biết tới có cái phần mềm dự toán xây dựng trên excel rồi nhưng từ sau đó ko thấy ai làm ứng dụng mang đúng nghĩa trên Excel như A-Excel nữa).

Nếu thiếu cái thanh toán thì convert lại sang access rồi upload lại cho bà con được tham khảo.
 
Lần chỉnh sửa cuối:
TuanVNUNI đã viết:
Thay cho việc Documenter mình gửi các bạn CSDL kế toán, CSDL này mình làm cho hệ thống kế toán cho các công ty thương mại & dịch vụ. CSDL này mình đã làm thực tế và thành công cho nhiều công ty rồi.
(Trong cấu trúc của sổ THCT, có một số cột-field các bạn có thể sẽ không hiểu vì tôi làm để xử lý trong PM.)



Ý mình nói là một số sổ của bạn giống của tôi, chỉ khác nhau tên gọi.
Sổ tổng hợp CT của bạn là "Shmain", của tôi là "THCT" (Shmain = THCT).

Cấu trúc thiết kế cho Excel hơi khác với CSDL là Access hoặc SQL Server. CSDL cho Excel, ngoài việc đảm bảo các khóa quan hệ giữa các table (như Access, SQL Server,...) thì các trường thông tin trong các table phải hỗ trợ cho việc ứng dụng các hàm tính của Excel. Vì liên quan với các hàm của Excel nên có một số thông tin (DVKH, MANV,..) phải ghi cả trên 3 sổ mà lẽ ra chỉ cần ghi trên một sổ là THCT.

Các bạn lưu ý, trong CSDL của tôi. Mỗi một chứng từ sẽ được lưu cùng một lúc vào 3 sổ:
+ THCT - ghi những thông tin chung trên một chứng từ, mỗi dòng là một chứng từ (mã chứng từ không trùng).
+ DATA - Ghi định khoản nghiệp vụ
+ KHO - Ghi thông tin chi tiết của các hàng hóa nhập và xuất.

Khi lập các báo cáo:
+ Liên quan tới số tiền và nghiệp vụ sẽ lấy từ sổ DATA
+ Liên quan đến kho - Cân đo đong đếm về số lượng VLSPHH sẽ lấy dữ liệu từ sổ KHO
+ Liên quan tới báo cáo chứng từ sẽ lấy dữ liệu từ sổ THCT. Các báo cáo như là "Bảng kê chứng từ HHDV mua vào", "Bảng kê chứng từ HHDV bán ra"," Công nợ theo chứng từ,...

File CSDL tôi gửi dưới đây các bạn tham khảo và có thể sửa đôi chút cho phù hợp hơn nữa với đặc thù của cty mình. Là file định dạng của Access, các bạn có thể mở và Save As về Type of file là Excel để có CSDL trên Excel.

Đây đúng là điều bận tâm của em.
TH1
Nếu tất cả trong 1 bảng thì có cái là làm các hàm rất thuận tiện, đặc biệt là các hàm tổng hợp và các công cụ tổng hợp (hàm D, sumproduct, mảng, Advanced Filter . . ). Đây chính là cách mà mọi người trên GPE đang làm cho những chương trình của mình
Làm thế này thì việc bố trí Data rất dễ, cần quản lý cái gì thì thêm cột vào đó
Tuy nhiên như vậy chỉ có lợi khi nhập trực tiếp (thói quen mà) , hơn nữa là File sẽ rất lớn.

TH2
Nếu tách ra thành Main và Sub thì dùng Form rất dễ, Main và các Sub liên kết với nhau qua Field ID, nhưng việc tổng hợp lại khó hơn, em toàn dùng các vòng lặp để tổng hợp thôi.
Làm như thế này thì việc bố trí phải thật khoa học, chứ nếu không thì lại dở hơn cả TH1

Mong có những kiến giải và có những VD cụ thể hơn.

Cảm ơn thật nhiều!!
 
Kế toán trong lĩnh vực dịch vụ

Chào các anh chị!
Em mới học kế toán chưa biết gì, bây giờ đang phải làm kế toán cho một công ty dịch vụ, ngành nghề là tư vấn sở hữu trí tuệ... từ A đến Z. Vậy, em phải bắt đầu như thế nào đây ah?
Mong anh chị hướng dẫn chi tiết giúp em
Em cảm ơn nhiều
 
Web KT

Bài viết mới nhất

Back
Top Bottom