[THỬ TẠO 1 CSDL QUAN HỆ TRONG EXCEL] , Bài 2: Tạo ra số hóa đơn theo ngày.

Liên hệ QC

Hoang2013

Thành viên gắn bó
Tham gia
15/8/13
Bài viết
1,622
Được thích
1,595
Giới tính
Nam
Nghề nghiệp
Hưu trí
(Bài 1: http://www.giaiphapexcel.com/diendan/threads/tạo-csdl-trên-excel.6159/#post-816393 (#16))

Theo mình, để tạo ra 1 CSDL quan hệ, vấn đề quan trọng nhất trong chu trình sẽ là tạo ra mã quan hệ giữa 2 bảng dữ liệu (BgDL).

Như bài 1 ta thấy, 2 BgDL trong hóa đơn mua/bán vật tư liên hệ với nhau thông qua số hóa đơn tạo ra trong từng ngày.

Bài đăng này ta sẽ xem xét quá trình tạo ra mã số hóa đơn ấy 1 cách kỹ lưỡng hơn có thể.

Trước hết ta xem xét các thành tố trong mã này.

Mã được cấu thành bỡi 2 nhóm kí tự (hay/có ký số); Nhóm đầu là 3 kí tự (có khi chứa kí số trong đó) & nhóm sau gồm 2 kí tự (hay kí số)

Ba kí tự của nhóm đầu gồm:

Kí tự đầu tiên để chỉ năm (của hóa đơn)

Kí tự ‘G’ chỉ ra rằng năm hóa đơn là 2017; Năm sau sẽ là ‘H’

Kí tự thứ 2 chỉ cho ta biết là tháng hình thành hóa đơn; Tháng chin sẽ là con số ‘9’; Tháng 10 sẽ là kí tự ‘A’

Con số cuối dung để chỉ ra ngày hóa đơn, tương tự như kí tự chỉ tháng, ngày chin sẽ là con số ‘9’, ngày 10:= ‘A’; Ngày 23 sẽ xài kí tự ‘N’ & ngày 28 của bất kỳ tháng nào cũng sẽ được kí tự ‘S’ làm đại diện.

Nhóm sau trong 2 nhóm sẽ là các thứ tự tăng dần trong việc hình thành hóa đơn trong ngày.

Nhóm 3 kí tự đầu được hàm tự tạo sau đây hỗ trợ tạo ra:

PHP:
 Function MaQH(Optional Dat As Date)
 Const Alf As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 Dim Tmp As String
 On Error Resume Next

 If Dat = 0 Then Dat = Date
 Tmp = Mid(Alf, Year(Dat) - 2000, 1) & Mid(Alf, Month(Dat) + 1, 1) _
    & Mid(Alf, Day(Dat) + 1, 1)
 MaQH = Tmp
End Function
 
Theo em thì anh nên gom bài 1 vào đây luôn và chuyển bài này xuống bài 2 để các thành viên thuận tiện trong việc đọc và theo dõi.
 
Bài 3: QUÁ TRÌNH NHẬP DỮ LIỆU THÔNG QUA FORM

1./ Về số hóa đơn trong ngày; cột sống của CSDL
Như ta biết, số hóa đơn (SHĐ) là rất quan trọng; Cho nên để xác lập nó, ta cần đến 5 Control để làm việc này;, gồm:
1 nút lệnh (có mũi tên);
1 ListBox (đang ở trên trái nhất của Form)
1 nhãn (đang có dòng "Hôm nay T X ngày . . . . )
2 TextBox nằm giữa listBox & nút lệnh.

Để nhập các hóa đơn trong ngày hiện hành, ta bấm chuột vô nhãn; Khi đó TextBox ngay dưới nó được macro nhập số liệu ngày hiện hành;
Nếu tiếp theo ta nhấn chuột vô nút lệnh thì sẽ có 2 hướng sẩy ra như sau:
(1) Nếu ngày này chưa nhập hóa đơn nào, thì TextBox bên trái sẽ được macro đưa ra 1 mã hòa đơn, mà fần định trị sẽ là "00"
(2) Nếu trước đó đã nhập vài hóa đơn (trong ngày) thì các mã hóa đơn đã nhập sẽ hiện mã lên ListBox

Để nhập các hóa đơn có trước ngày hiện hành, ta nhập ngày hóa đơn vô TextBox (gần nút lệnh) ngày cần thiết. Sau khi nâấn nút lệnh, ta sẽ nhận được các mã hóa đơn đã nhập trong ngày đó.
Lúc đó ta cần nhập mã tiếp theo cho số hóa đơn; Ví dụ ta đã thấy có các mã hòa đơn G9N00 & G9N01, thì ta nhập là G9N02

2./ Nhập vô bảng dữ liệu chính (Fần còn lại của fía trái của Form)
Gồm các trường [Mã KH] Mã khách hàng & các thông số khác như cách thanh toán, ghi chú, . . .
Trong đó, mã khách hàng ta nhờ ComboBox.(ngay dưới ListBox); Còn các số liệu ta nhập trực tiếp vô các TextBox tương ứng;

3./ Nhập vô bảng chi tiết (fía bên f ải cúa Form)
Fần nhập này cũng cần lưu í cách nhập mã hàng hóa nhờ ComboBox; Còn các dữ liệu khác ta nhập thông qua các TextBox tương ứng.
Riêng vế tên hàng hòa & đơn vị tính sẽ được macro tự động nhập cho bạn

4./ Quá trình lưu dữ liệu
Ta thấy trên Form có 2 nút lệnh để lưu;
Nút lệnh 'Lưu chi tiết' dùng để lưu từng dòng mặt hàng đã nhập. Có nghĩa là sau khi ta nhập số liệu vô các Control fía dưới & nhấn nút lưu CT thì dòng dữ liệu được lưu giữ lên 1` vùng của trang tính & hiện trên ListBox dữ liệu mà ta đã nhập trên các Control.
Sau khi ta nhập & lưu đủ các dòng của fần chi tiết ta cần nhấn nút Lưu hóa đơn. Là công đoạn cuối của quá trình nhập dữ liệu vô 2 bảng của 1 CSDL quan hệ.

(Xin các bạn xem file đính kèm tại #7 bên dưới, xin cảm ơn!)
 

File đính kèm

  • CSDL QH.JPG
    CSDL QH.JPG
    48.3 KB · Đọc: 202
Lần chỉnh sửa cuối:
Bài 3: QUÁ TRÌNH NHẬP DỮ LIỆU THÔNG QUA FORM

1./ Về số hóa đơn trong ngày; cột sống của CSDL
Như ta biết, số hóa đơn (SHĐ) là rất quan trọng; Cho nên để xác lập nó, ta cần đến 5 Control để làm việc này;, gồm:
1 nút lệnh (có mũi tên);
1 ListBox (đang ở trên trái nhất của Form)
1 nhãn (đang có dòng "Hôm nay T X ngày . . . . )
2 TextBox nằm giữa listBox & nút lệnh.

Để nhập các hóa đơn trong ngày hiện hành, ta bấm chuột vô nhãn; Khi đó TextBox ngay dưới nó được macro nhập số liệu ngày hiện hành;
Nếu tiếp theo ta nhấn chuột vô nút lệnh thì sẽ có 2 hướng sẩy ra như sau:
(1) Nếu ngày này chưa nhập hóa đơn nào, thì TextBox bên trái sẽ được macro đưa ra 1 mã hòa đơn, mà fần định trị sẽ là "00"
(2) Nếu trước đó đã nhập vài hóa đơn (trong ngày) thì các mã hóa đơn đã nhập sẽ hiện mã lên ListBox

Để nhập các hóa đơn có trước ngày hiện hành, ta nhập ngày hóa đơn vô TextBox (gần nút lệnh) ngày cần thiết. Sau khi nâấn nút lệnh, ta sẽ nhận được các mã hóa đơn đã nhập trong ngày đó.
Lúc đó ta cần nhập mã tiếp theo cho số hóa đơn; Ví dụ ta đã thấy có các mã hòa đơn G9N00 & G9N01, thì ta nhập là G9N02

2./ Nhập vô bảng dữ liệu chính (Fần còn lại của fía trái của Form)
Gồm các trường [Mã KH] Mã khách hàng & các thông số khác như cách thanh toán, ghi chú, . . .
Trong đó, mã khách hàng ta nhờ ComboBox.(ngay dưới ListBox); Còn các số liệu ta nhập trực tiếp vô các TextBox tương ứng;

3./ Nhập vô bảng chi tiết (fía bên f ải cúa Form)
Fần nhập này cũng cần lưu í cách nhập mã hàng hóa nhờ ComboBox; Còn các dữ liệu khác ta nhập thông qua các TextBox tương ứng.
Riêng vế tên hàng hòa & đơn vị tính sẽ được macro tự động nhập cho bạn

4./ Quá trình lưu dữ liệu
Ta thấy trên Form có 2 nút lệnh để lưu;
Nút lệnh 'Lưu chi tiết' dùng để lưu từng dòng mặt hàng đã nhập. Có nghĩa là sau khi ta nhập số liệu vô các Control fía dưới & nhấn nút lưu CT thì dòng dữ liệu được lưu giữ lên 1` vùng của trang tính & hiện trên ListBox dữ liệu mà ta đã nhập trên các Control.
Sau khi ta nhập & lưu đủ các dòng của fần chi tiết ta cần nhấn nút Lưu hóa đơn. Là công đoạn cuối của quá trình nhập dữ liệu vô 2 bảng của 1 CSDL quan hệ.
Bài viết của bạn rất hay và thiết thực, có ích cho nhiều doanh nghiệp
Mình xin có vài ý kiến nhỏ
1/ Hóa đơn là chứng từ pháp lý và sử dụng trong phạm vi cả nước Việt Nam, mình nghĩ trong các thành phần của số hóa đơn nên có thêm Mã của doanh nghiệp để phân biệt hóa đơn của đơn vị khác. Cẩn thận hơn, trong hóa đơn nên có thành phần kiểm tra nhằm phát hiện người khác làm giả hóa đơn của doanh nghiệp, và thành phần nầy có thể nằm trong 1 trường (cột) riêng hoặc ghép vào số hóa đơn
2/ Khi trình bày và in ấn thường có cột số thứ tự, khi lưu trữ dữ liệu chỉ lưu những dữ liệu thật cần thiết, mình nghĩ cột số thứ tự của bảng hóa đơn không có cũng không ảnh hưởng đến quá trình xử lý, còn số thứ tự bảng chi tiết là trường khóa chính không liên quan nhiều đến từng hóa đơn nên gọi tên là mã chi tiết hóa đơn. Cột thành tiền có thể bỏ qua, khi cần thì viết code tính từ các cột khác
3/ Form nhập liệu, nếu thiết kế tương tự hóa đơn in trên giấy thì người sử dụng dể nhập liệu và dể kiểm tra hơn, giảm được sai sót nhập liệu
4/ Nội dung cần thêm phần thuế suất
5/ Có thể thêm bảng Sản phẩm, lúc đó bảng chi tiết liên quan đến sản phẩm chỉ cần : Mã sản phẩm, đơn giá, số lượng. các cột khác lấy từ bảng sản phẩm
Chỉ là ý kiến chủ quan, có gì bạn bỏ qua
Chúc bạn luôn vui khỏe
 
Thứ nhất: Được bạn góp thêm ý kiến thật sự mình rất mừng. Vì đây là lần thử nghiệm tạo mẫu CSDL quan hệ nên còn 1 số chưa thật sự hòan hảo.
Có sự góp ý của bạn, mình sẽ tiến hành sửa dần, để CSDL chu toàn hơn.

Kế nữa, fải nói rằng những í góp của bạn đều xác thực & rất bổ ích cho bài, cho mình & có thể cho nhiều người khác.
Xin đi sâu vô chi tiết các gốp í của bạn

1.0 Việc thêm mã doanh nghiệp hay mã số thuế của doang nghiệp fát hành hóa đơn là cần thiết. & đây như là 1 hằng (const) nên thêm trong fần chung.
1.1 Cái gọi là "thành fần kiểm tra" như bạn nói, với mình còn ngờ ngợ/lơ mơ lắm. Xin chờ í kiến thêm của bạn & những người khác.

2. Hoàn toàn đồng ý với bạn; Nhưng do thói quen, nếu bỏ đi thấy thiêu thiếu thế nào í!

3. Nhất trí với bạn; Là vì ban đầu mình thấy khổ màn hình chiều ngang hơn chiều đứng, nên bố trí vậy.
Còn việc bố trí lại, ta sẽ chờ thêm í kiến của vài người khác nữa, xem sao.

4. Thuế suất cần thêm vô fần chi tiết, fải không bạn?

5. Đúng là các mục tên SF & đơn vị tính của SF trong Form cũng đã lấy từ bảng danh mục hàng hóa.
Lấy ra trên Form, khi lưu thì từ ListBox (thực tế là từ 1 vùng ô chi tiết) sẽ lưu lên CSDL luôn.
Như í kiến của bạn, thì macro lưu sẽ làm thêm việc này. Mình không rõ là VBE sẽ khen cách nào (& chê cách nào) nhưng như mình làm vậy sẽ trực quan hơn cho những người mới tiếp cận với CSDL quan hệ kiểu này.

Một lần nữa rất cảm ơn bạn!
Rất mong bạn & cộng đồng có nhiều những í kiến khác để chúng ta cùng hoàn thiện dạng CSDL quan hệ này.
 
Thứ nhất: Được bạn góp thêm ý kiến thật sự mình rất mừng. Vì đây là lần thử nghiệm tạo mẫu CSDL quan hệ nên còn 1 số chưa thật sự hòan hảo.
Có sự góp ý của bạn, mình sẽ tiến hành sửa dần, để CSDL chu toàn hơn.

Kế nữa, fải nói rằng những í góp của bạn đều xác thực & rất bổ ích cho bài, cho mình & có thể cho nhiều người khác.
Xin đi sâu vô chi tiết các gốp í của bạn

1.0 Việc thêm mã doanh nghiệp hay mã số thuế của doang nghiệp fát hành hóa đơn là cần thiết. & đây như là 1 hằng (const) nên thêm trong fần chung.
1.1 Cái gọi là "thành fần kiểm tra" như bạn nói, với mình còn ngờ ngợ/lơ mơ lắm. Xin chờ í kiến thêm của bạn & những người khác.

2. Hoàn toàn đồng ý với bạn; Nhưng do thói quen, nếu bỏ đi thấy thiêu thiếu thế nào í!

3. Nhất trí với bạn; Là vì ban đầu mình thấy khổ màn hình chiều ngang hơn chiều đứng, nên bố trí vậy.
Còn việc bố trí lại, ta sẽ chờ thêm í kiến của vài người khác nữa, xem sao.

4. Thuế suất cần thêm vô fần chi tiết, fải không bạn?

5. Đúng là các mục tên SF & đơn vị tính của SF trong Form cũng đã lấy từ bảng danh mục hàng hóa.
Lấy ra trên Form, khi lưu thì từ ListBox (thực tế là từ 1 vùng ô chi tiết) sẽ lưu lên CSDL luôn.
Như í kiến của bạn, thì macro lưu sẽ làm thêm việc này. Mình không rõ là VBE sẽ khen cách nào (& chê cách nào) nhưng như mình làm vậy sẽ trực quan hơn cho những người mới tiếp cận với CSDL quan hệ kiểu này.

Một lần nữa rất cảm ơn bạn!
Rất mong bạn & cộng đồng có nhiều những í kiến khác để chúng ta cùng hoàn thiện dạng CSDL quan hệ này.
Bạn tham khảo những nội dung của hóa đơn ở trang web phần điều 4: https://thuvienphapluat.vn/van-ban/...D-CP-hoa-don-ban-hang-hoa-dich-vu-229190.aspx
Phầm mềm quản lý tạm chia thành 3 thành phần:
1/ Cơ sở dữ liệu, lưu trữ dữ liệu cần thiết trên các bảng dữ liệu theo 3 nhóm
1-1/ Bảng ghi nhận những thông tin chung dùng cho toàn bộ phần mềm như tên đơn vị, địa chỉ, mã số thuế, Lô gô ...đây là các dữ liệu mặc định nên không cần thiết thể hiện trên màn hình làm việc
1-2/ Các bảng ghi nhận những thông tin đối tượng quản lý ít thay đổi như: Khách hàng, người bán, hệ thống tài khoản, sản phẩm, nhân viên, phóng ban ... mỗi đối tượng 1 bảng và nên có mã là trường khóa chính
1-3/ Các bảng ghi nhận sự kiện phát sinh theo thứ tự thời gian như hóa đơn, phiếu nhập, phiếu chi ...Nếu tổ chức tốt thì gôm tất cả vào 1 bảng (Rất khó tổ chức và xử lý, dể thiếu sót), nếu bảng nào có liên hệ nhiều _ nhiều với bảng khác như hóa đơn và sản phẩm có liên hệ nhiều _ nhiều thì phải tách bảng hóa đơn thành 2 bảng: Hóa đơn chung và chi tiết hóa đơn, để trở thành mối liên hệ một nhiều: Sản phẩm (1 _ n) chi tiết hóa đơn (n _ 1) hóa đơn chung nhằm giảm thiểu dữ liệu lưu trử làm nhẹ tập tin và quan trọng hơn nhằm giảm thao tác nhập liệu, giảm sai sót quá trình nhập liệu
Mỗi hóa đơn chỉ có 1 thuế suất, thuế suất nằm ở phần hóa đơn chung
Người sử dụng phần mềm (trừ người biết thật rỏ phần mềm) không được thao tác trực tiếp: thêm, sửa, xóa trên các bảng dữ liệu mà phải thông qua màn hình làm việc
2/ Màn hình làm việc gồm các nhóm:
2-1/ Khai báo: Thêm, sửa, xóa dữ liệu các bảng 1-1, 1-2 (Bảng 1-1 nhập trực tiếp trên sheet cho đơn giản). Cần hạn chế quyền được xóa, những dữ liệu đã được dùng ở bảng khác không cho xóa và có thể không cho sửa
2-2/ Nhập liệu: Thêm, sửa, xóa dữ liệu các bảng 1-3
- Chia thành 2 nhóm ô: Cho phép người dùng chọn vào để nhập, sửa dữ liệu; không cho phép chọn vào và code tự tính dữ liệu theo qui định trước
- Những dữ liệu nào có qui luật thì khi mở màn hình sẽ tự động hiện lên(code xử lý) như ngày, số hóa đơn, hình thức thanh toán, thành tiền, tổng thành tiền, ... những dữ liệu có thể khác với giá trị tự động thì cho phép chọn vào ô đó và người dùng tự sửa lại
- Những dữ liệu liên quan đến các bảng 1-2 cần tạo list chọn từ danh sách, không cho ghi nhận những giá trị không có trong danh sách hoặc để trống
- Trong quá trình nhập liệu liên quan đến dữ liệu mới chưa có trong các bảng 1-2 (như khách hàng mới) thì có nút lệnh để nhảy vào màn hình nhóm 2-1 để khai báo thêm và có nút lệnh nhảy trở về màn hình nhập liệu
2-3/ Xem và in báo cáo: Như màn hình xem và in hóa đơn, Chỉ được xem không được sửa, xóa
Thiết kế phải đúng với yêu cầu của bộ tài chính và của nhà quản lý doanh nghiệp

Mã kiểm tra có thể dùng thuật toán gì đó tùy bạn, có thể dựa vào kết hợp các chỉ tiêu như số thứ tự hóa đơn, ngày tháng và in ở cuối hay ở đâu đó dưới hình thức số, chuỗi, mã vạch
chúc bạn 1 ngày vui
3/ Code xử lý dữ liệu và màn hình làm việc, trong đó phần cần thiết và khó là kiểm soát thao tác của người dùng với mục tiêu là thao tác ít nhất, và nếu thao tác không đúng sẽ báo lổi và người dùng phải thao tác lại
 
Lần chỉnh sửa cuối:
Bài 4: QUÁ TRÌNH SỬA CHỮA, BỔ XUNG HAY XÓA DỮ LIỆU ĐÃ NHẬP​

Để tiến hành sửa đổi, bổ sung hay xóa bất kỳ hóa đơn (HĐ) nào trong CSDL, trước tiên ta cần hiễn thị HĐ đó lên màn hình của Form.
Muốn tìm HĐ nào đó, ta cần biết ngày fát hành của nó;
Khi đó ta nhập ngày vô Control & nhấn nút tìm kiếm;
Nếu có số HĐ đó, nó sẽ xuất hiện cùng với các HĐ khác trong ListBox liệt kê các HĐ trong ngày

1./ Để sửa mục số liệu nào đó trong fần chính của HĐ, ta tiến hành chỉnh sửa, thay mới các thông số trong các Conter (ở fần bên trái của Form)
Nếu chỉ cần đến vậy ta nhấn nút lệnh "Luu Thay Doi" & kết thúc

2./ Nếu muốn sửa 1 dòng chi tiết HĐ nào đó (hiện trên ListBox chi tiết); Ta dùng chuốt ấn vô dòng đó (ở ListBox) để các dữ liệu cũ xâất hiện trên các TextBox & ComboBox bên dưới ListBox.
Tiến hành chỉnh sửa số liệu trên các Conterl theo ý muốn
Sau đó ta nhấn nút lệnh "Lưu Dòng Chi Tiết", số liệu mới sẽ được thay lên các ô của dòng chi tiết cũ.

3./ Muốn thêm 1 dòng chi tiết hòa toàn khác vô các dòng chi tiết đã có; Ta bấm chuột lên dòng trống của ListBox chi tiết
(Khi đó trong TextBox SoTT sẽ hiện số thứ tự lớn nhất của vùng chi tiết HĐ)
Tiến hành nhập mới dữ liệu vô các Control (bên dưới ListBox CT)
Cuối cùng cũng bấm vô nút ta đã bấm ở mục (2)

4./ Muốn xóa HĐ nào đó, ta cũng cần cho nó hiện lên TextBox có ghi chú là 'Só Hóa Don'
Lúc này các số liệu của HĐ này cũng hiễn thị trên các Control (để ta thấy chúng lần cuối)
Sau khi bấm xóa & khẳng định không thương tiếc thì HĐ đó sẽ chào bạn ra đi vĩnh viễn


Các bạn xem file của bài dưới liện kế, xin cảm ơn!
 
Lần chỉnh sửa cuối:
Bài 5: THỐNG KÊ SỐ LIỆU CÁC THÁNG TRONG 1 NĂM​

Thống kê theo tháng trong 1 năm với 4 chỉ tiêu sau đây
1. Số lượng hóa đơn;
2. Số lượng Khách hàng;
3. Tổng số tiền hàng tháng
4. Số mặt hàng trong tháng

(Đã thay thế file ngày 04/10 tại bài dưới liền kề )
 
Lần chỉnh sửa cuối:
BÀI 5B: THỐNG KÊ KHÁCH HÀNG CÓ DOANH SỐ CAO NHẤT TRONG CÁC THÁNG.

Thống kê này thể hiện tại dòng 11 & 12 của trang tính 'TKe' trong file đính kèm

Xin các bạn xem file tại bài 5D tiếp sau & xin lỗi vì sự buồn fiền & bất tiện này!
 
Lần chỉnh sửa cuối:
BÀI 5C: THỐNG KÊ SẢN FẨM CÓ DOANH SỐ CAO NHẤT TRONG TỪNG THÁNG.

Thống kê này do macro dưới đây thực hiện & kết quả nó đưa ra tại dòng 13 & 14 của trang 'TKe'

PHP:
Sub MaSFCoDoanhSoCaoNhatCacThang()
 Dim Thg As Integer, J As Long, Rws As Long, W As Integer, Rw As Long, DThu As Double, Hg As Integer
 Dim sTh As String, MaSF As String
 Dim Arr(), Dict As Object
 
 Rw = Sheets("Tabls").[B4].CurrentRegion.Rows.Count:        Sheets("CSDL").Select
 Rws = [AB2].CurrentRegion.Rows.Count
 Arr() = [AB2].Resize(Rws - 1, 9).Value
 For Thg = 1 To 12
    sTh = Choose(Thg, "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "GPE.COM")
    ReDim dArr(1 To Rw, 1 To 2)
    For J = 1 To UBound(Arr())
        Set Dict = CreateObject("Scripting.Dictionary")
        If Mid(Arr(J, 1), 2, 1) = sTh Then
            If Not Dict.exists(Arr(J, 2)) Then
                W = W + 1:                                  dArr(W, 1) = Arr(J, 2)
                dArr(W, 2) = Arr(J, 9):                     Dict.Add Arr(J, 2), W
            Else
                dArr(Dict.Item(dArr(J, 2)), 2) = dArr(Dict.Item(dArr(J, 2)), 2) + Arr(J, 9)
            End If         
        End If
    Next J
    Set Dict = Nothing
    If W Then
        For Hg = 1 To W
            If dArr(Hg, 2) > DThu Then
                DThu = dArr(Hg, 2):                         MaSF = dArr(Hg, 1)
            End If
        Next Hg
        Sheets("TKe").Cells(13, Thg + 2).Value = MaSF:      MaSF = ""
        Sheets("TKe").Cells(14, Thg + 2).Value = DThu:      DThu = 0
        Erase dArr():                                       W = 0
    End If
 Next Thg
End Sub
 
Lần chỉnh sửa cuối:
BÀI 5D: NHẬT KÝ BÁN MẶT HÀNG TRONG NĂM.

Trong file đính kèm là cách thống kê các fiếumua một mặt hàng nào đó trong năm
 

File đính kèm

  • GPE.rar
    63.2 KB · Đọc: 140
Web KT
Back
Top Bottom