You are on page 1of 48

Đặt tên sổ:

b1- Chọn (bôi đen) vùng gồm cả dòng tiêu đề


b2- Nhấn CTRL+F3 (Insert\Name\Define Name…).
Trong mục "Names in workbook", gõ tên cần đặt.

BẠN CẦN PHẢI CÀI A-TOOLS TRƯỚC KHI XEM CÁC VÍ DỤ


Lưu ý: Bạn không nên thực hành các ví dụ ngay tại sheet này.
Bạn copy (CTRL+C) các công thức tại các ví dụ và dán (CTRL+V) sang sheet "Thực hành

(*) Để tạo công thức với hàm BS_SQL có thể sử dụng chức năng "SQL Builder" trên thanh công c

BS_SQL: Hàm truy vấn dữ liệu, kết quả trả về là một mảng giá trị dạng bảng (table)
Cấu trúc hàm: BS_SQL(SQL [,OPTIONS])
Trong đó:
+ SQL : Là một chuỗi khai báo câu lệnh truy vấn (SQL). SQL là một ngôn ngữ truy vấn CSDL như trong Acces
http://vi.wikipedia.org/wiki/Select_(SQL)

SELECT [DISTINCT] [TOP n] select_list FROM table_source [ WHERE search_condition ]


[ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC |

Các từ có màu xanh đậm là từ khoá, khi viết câu lệnh SQL phải đảm bảo thứ tự trước sau của các từ khoá.
Những khai báo nằm trong ngoặc vuông ([ ]) có thể dùng hoặc không - tuỳ chọn.

select_list: Danh sách các cột trong bảng dữ liệu "table_source", cũng có thể là danh sách các giá trị
---> Để đổi tên cột, đăt AS [Tên cột] ngay sau cột muốn đổi
---> Nếu lấy tất cả các cột trong "table_source" dùng ký tự *
table_source: là một bảng hay danh sách bảng dữ liệu. Nếu là danh sách thì các bảng cách nhau bởi dấu phả
Ví dụ 1 Chọn tất cả các cột từ sổ NKC
Công thức=BS_SQL("SELECT * FROM NKC")

Ví dụ 2 Chọn 10 dòng đầu của tất cả các cột từ sổ NKC


Công thức=BS_SQL("SELECT TOP 10 * FROM NKC")

Ví dụ 3 Chọn danh sách chứng từ duy nhất từ sổ NKC


Công thức=BS_SQL("SELECT DISTINCT SO_CT FROM NKC")

FROM table_source
table_source: Bảng dữ liệu nguồn chứa các thông tin cần trích lọc, nó có thể là m
Nếu thông tin cần tìm hay để tính toán có từ nhiều sổ thì table_source là n
Các phương thức kết hợp:
INNER JOIN Ví dụ SELECT…
(*) Theo phương thức INNER JOIN
search_condition phải chỉ ra biể
Ví dụ SELECT…

LEFT JOIN Ví dụ SELECT…


RIGHT JOIN Ví dụ SELECT…
FULL JOIN Ví dụ SELECT…

---> Khi lập một bảng mà các cột dữ liệu được lấy từ các table khác nhau thì ph
Tổng quát là [TÊN BẢNG].[TÊN CỘT]
Ví dụ Lập sổ gồm các cột: Tên khách hàng, Số tiền. Dữ liệu được lấy từ 2
Công thức=BS_SQL("SELECT dmkh.ten, nkc.thanh_tien FROM
Công thức=BS_SQL("SELECT dmkh.ten, nkc.thanh_tien FROM

(*) Quan hệ CSDL Có thể lập một sổ mà các cột được nhận từ nhiều sổ khác nhau, các sổ này
Bạn hãy nhìn vào sổ NKC và các sổ danh mục (DM%). Cột MA trong các sổ
Các quan hệ như sau:
NKC.MA_KH = DMKH.MA_KH
NKC.MA_NB = DMNB.MA_NB
NKC.MA_NV = DMNV.MA_NV
NKC.NOTK = DMTK.MA
NKC.COTK = DMTK.MA
KHO.MA_VLSPHH = DMVLSPHH
NKC.SO_CT = KHO.SO_CT

Một trường ở tableA quan hệ với một trường ở tableB là chúng cùn
Để hiểu rõ hơn về LEFT JOIN, RIGHT JOIN, FULL JOIN tìm đọc các
(*) http://en.wikipedia.org/wiki/Join_(SQL)
http://msdn2.microsoft.com/en-us/library/aa258869(SQL.80).aspx

WHERE search_condition
search_condition: là điều kiện để truy vấn dữ liệu. Giá trị được so sánh trong điều kiện, nếu là văn bản th
Các toán tử so sánh là: > , >= , < , <= , <> , = , LIKE , IN, BETWEEN
Khi so sánh tập ký tự bất kỳ ta dùng ký tự % , ký tự này dùng với toán tử
Cách thức dùng LIKE tôi sẽ hướng dẫn cách sử dụng trong phần nâng cao.
Toán tử kết hợp logic: AND , OR , NOT

Ví dụ 4 Chọn tất cả các cột từ sổ NKC ở đó mã khách hàng (MA_KH) là KH


Công thức=BS_SQL("SELECT * FROM NKC WHERE MA_KH='KH00

Ví dụ 5 Chọn các cột SO_CT, NGAY_CT, DIEN_GIAI, THANH_TIEN từ sổ N


Công thức=BS_SQL("SELECT SO_CT, NGAY_CT, DIEN_GIAI, NOTK

Ví dụ 6 Chọn các cột SO_CT, NGAY_CT, DIEN_GIAI, THANH_TIEN từ sổ N


Công thức=BS_SQL("SELECT SO_CT, NGAY_CT, DIEN_GIAI, NOTK

Trong search_condition , bạn có thể sử dụng IN (tập danh sách giá trị) để
Sau IN ta có thể là một bảng dữ liệu hay kết của một câu truy vấn SQL

Ví dụ 7 Chọn tất cả các cột từ sổ KHO ở đó mã hàng (MA_VLSPHH)


Công thức=BS_SQL("SELECT * FROM KHO WHERE MA_VLSPHH

Kết nối các table


Ví dụ 8 Lập một sổ mà gồm có: Mã KH, Tên KH, NOTK, COTK, THANH_TIEN
Ta thấy Mã KH, NOTK, COTK, THANH_TIEN có trong sổ NKC còn Tên KH ch
Vì vậy, ta phải liên kết chúng lại và đặt quan hệ giữa NKC và DMKH sau mệ

Công thức=BS_SQL("SELECT NKC.MA_KH, DMKH.TEN, NKC.NOTK,

Ví dụ 9 Vẫn theo ví dụ 8, thêm điều kiện là NOTK có ký tự đầu là 131


Công thức=BS_SQL("SELECT NKC.MA_KH, DMKH.TEN, NKC.NOTK,

Ví dụ 10 Lập một sổ thông tin về phiếu nhập kho (LOAI_PHIEU='N' ) gồm có: Mã hà
Công thức=BS_SQL("SELECT KHO.MA_VLSPHH, DMVLSPHH.TEN, K

GROUP BY group_by_expression: Được dùng khi bạn thông kê theo nhóm đối tượng
group_by_expression: Là danh sách các cột được nhóm, các cột được ngăn cách nhau bởi dấu p

---> Các hàm dùng để thống kê gồm SUM , COUNT , AVG , MIN , MAX
---> Ví dụ: SUM(THANH_TIEN)

Ví dụ 11 Lập sổ gồm các cột: MA_KH, Tổng tiền mà NOTK là 131 (tổng hợp số tiền c
Công thức=BS_SQL("SELECT MA_KH, SUM(THANH_TIEN) AS [Tổn

Ví dụ 12 Lập sổ gồm các cột: MA_VLSPHH, Tổng số lượng SUM(SLG) tên cột là [Tổn
Công thức=BS_SQL("SELECT MA_VLSPHH, SUM(SLG) AS [Tổng SL

Ví dụ 13 Yêu cầu như Ví dụ 10, nhưng cột SLG được tính tổng và có tên là [Tổng]
Công thức=BS_SQL("SELECT KHO.MA_VLSPHH, DMVLSPHH.TEN, K

Ví dụ Lập danh sách gồm mã khách hàng với số tiền phát sinh lớn nhất, điều kiện
Công thức=BS_SQL("SELECT MA_KH, Max(THANH_TIEN) FROM N

Ví dụ Xem thông tin của 3 khách hàng trong DMKH, mà có phát sinh số tiền lớn n
(Mã khách hàng có trong danh sách 3 người có phát sinh số tiền lớn
Công thức=BS_SQL("SELECT * FROM DMKH WHERE MA_KH IN
(SELECT TOP 3 MA_KH FROM NKC WHERE COTK LIKE '511%' GRO

Lưu ý: Các cột sau mệnh đề GROUP BY là tất cả các cột được liệt kê sau m
(*)---> trừ những cột được thống kê bằng các hàm thống kê như: SUM,COUNT,….

HAVING search_condition
search_condition: là điều kiện để truy vấn dữ liệu giống như dùng với từ khoá WHERE nhưng câu điều k
Sử dụng khai bao HAVING thường đi kế sau với khai báo GROUP BY

Ví dụ: Lập danh sách các mã khách hàng mà có tổng số tiền > 30000000 và 3 ký
Công thức=BS_SQL("SELECT MA_KH, SUM(THANH_TIEN) FROM N
GROUP BY MA_KH
HAVING SUM(THANH_TIEN)>30000000")

Ví dụ: Lập danh sách các mã hàng có số lần nhập > 4


Công thức=BS_SQL("SELECT MA_VLSPHH, count(ma_vlsphh)
FROM KHO
WHERE LOAI_PHIEU = 'N'
GROUP BY MA_VLSPHH
HAVING COUNT(MA_VLSPHH)>4")

Ví dụ: Xem thông tin của các hàng hoá trong DMVLSPHH, mà mã hàng
Công thức=BS_SQL("SELECT * FROM DMVLSPHH WHERE MA_VLS
(SELECT MA_VLSPHH FROM KHO WHERE LOAI_PHIEU = 'N' GROU

ORDER BY order_expression [ ASC | DESC ]


Mệnh đề này cho phép sắp xếp theo các cột tăng dần (ASC) hoặc giảm dần (DESC), ngầm đình
order_expression: Là danh sách cột được sắp xếp, cột nào đứng trước thì được xếp trước, các c
Có thể không cần chỉ ra tên cột, thay vào đó ta chỉ vị trí cột trong

Ví dụ 14 Chọn tất cả các cột từ sổ NKC sắp xếp theo cột NGAY_CT và SO_CT
Công thức=BS_SQL("SELECT * FROM NKC ORDER BY NGAY_CT, S

Ví dụ 15 Chọn tất cả các cột từ sổ NKC sắp xếp giảm dần theo cột THANH_T
Công thức=BS_SQL("SELECT * FROM NKC ORDER BY THANH_TIEN

+ OPTIONS: Là tham số tuỳ chọn (có thể không có), tham số này là một chuỗi, cho phép khai báo thêm các th
các tham số được ngăn cách nhau bởi dấu chấm phảy (;)
Các tham số trong OPTIONS gồm có như sau:
DBKEY Cú pháp DBKEY = dbkeyValue
DBKEY : Là tham số khai báo kết nối với CSDL bên ngoài thông qua giá trị
Nếu không khai báo tham số này, ngầm định hàm BS_SQL lấy dữ liệu từ w
(*)---> Để tạo dbkeyValue bạn vào menu "A-Tools->Cơ sở dữ liệu (CSDL) ->Thiết
HR Cú pháp HR=YES|NO
Nếu là YES (ngầm định), kết quả bảng dữ liệu có dòng tiêu đề, NO thì khôn
Nếu không khai báo tham số này, ngầm định hàm BS_SQL đặt HR=YES

NAME Cú pháp NAME = Tên vùng


Cho phép đặt tên vùng kết quả theo tên được khai báo. Bình thường trong

INSERT Cú pháp INSERT=YES|NO


Nếu là YES, bảng kết quả được chèn vào ô hiện thời (các dữ liệu đứng sau
Nếu không khai báo tham số này, ngầm định hàm BS_SQL đặt INSERT=NO
Khi tạo báo cáo bắt buộc phải đặt INSERT=YES . Mỗi sheet chỉ nên có một

Ví dụ 16 Chọn tất cả các cột


file có tên Examble.mdb đã đượ

Công thức=BS_SQL("

Ví dụ 17 Chọn tất cả các cột


Công thức=BS_SQL("

Ví dụ 18 Tương tự như Ví dụ 17, nhưng d


Công thức=BS_SQL("

AUTONAMES Cấu trúc hàm AUTONAMES([Tên vùng] [,Chuỗi mẫu])


Hàm AUTONAMES tự động tạo Name (tên vùng) cho các cột dữ liệu trong
Tên vùng: là tên bảng kết quả sẽ được đặt tên. Tham số này thể kha
Chuỗi mẫu: Tên các cột dữ liệu sẽ được đặt với tên bắt đầu bởi "Chuỗ
Ví dụ Chọn các cột NGAY_CT, NOTK, COTK, THANH_TIEN từ sổ NKC. Bảng kết q
các cột được đặt tự động với tên bắt đầu là "NK_" .
Công thức=BS_SQL("SELECT NGAY_CT, NOTK, COTK, THANH_TIEN

Vẫn ví dụ trên nhưng tên các cột được đặt tự động


Công thức=BS_SQL("SELECT NGAY_CT, NOTK, COTK, THANH_TIEN

Nhấn CTRL + F3 để kiểm tra các tên đã được đặt. Khi vùng dữ liệu thay đổ
SERVERSOURCE Truy vấn dữ liệu từ máy chủ
Cú pháp: SERVERSOURCE=YES|NO
Để chạy tham số này thì máy chủ A-Tools phải đang mở. Nếu máy chủ A-T
Thực hiện các việc nạp CSDL Excel để chia sẻ và thiết lập các tham số cần
Ví dụ Tại máy khách chạy công thức=bs_sql("SELECT * FROM KHO", "SERVE

(*) VBA Có thể khai báo (lập trình VBA) để chạy các sự kiện trong tham số OPTIONS như sau

OnBeforeUpdate = DoBeforeUpdate - Cho phép chạy một macro trước k


Trong môi trường lập trình (VBE), viết thủ tục "DoBeforeUpdate" trong một
Sub DoBeforeUpdate(ByVal OldDataTable As Range, ByVal NewDataTable A
'Có thể đổi tên thủ tục
End Sub

OnAfterUpdate = DoAfterUpdate - Cho phép chạy một macro sau khi dữ


Trong môi trường lập trình (VBE), viết thủ tục "DoAfterUpdate" trong một m
Sub DoAfterUpdate(ByVal DataTable As Range)
'Có thể đổi tên thủ tục
End Sub

OnDblClick = DoDblClick - Cho phép chạy một macro khi nhấp đúp chuột
Trong môi trường lập trình (VBE), viết thủ tục "DoDblClick" trong một mod
Sub DoDblClick(ByVal DataTable As Range, ByVal Row As Integer, ByVal Co
'Có thể đổi tên thủ tục
End Sub

OnSelectionChange = DoSelectionChange - Cho phép chạy một macro k


Trong môi trường lập trình (VBE), viết thủ tục "DoSelectionChange" trong m
Sub DoSelectionChange(ByVal DataTable As Range, ByVal Row As Integer,
'Có thể đổi tên thủ tục
End Sub

OnGetValue = GetValue - Cho phép chạy một macro (hàm) để thay đổi g
Trong môi trường lập trình (VBE), viết hàm "GetValue" trong một module t
Function GetValue(ByVal DataArray, ByVal Row As Integer, ByVal Column A
'Có thể đổi tên hàm
'GetValue = NewValue
End Function

DataTable: Là vùng dữ liệu trên sheet, ở đó chứa giá trị của hàm BS_SQL,
DataArray: Là mảng (2 chiều R:C) , ở đó chứa giá trị của hàm BS_SQL tron
Row, Column: Là dòng, cột của DataTable hoặc DataArray
OldDataTable: Là vùng dữ liệu cũ trên sheet (được tạo từ công thức cũ)
NewDataTable: Là vùng dữ liệu mới trên sheet (được tạo từ công thức mới

Xem các ví dụ trong file "Report 3 So ke toan A-Tools VBA.xls"

Kế toán: Ứng dụng hàm VTC (Values To Columns)

VÍ dụ 19 Lập bảng tổng hợp đối ứng TKNO và TKCO


Công thức=BS_SQL("SELECT NOTK, VTC(COTK,SUM,THANH_TIEN

VÍ dụ 20 Lập bảng tập hợp chi phí theo các tài khoản
Công thức=BS_SQL("SELECT NOTK, VTC(COTK,SUM,THANH_TIEN

New VTC(ColumnName,Func,ColumnCalc,[FormatDate])
ColumnName: Tên cột mà các g
Func: Tên hàm dùng để tính (SU
ColumnCalc:Tên cột được tính g
cột này phải là kiểu số.
FormatDate: Là định dạng ngày
nếu kiểu của ColumnName
Nếu ColumnName là kiểu Date m

New FieldIf(search_condition,ValueTrue,[ValueFalse],[Func])
search_condition: Là biểu thức
ValueTrue:Là giá trị nếu kết quả
ValueFalse:Là giá trị nếu kết qu
Func: Tên hàm dùng để tính (SU
Ứng dụng hàm FieldIf - Minh hoạ trong Sheet "N-X-T"
VÍ dụ 21 Lập bảng tổng hợp NHẬP-XUẤT-TỒN gồm các cột: VLSPH, NHAP, XUAT, TO
Công thức=BS_SQL("SELECT MA_VLSPHH, FieldIf(LOAI_PHIEU='N

VÍ dụ 22 Lập bảng tổng hợp NHẬP-XUẤT-TỒN gồm các cột: MÃ,TÊN,ĐVT, NHẬP, XU
Công thức=BS_SQL("SELECT H.MA_VLSPHH,H.TEN,H.DVi, FieldIf(
(cách làm ví dụ 22 là, gán mã tên KHO có mã là K và tên DMVLSPHH là H (

Ứng dụng hàm VTC - Lập các sổ KHO - Minh hoạ trong Sheet "N-X-T"

Ví dụ 23 Lập bảng tổng hợp số lượng các hàng hoá xuất kho (bán) cho các khách hà
Công thức=BS_SQL("SELECT MA_VLSPHH,SUM(SLG) AS [TỔNG XU

VÍ dụ 24 Tương tự như Ví dụ 23 nhưng chỉ là xuất bán, hiện mã và tên khách hàng.
Công thức=BS_SQL("SELECT K.MA_VLSPHH,SUM(K.SLG) AS [TỔN

VÍ dụ 25 Lập bảng tổng hợp số lượng các hàng hoá xuất kho theo từng ngày. Dữ liệ
Công thức=BS_SQL("SELECT MA_VLSPHH,SUM(SLG) AS [TỔNG XU

Kết hợp hàm FieldIf và VTC


VÍ dụ 26 Lập sổ tổng hợp N-X-T, thông tin lấy từ 3 sổ: KHO, DMVLSPHH, DMKH

Công thức=BS_SQL("SELECT H.MA_VLSPHH,H.TEN,H.DVi, FieldIf(K.LOAI_P


(NHẬP-XUẤT) AS TỒN, VTC(KH.TEN,SUM,K.SLG)
FROM KHO K,DMVLSPHH H, DMKH KH
WHERE K.MA_VLSPHH=H.MA_VLSPHH AND K.MA_KH=KH.MA_KH
GROUP BY H.MA_VLSPHH,H.TEN,H.DVi")

(*) Lưu ý:
Có thể kết hợp thêm các hàm trong khai báo SQL (phối hợp cùng các hàm CSDL trong A-Tools)
Xem ví dụ trong file: "Bai 2 - Cac ham ho tro nhom ham Database Functions.xls"
Nếu chuỗi tham số SQL trong hàm BS_SQL dài, người dùng nên ngắt và ghép chuỗi lại với nhau
Ví dụ: BS_SQL("SELECT * FROM NKC WHERE MA_KH='KH001' ")
Đổi thành BS_SQL("SELECT * FROM NKC " & "WHERE MA_KH='KH001' ")
Các hàm trong A-Tools, ưu điểm lớn nhất là xử lý trên nhiều loại cơ sở d
ổn định và chính xác tuyệt đối !

Các hàm và các Lệnh khác mời các bạn đọc thêm trên website
Chúc các bạn thành công!

Tác giả: Nguyễn Duy T

Các bài viết hướng dẫn luôn được cập nhật tại địa chỉ dưới đây:
http://www.bluesofts.net/Products/AddIns/A-Tools/Index.htm
Để học ngôn ngữ SQL, bạn có thể xem và download tài liệu theo các địa chỉ dưới đây:
http://www.bluesofts.net/Books/Hoc SQL co ban.zip
http://www.w3schools.com/sql/sql_intro.asp
Functions http://www.w3schools.com/sql/sql_functions.asp
"Thực hành", sau đó chỉ cần xoá cụm từ "Công thức" là chạy.

er" trên thanh công cụ hoặc trong menu!

ấn CSDL như trong Access, Foxpro, dBASE, SQLServer, Oracle…

ndition ]
der_expression [ ASC | DESC ] ]

ớc sau của các từ khoá.

sách các giá trị

g cách nhau bởi dấu phảy (,).

CT FROM NKC")

rích lọc, nó có thể là một Name trỏ tới một vùng dữ liệu.
sổ thì table_source là nguồn dữ liệu được kết hợp từ nhiều table,

SELECT…FROM nkc INNER JOIN dmkh ON nkc.ma_kh = dmkh.ma_kh


hương thức INNER JOIN, các table quan hệ có thể được liệt kê trong table_source ngăn cách bởi dấu phảy ( , ) table1, table2
_condition phải chỉ ra biểu thức quan hệ giữa các khoá của các table (table1.keyA = table2.keyA)
SELECT…FROM nkc, dmkh WHERE (nkc.ma_kh = dmkh.ma_kh) AND...

SELECT…FROM nkc LEFT JOIN dmkh ON nkc.ma_kh = dmkh.ma_kh


SELECT…FROM nkc RIGHT JOIN dmkh ON nkc.ma_kh = dmkh.ma_kh
SELECT…FROM nkc FULL JOIN dmkh ON nkc.ma_kh = dmkh.ma_kh

ác table khác nhau thì phải chỉ thị tên table đứng trước.
. Dữ liệu được lấy từ 2 sổ NKC (THANH_TIEN) và DMKH (Ten).
thanh_tien FROM nkc INNER JOIN dmkh ON nkc.ma_kh = dmkh.ma_kh")
thanh_tien FROM nkc, dmkh WHERE nkc.ma_kh = dmkh.ma_kh")

sổ khác nhau, các sổ này được liên kết với nhau thông qua một trường (Field) có quan hệ.
%). Cột MA trong các sổ danh mục chính là khoá liên kết với sổ NKC, sổ KHO cũng vậy.

A_KH = DMKH.MA_KH
A_NB = DMNB.MA_NB
A_NV = DMNV.MA_NV
OTK = DMTK.MA
OTK = DMTK.MA
A_VLSPHH = DMVLSPHH.MA_VLSPHH
O_CT = KHO.SO_CT

ở tableB là chúng cùng chứa chung một loại thông tin.


ULL JOIN tìm đọc các tài liệu hướng dẫn ngôn ngữ T-SQL.

69(SQL.80).aspx

ều kiện, nếu là văn bản thì phải đặt trong dấu nháy đơn ( ' ) , không như Excel.
, LIKE , IN, BETWEEN
tự này dùng với toán tử là LIKE
ng trong phần nâng cao.

hàng (MA_KH) là KH001


HERE MA_KH='KH001' ")

THANH_TIEN từ sổ NKC ở đó ký tự đầu của NOTK là 6


CT, DIEN_GIAI, NOTK, COTK, THANH_TIEN FROM NKC WHERE NOTK LIKE '6%' ")

THANH_TIEN từ sổ NKC ở đó ký tự đầu của cột NOTK là 6 và COTK có ký tự đầu là 3


CT, DIEN_GIAI, NOTK, COTK, THANH_TIEN FROM NKC WHERE NOTK LIKE '6%' AND NOTK LIKE '3%' ")

ập danh sách giá trị) để truy vấn


một câu truy vấn SQL

A_VLSPHH) có trong danh sách mã có loại (DMVLSPHH.LOAI) là VL và của các phiếu nhập
WHERE MA_VLSPHH IN (SELECT MA_VLSPHH FROM DMVLSPHH WHERE LOAI = 'VL') AND LOAI_PHIEU = 'N' ")
OTK, THANH_TIEN
ng sổ NKC còn Tên KH chỉ có trong DMKH.
ữa NKC và DMKH sau mệnh đề WHERE. Quan hệ là NKC.MA_KH = DMKH.MA_KH

MKH.TEN, NKC.NOTK, NKC.COTK, NKC.THANH_TIEN FROM NKC, DMKH WHERE NKC.MA_KH=DMKH.MA_KH")

đầu là 131
MKH.TEN, NKC.NOTK, NKC.COTK, NKC.THANH_TIEN FROM NKC, DMKH WHERE NKC.MA_KH=DMKH.MA_KH AND

IEU='N' ) gồm có: Mã hàng, Tên hàng, loại phiếu, Số lượng


HH, DMVLSPHH.TEN, KHO.LOAI_PHIEU, KHO.SLG FROM KHO, DMVLSPHH WHERE KHO.MA_VLSPHH=DMVLSPHH

ngăn cách nhau bởi dấu phảy (,)

à 131 (tổng hợp số tiền cho từng khách hàng mà phát sinh Nợ TK =131)
HANH_TIEN) AS [Tổng tiền] FROM NKC WHERE NOTK LIKE '131%' GROUP BY MA_KH")

SUM(SLG) tên cột là [Tổng SLG] mà LOAI_PHIEU là nhập (N)


UM(SLG) AS [Tổng SLG] FROM KHO WHERE LOAI_PHIEU LIKE 'N' GROUP BY MA_VLSPHH")

ng và có tên là [Tổng]
HH, DMVLSPHH.TEN, KHO.LOAI_PHIEU, SUM(KHO.SLG) AS [Tổng] FROM KHO, DMVLSPHH WHERE KHO.MA_VLS

át sinh lớn nhất, điều kiện 3 ký tự đầu của COTK là 511, sắp xếp theo số tiền giảm dần.
HANH_TIEN) FROM NKC WHERE COTK LIKE '511%' GROUP BY MA_KH ORDER BY Max(THANH_TIEN) DESC")

có phát sinh số tiền lớn nhất (trong sổ NKC, COTK LIKE '511%').
ó phát sinh số tiền lớn nhất trong sổ NKC)
WHERE MA_KH IN
OTK LIKE '511%' GROUP BY MA_KH ORDER BY Max(THANH_TIEN) DESC)")

các cột được liệt kê sau mệnh đề SELECT (select_list)


kê như: SUM,COUNT,….

WHERE nhưng câu điều kiện có sử dụng các hàm thống kê SUM, COUNT, MIN,MAX, AVG, …
hai báo GROUP BY

iền > 30000000 và 3 ký tự đầu của mã TK là 131 từ sổ NKC


HANH_TIEN) FROM NKC WHERE NOTK LIKE '131%'

EN)>30000000")

ount(ma_vlsphh)

, mà mã hàng có trong danh sách những hàng hoá có số lần nhập (trong sổ KHO) > 4
SPHH WHERE MA_VLSPHH IN
AI_PHIEU = 'N' GROUP BY MA_VLSPHH HAVING COUNT(MA_VLSPHH)>4)")

dần (DESC), ngầm đình là tăng dần.


thì được xếp trước, các cột được cách nhau bởi dấu phảy (,).
vị trí cột trong select_list.

ột NGAY_CT và SO_CT
RDER BY NGAY_CT, SO_CT ")

dần theo cột THANH_TIEN


RDER BY THANH_TIEN DESC ")

hép khai báo thêm các tham số cho hàm,

ngoài thông qua giá trị dbkeyValue


BS_SQL lấy dữ liệu từ workbook đang làm việc.
ở dữ liệu (CSDL) ->Thiết lập CSDL DBKEY"

dòng tiêu đề, NO thì không có.


BS_SQL đặt HR=YES

báo. Bình thường trong Excel ta phải làm: chọn (bôi đen) vung, nhấn CTRL+F3 và tạo tên.

ời (các dữ liệu đứng sau sẽ bị đẩy xuống), NO thì bảng kết quả được ghi đè lên vùng dữ liệu.
BS_SQL đặt INSERT=NO
Mỗi sheet chỉ nên có một báo cáo!

ất cả các cột từ sổ NKC. Cơ sở dữ liệu lấy từ file Access,


ên Examble.mdb đã được kết nối và có dbkeyValue là MDB

hức=BS_SQL("SELECT * FROM NKC" , "DBKEY=MDB")

ất cả các cột từ sổ NKC. Tên vùng kết quả là DATA, không có dòng tiêu đề
hức=BS_SQL("SELECT * FROM NKC" , "HR=NO;NAME=DATA")

tự như Ví dụ 17, nhưng dữ liệu được lấy bên Access, có khoá kết nối là MDB
hức=BS_SQL("SELECT * FROM NKC" , "HR=NO;NAME=DATA; DBKEY = MDB")

ho các cột dữ liệu trong bảng kết quả


ên. Tham số này thể khai báo hoặc không.
với tên bắt đầu bởi "Chuỗi mẫu". Tham số này có thể khai báo hoặc không.
N từ sổ NKC. Bảng kết quả được đặt tên là DULIEU,

, COTK, THANH_TIEN FROM NKC" , "AUTONAMES(DULIEU, NK_ );")

, COTK, THANH_TIEN FROM NKC" , "AUTONAMES();")

Khi vùng dữ liệu thay đổi, công thức thay đổi thì các Name cũng thay đổi vừa với vùng DL.

ng mở. Nếu máy chủ A-Tools chưa chạy, vào menu A-Tools chạy “Start Server”/”Tạo máy chủ”.
hiết lập các tham số cần thiết.
T * FROM KHO", "SERVERSOURCE=YES")

số OPTIONS như sau:

chạy một macro trước khi cập nhật dữ liệu vào bảng tính
BeforeUpdate" trong một module theo cấu trúc sau
e, ByVal NewDataTable As Range, ByVal DataArray)

y một macro sau khi dữ liệu được cập nhật


AfterUpdate" trong một module theo cấu trúc sau
acro khi nhấp đúp chuột vào vùng dữ liệu (có hàm BS_SQL)
DblClick" trong một module theo cấu trúc sau
Row As Integer, ByVal Column As Integer)

phép chạy một macro khi con trỏ ô di chuyển trong vùng dữ liệu (có hàm BS_SQL)
SelectionChange" trong một module theo cấu trúc sau
e, ByVal Row As Integer, ByVal Column As Integer)

acro (hàm) để thay đổi giá trị trong quá trình nhận dữ liệu từ kết quả truy vấn SQL.
lue" trong một module theo cấu trúc sau
Integer, ByVal Column As Integer, ByVal Value As Variant)

giá trị của hàm BS_SQL, dòng (Row) và cột (Column) nhận giá trị từ 1
trị của hàm BS_SQL trong bộ nhớ, dòng (Row) và cột (Column) của mảng nhận giá trị từ 0

tạo từ công thức cũ)


ược tạo từ công thức mới)

n A-Tools VBA.xls"

TK,SUM,THANH_TIEN) FROM NKC GROUP BY NOTK")

TK,SUM,THANH_TIEN) FROM NKC WHERE NOTK LIKE '6%' OR NOTK LIKE '8%' GROUP BY NOTK")

Name: Tên cột mà các giá trị của nó làm tiêu thức, điều kiện để tính
ên hàm dùng để tính (SUM, COUNT, MIN, MAX, AVG)
Calc:Tên cột được tính giá trị theo hàm khai báo ở Func,
y phải là kiểu số.
Date: Là định dạng ngày. Có thể bỏ qua tham số này,
u của ColumnName không phải là kiểu Date, hoặc là kiểu Date nhưng dữ liệu đang ở dạng mm/dd/yy.
lumnName là kiểu Date mà dữ liệu nhập không phải ở dạng mm/dd/yy thì FormatDate phải là mm/dd/yy

lse],[Func])
_condition: Là biểu thức logic, cách dùng như sau mệnh đề WHERE
ue:Là giá trị nếu kết quả của search_condition là đúng (True), ValueTrue có thể là tên cột trong table_source.
alse:Là giá trị nếu kết quả của search_condition là sai (False), ValueFalse có thể là tên cột trong table_source.
ên hàm dùng để tính (SUM, COUNT, MIN, MAX, AVG)

VLSPH, NHAP, XUAT, TON. Dữ liệu được lấy từ sổ KHO


ieldIf(LOAI_PHIEU='N',SLG,0,SUM) AS NHAP, FieldIf(LOAI_PHIEU='X',SLG,0,SUM) AS XUAT,(NHAP-XUAT) AS T

MÃ,TÊN,ĐVT, NHẬP, XUẤT, TỒN. Dữ liệu được lấy từ sổ KHO


,H.TEN,H.DVi, FieldIf(K.LOAI_PHIEU='N',K.SLG,0,SUM) AS NHAP, FieldIf(K.LOAI_PHIEU='X',K.SLG,0,SUM) AS X
và tên DMVLSPHH là H (FROM KHO K,DMVLSPHH H). Như vậy, địa chỉ các cột sẽ ngắn gọn hơn)

o (bán) cho các khách hàng, xuất trả lại người bán (NB%). Dữ liệu được lấy từ sổ KHO
UM(SLG) AS [TỔNG XUẤT], VTC(MA_KH,SUM,SLG) FROM KHO GROUP BY MA_VLSPHH")

n mã và tên khách hàng. Dữ liệu được lấy từ sổ KHO


SUM(K.SLG) AS [TỔNG XUẤT], VTC(KH.MA+':'+KH.TEN,SUM,K.SLG) FROM KHO K, DMKH KH WHERE K.MA_KH=

o theo từng ngày. Dữ liệu được lấy từ sổ KHO


UM(SLG) AS [TỔNG XUẤT], VTC(NGAY_CT,SUM,SLG,MM/DD/YY) FROM KHO WHERE LOAI_PHIEU='X' GROUP B

, DMVLSPHH, DMKH

N,H.DVi, FieldIf(K.LOAI_PHIEU='N',K.SLG,0,SUM) AS NHẬP, FieldIf(K.LOAI_PHIEU='X',K.SLG,0,SUM) AS XUẤT,

_KH=KH.MA_KH

àm CSDL trong A-Tools) như: RECNO, CELL, RANGE, DATA, GetOnce, FORMULA
Functions.xls"
à ghép chuỗi lại với nhau.
H='KH001' ")
MA_KH='KH001' ")
lý trên nhiều loại cơ sở dữ liệu, với khối dữ liệu lớn đảm bảo tốc độ nhanh,

rên website www.bluesofts.net


ác bạn thành công!

Tác giả: Nguyễn Duy Tuân

/Index.htm
a chỉ dưới đây:
p
n cách bởi dấu phảy ( , ) table1, table2,..., khi đó
6%' AND NOTK LIKE '3%' ")

I = 'VL') AND LOAI_PHIEU = 'N' ")


ERE NKC.MA_KH=DMKH.MA_KH")

ERE NKC.MA_KH=DMKH.MA_KH AND (NKC.NOTK LIKE '131%') ")

HERE KHO.MA_VLSPHH=DMVLSPHH.MA_VLSPHH AND (KHO.LOAI_PHIEU LIKE 'N') ")

BY MA_KH")

Y MA_VLSPHH")

O, DMVLSPHH WHERE KHO.MA_VLSPHH=DMVLSPHH.MA_VLSPHH AND (KHO.LOAI_PHIEU LIKE 'N') GROUP BY

ER BY Max(THANH_TIEN) DESC")
8%' GROUP BY NOTK")
dạng mm/dd/yy.
phải là mm/dd/yy

n cột trong table_source.


cột trong table_source.

0,SUM) AS XUAT,(NHAP-XUAT) AS TON FROM KHO GROUP BY MA_VLSPHH")

OAI_PHIEU='X',K.SLG,0,SUM) AS XUAT,(NHAP-XUAT) AS TON FROM KHO K,DMVLSPHH H WHERE K.MA_VLSPH

A_VLSPHH")

KHO K, DMKH KH WHERE K.MA_KH=KH.MA AND K.LOAI_PHIEU='X' GROUP BY K.MA_VLSPHH")

WHERE LOAI_PHIEU='X' GROUP BY MA_VLSPHH")

K.SLG,0,SUM) AS XUẤT,
_PHIEU LIKE 'N') GROUP BY KHO.MA_VLSPHH, DMVLSPHH.TEN, KHO.LOAI_PHIEU")
PHH H WHERE K.MA_VLSPHH=H.MA GROUP BY H.MA_VLSPHH,H.TEN,H.DVi")

A_VLSPHH")
LƯU Ý
Hãy copy công thức từ các sheet hướng dẫn và dán vào sheet này.
Trước khi dán, bạn nên xoá tất cả vùng dữ liệu.
Là công thức mảng ({Công thức}), để sửa và kết thúc nhấn CTRL+SHIFT+ENTER
Để xoá công thức mảng, chọn toàn bộ vùng công thức rồi nhấn phím DELETE

Hãy đặt công thức dưới đây:


Ví dụ=BS_SQL("SELECT * FROM kho")
Ví dụ về hàm AutoNames() trong tham số Options #ADDIN?
#ADDIN?
Loại phiếu: X
Công thức tự động tạo các tên (Names): KHONX, KHONX_SO_CT, KHONX_NGAY_CT, KHONX_MA_VLSPHH,…
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? ### #ADDIN? #ADDIN? #ADDIN?
Dùng các Names để lập công thức Excel
X_MA_VLSPHH,…
Mã hàng Tên hàng Tổng Slg X Tổng giá trị X
HH001 Máy tính ĐNA L1 0 -
HH002 Máy tính ĐNA L2 0 -
HH003 Máy in HP 1200 0 -
HH004 Máy in HP 1300 0 -
HH005 Dầu A 0 -
HH006 Dầu B 0 -
BO Bò xào nướng 0 -
LB Lẩu bò 0 -
BE Bê 0 -
BTC Bê tái chanh 0 -
BM Bò mông 0 -
BE1 Bê 0 -
-
CÁC VÍ DỤ VỀ BÁO CÁO KHO

Lập bảng tổng hợp NHẬP-XUẤT-TỒN gồm các cột: VLSPH, NHAP, XUAT, TON. Dữ liệu được lấy từ sổ
Ví dụ 20 KHO
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN?

Lập bảng tổng hợp số lượng các hàng hoá xuất kho (bán) cho các khách hàng, xuất trả lại
Ví dụ 23 người bán (NB%). Dữ liệu được lấy từ sổ KHO

#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?


#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

Lập bảng tổng hợp số lượng các hàng hoá xuất kho theo từng ngày. Dữ liệu được lấy từ sổ
Ví dụ 25 KHO
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

Ví dụ 26: Lập sổ tổng hợp N-X-T, thông tin lấy từ 3 sổ: KHO, DMVLSPHH, DMKH

SELECT H.MA_VLSPHH,H.TEN,H.DVi, FieldIf(K.LOAI_PHIEU='N',K.SLG,0,SUM) AS NHẬP, FieldIf(K.LOAI_PHIEU='X',K.SLG,0


XUẤT,(NHẬP-XUẤT) AS TỒN, VTC(KH.TEN,SUM,K.SLG)
FROM KHO K,DMVLSPHH H, DMKH KH
WHERE K.MA_VLSPHH=H.MA_VLSPHH AND K.MA_KH=KH.MA_KH
GROUP BY H.MA_VLSPHH,H.TEN,H.DVi

#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?


#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
Lập bảng tổng hợp NHẬP-XUẤT-TỒN gồm các cột: MÃ,TÊN,ĐVT, NHẬP, XUẤT,
Ví dụ 22 TỒN. Dữ liệu được lấy từ sổ KHO
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

Tương tự như Ví dụ 23 nhưng chỉ là xuất bán, hiện mã và tên khách hàng. Dữ liệu được
Ví dụ 24 lấy từ sổ KHO

#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?


#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?
#ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN? #ADDIN?

#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?

K.LOAI_PHIEU='X',K.SLG,0,SUM) AS

#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
#ADDIN? #ADDIN?
Nghiệp vụ kinh tế phát sinh (SỔ NHẬT KÝ)
Tên sổ NKC = A3:K112
SO_CT NGAY_CT DIEN_GIAI MA_KH
BH001 7/31/2005 Bán hàng KH001
BH001 7/31/2005 Bán hàng KH001
BH002 7/31/2005 Bán hàng KH002
BH002 7/31/2005 Bán hàng KH002
BH003 7/31/2005 Bán hàng KH003
BH003 7/31/2005 Bán hàng KH003
BH004 7/31/2005 Bán hàng KH004
BH004 7/31/2005 Bán hàng KH004
MH001 7/31/2005 Mua hàng
MH001 7/31/2005 Mua hàng
MH002 7/31/2005 Mua hàng
MH002 7/31/2005 Mua hàng
MH003 7/31/2005 Mua hàng
MH003 7/31/2005 Mua hàng
TDKHO 7/31/2005 Nhập kho tồn đầu
TDKHO 7/31/2005 Tồn kho đầu kỳ
MH00000002 8/3/2005 Trị giá hàng mua:
MH00000002 8/3/2005 Tiền thuế GTGT:
PC00000002 8/5/2005 CHI THANH TOÁN CHO NGƯỜI BÁN[NB002]
BH00000001 8/6/2005 Doanh thu bán hàng: KH001
BH00000001 8/6/2005 Tiền thuế GTGT: KH001
Giá vốn hàng bán
BH00000001 8/6/2005 (Tự động tính) KH001
BH00000002 8/8/2005 Doanh thu bán hàng: KH002
BH00000002 8/8/2005 Tiền thuế GTGT: KH002
Giá vốn hàng bán
BH00000002 8/8/2005 (Tự động tính) KH002
PT00000001 8/10/2005 PHIẾU THU KHÁCH HÀNG THANH TOÁN[KH001] KH001
PT00000002 8/11/2005 PHIẾU THU KHÁCH HÀNG THANH TOÁN[KH002] KH002
PT00000002 8/11/2005 Chiết khâu cho khách hàng KH002
BH00000003 8/14/2005 Doanh thu bán hàng: KH003
BH00000003 8/14/2005 Tiền thuế GTGT: KH003
Giá vốn hàng bán
BH00000003 8/14/2005 (Tự động tính) KH003
PC00000003 8/15/2005 CHI THANH TOÁN CHO NGƯỜI BÁN[NB004]
PC00000004 8/16/2005 CHI THANH TOÁN CHO NGƯỜI BÁN[NB002]
PT00000003 8/16/2005 PHIẾU THU KHÁCH HÀNG THANH TOÁN[KH003] KH003
PT00000003 8/16/2005 Chiết khâu cho khách hàng KH003
MH00000003 8/20/2005 Trị giá hàng mua:
MH00000003 8/20/2005 Tiền thuế GTGT:
MH00000004 8/20/2005 Trị giá hàng mua:
MH00000004 8/20/2005 Tiền thuế GTGT:
BH00000004 8/26/2005 Doanh thu bán hàng: KH004
BH00000004 8/26/2005 Tiền thuế GTGT: KH004
Giá vốn hàng bán
BH00000004 8/26/2005 (Tự động tính) KH004
BH00000005 8/26/2005 Doanh thu bán hàng: KH001
BH00000005 8/26/2005 Tiền thuế GTGT: KH001
Giá vốn hàng bán
BH00000005 8/26/2005 (Tự động tính) KH001
BH00000006 8/26/2005 Doanh thu bán hàng: KH004
BH00000006 8/26/2005 Tiền thuế GTGT: KH004
Giá vốn hàng bán
BH00000006 8/26/2005 (Tự động tính) KH004
PT00000004 8/26/2005 Doanh thu bán hàng: KH004
PT00000004 8/26/2005 Tiền thuế GTGT: KH004
BH00000007 8/27/2005 Doanh thu bán hàng: KH003
BH00000007 8/27/2005 Tiền thuế GTGT: KH003
Giá vốn hàng bán
BH00000007 8/27/2005 (Tự động tính) KH003
BHTL0000001 8/27/2005 Doanh thu bán hàng: KH001
BHTL0000001 8/27/2005 Tiền thuế GTGT: KH001
Giá vốn hàng bán
BHTL0000001 8/27/2005 (Tự động tính) KH001
PT00000005 8/27/2005 Doanh thu bán hàng: KH003
PT00000005 8/27/2005 Tiền thuế GTGT: KH003
MH00000005 8/28/2005 Trị giá hàng mua:
MH00000005 8/28/2005 Tiền thuế GTGT:
LU00000001 8/29/2005 Luong phai trả CNV
LU00000001 8/29/2005 Trích BHXH 15% theo lương
LU00000001 8/29/2005 Trích BHYT 2% theo lương
LU00000001 8/29/2005 Trích KPCĐ 2% theo lương
LU00000001 8/29/2005 Luong phai trả CNV
LU00000001 8/29/2005 Trích BHXH 15% theo lương
LU00000001 8/29/2005 Trích BHYT 2% theo lương
LU00000001 8/29/2005 Trích KPCĐ 2% theo lương
LU00000001 8/29/2005 Luong phai trả CNV
LU00000001 8/29/2005 Trích BHXH 15% theo lương
LU00000001 8/29/2005 Trích BHYT 2% theo lương
LU00000001 8/29/2005 Trích KPCĐ 2% theo lương
LU00000001 8/29/2005 Luong phai trả CNV
LU00000001 8/29/2005 Trích BHXH 15% theo lương
LU00000001 8/29/2005 Trích BHYT 2% theo lương
LU00000001 8/29/2005 Trích KPCĐ 2% theo lương
NKC0000001 8/31/2005 Khấu trừ thuế GTGT đầu vào
PC00000005 6/24/2006 PHIẾU CHI[KT01]
TDTK 7/31/2005 Tồn đầu tài khoản
TDTK 7/31/2005 Tồn đầu tài khoản
TDTK 7/31/2005 Tồn đầu tài khoản
NKC0000002 8/31/2005
MHTL000001 8/27/2005 Trị giá hàng mua:
MHTL000001 8/27/2005 Tiền thuế GTGT:
MH00000001 8/1/2005 Trị giá hàng mua:
MH00000001 8/1/2005 Tiền thuế GTGT:
MH00000006 8/9/2006 Trị giá hàng mua:
MH00000006 8/9/2006 Tiền thuế GTGT:
MH00000007 8/9/2006 Trị giá hàng mua:
MH00000007 8/9/2006 Tiền thuế GTGT:
BH00000008 8/9/2006 Doanh thu bán hàng: KH001
BH00000008 8/9/2006 Tiền thuế GTGT: KH001
BH00000008 8/9/2006 Giá vốn hàng bán (Tự động) KH001
BH00000009 8/9/2006 Doanh thu bán hàng: KH002
BH00000009 8/9/2006 Tiền thuế GTGT: KH002
BH00000009 8/9/2006 Giá vốn hàng bán (Tự động) KH002
MH00000008 8/9/2006 Trị giá hàng mua:
MH00000008 8/9/2006 Tiền thuế GTGT:
BH00000010 8/9/2006 Doanh thu bán hàng: KH003
BH00000010 8/9/2006 Tiền thuế GTGT: KH003
BH00000010 8/9/2006 Giá vốn hàng bán (Tự động) KH003
BH00000011 8/9/2006 Doanh thu bán hàng: KH004
BH00000011 8/9/2006 Tiền thuế GTGT: KH004
BH00000011 8/9/2006 Giá vốn hàng bán (Tự động) KH004
MH00000009 10/24/2006 Trị giá hàng mua:
MH00000009 10/24/2006 Tiền thuế GTGT:
BH00000012 10/24/2006 Doanh thu bán hàng: KH001
BH00000012 10/24/2006 Tiền thuế GTGT: KH001
BH00000012 10/24/2006 Giá vốn hàng bán (Tự động) KH001
KÝ)

MA_NB MA_NV LOAI_THUE NOTK COTK THANH_TIEN DTCF


VAT10 131 2,750,000.00
VAT10 3331 250,000.00
VAT10 131 3,300,000.00
VAT10 3331 300,000.00
VAT10 131 4,400,000.00
VAT10 3331 400,000.00
VAT10 131 3,850,000.00
VAT10 3331 350,000.00
NB001 VAT10 331 3,300,000.00
NB001 VAT10 1331 300,000.00
NB002 VAT10 331 4,400,000.00
NB002 VAT10 1331 400,000.00
NB003 VAT10 331 5,500,000.00
NB003 VAT10 1331 500,000.00
156 75,600,000.00
152 280,000,000.00
NB002 VAT10 1561 331 34,200,000.00
NB002 VAT10 1331 331 3,420,000.00
NB002 331 111 12,000,000.00
VAT10 131 5111 40,700,000.00
VAT10 131 33311 4,070,000.00

VAT10 632 156 35,513,076.92


VAT10 131 5111 24,200,000.00
VAT10 131 33311 2,420,000.00

VAT10 632 156 20,813,076.92


111 131 22,750,000.00
111 131 18,000,000.00
635 131 300,000.00
VAT10 131 5111 26,900,000.00
VAT10 131 33311 2,690,000.00

VAT10 632 156 24,023,076.92


NB004 331 111 20,000,000.00
NB002 331 111 16,480,000.00
111 131 13,320,000.00
635 131 80,000.00
NB004 VAT10 1561 331 65,200,000.00
NB004 VAT10 1331 331 6,520,000.00
NB002 VAT10 1561 331 26,800,000.00
NB002 VAT10 1331 331 2,680,000.00
VAT10 131 5111 43,200,000.00
VAT10 131 33311 4,320,000.00

VAT10 632 156 37,693,296.70


VAT10 131 5111 27,800,000.00
VAT10 131 33311 2,780,000.00

VAT10 632 156 23,738,388.27


VAT10 1111 5111 0.00
VAT10 1111 33311 0.00

VAT10 632 156 20,503,668.09


VAT10 1111 5111 22,700,000.00
VAT10 1111 33311 2,270,000.00
VAT10 1111 5111 0.00
VAT10 1111 33311 0.00

VAT10 632 156 22,032,336.19


VAT10 531 131 21,400,000.00
VAT10 33311 131 2,140,000.00

VAT10 156 632 19,264,102.56


VAT10 1111 5111 24,200,000.00
VAT10 1111 33311 2,420,000.00
NB002 VAT10 1561 331 77,300,000.00
NB002 VAT10 1331 331 7,730,000.00
622 334 4,000,000.00
622 3383 600,000.00
622 3384 80,000.00
622 3382 80,000.00
627 334 2,500,000.00
627 3383 375,000.00
627 3384 50,000.00
627 3382 50,000.00
641 334 3,000,000.00
641 3383 450,000.00
641 3384 60,000.00
641 3382 60,000.00
642 334 4,400,000.00
642 3383 660,000.00
642 3384 88,000.00
642 3382 88,000.00
3331 133 23,530,000.00
KT01 141 111 2,000,000.00
111 150,000,000.00
211 220,000,000.00
411 726,600,000.00
8211 3334 10,000,000.00
NB001 VAT10 331 1561 14,600,000.00
NB001 VAT10 331 1331 1,460,000.00
NB001 VAT10 1561 331 34,400,000.00
NB001 VAT10 1331 331 3,440,000.00
NB001 VAT10 1561 331 20,000.00
NB001 VAT10 1331 331 2,000.00
NB002 VAT10 1561 331 19,200,000.00
NB002 VAT10 1331 331 1,920,000.00
VAT10 131 5111 6,000.00
VAT10 131 33311 600.00
632 156 40,000.00
VAT10 131 5111 6,000.00
VAT10 131 33311 600.00
632 156 40,000.00
NB002 VAT10 1561 331 30,000.00
NB002 VAT10 1331 331 3,000.00
VAT10 131 5111 12,000.00
VAT10 131 33311 1,200.00
632 156 80,000.00
VAT10 131 5111 12,000.00
VAT10 131 33311 1,200.00
632 156 48,000.00
NB001 0 152 331 925,000.00
NB001 0 1331 331 0.00
0 131 5111 550,000.00
0 131 33311 0.00
632 156 0.00
KHO

Tên sổ KHO = A3:K68


SO_CT NGAY_CT MA_KH MA_NB MA_NV KHO MA_VLSPHH
TDKHO 7/31/2005 NB001 KHOHH HH001
TDKHO 7/31/2005 NB002 KHOHH HH002
TDKHO 7/31/2005 NB004 KHOHH HH003
TDKHO 7/31/2005 NB004 KHOHH HH004
NK00000001 8/1/2005 NB001 KHOHH HH001
NK00000001 8/1/2005 NB001 KHOHH HH002
NK00000002 8/3/2005 NB002 KHOHH HH003
NK00000002 8/3/2005 NB002 KHOHH HH004
NK00000002 8/3/2005 NB002 KHOHH HH002
XK00000001 8/6/2005 KH001 KHOHH HH001
XK00000001 8/6/2005 KH001 KHOHH HH002
XK00000001 8/6/2005 KH001 KHOHH HH003
XK00000001 8/6/2005 KH001 KHOHH HH004
XK00000002 8/8/2005 KH002 KHOHH HH002
XK00000002 8/8/2005 KH002 KHOHH HH003
XK00000002 8/8/2005 KH002 KHOHH HH004
XK00000003 8/14/2005 KH003 KHOHH HH002
XK00000003 8/14/2005 KH003 KHOHH HH001
NK00000003 8/20/2005 NB004 KHOHH HH001
NK00000003 8/20/2005 NB004 KHOHH HH002
NK00000003 8/20/2005 NB004 KHOHH HH003
NK00000003 8/20/2005 NB004 KHOHH HH004
NK00000004 8/20/2005 NB002 KHOHH HH003
NK00000004 8/20/2005 NB002 KHOHH HH002
XK00000004 8/26/2005 KH004 KHOHH HH002
XK00000004 8/26/2005 KH004 KHOHH HH003
XK00000004 8/26/2005 KH004 KHOHH HH004
XK00000005 8/26/2005 KH001 KHOHH HH002
XK00000005 8/26/2005 KH001 KHOHH HH001
XK00000005 8/26/2005 KH001 KHOHH HH004
XK00000006 8/26/2005 KH004 KHOHH HH001
XK00000006 8/26/2005 KH004 KHOHH HH002
XK00000006 8/26/2005 KH004 KHOHH HH003
XK00000007 8/27/2005 KH003 KHOHH HH002
XK00000007 8/27/2005 KH003 KHOHH HH003
NK00000005 8/27/2005 KH001 KHOHH HH001
NK00000005 8/27/2005 KH001 KHOHH HH002
NK00000006 8/28/2005 NB002 KHOHH HH002
NK00000006 8/28/2005 NB002 KHOHH HH001
NK00000006 8/28/2005 NB002 KHOHH HH003
NK00000006 8/28/2005 NB002 KHOHH HH004
XK00000008 8/27/2005 NB001 KHOHH HH001
XK00000008 8/27/2005 NB001 KHOHH HH002
NK00000007 8/9/2006 NB001 KHOHH HH005
NK00000008 8/9/2006 NB002 KHOHH HH002
XK00000009 8/9/2006 KH001 KHOHH HH005
XK00000009 8/9/2006 KH001 KHOHH HH006

Page 39
KHO

XK00000010 8/9/2006 KH002 KHOHH HH005


XK00000010 8/9/2006 KH002 KHOHH HH006
NK00000009 8/9/2006 NB002 KHOHH HH006
XK00000011 8/9/2006 KH003 KHOHH HH005
XK00000011 8/9/2006 KH003 KHOHH HH006
XK00000012 8/9/2006 KH004 KHOHH HH005
XK00000012 8/9/2006 KH004 KHOHH HH006
NK00000010 10/24/2006 NB001 KHOHH BM
NK00000010 10/24/2006 NB001 KHOHH BE1
XK00000013 10/24/2006 KH001 KHOHH BO
XK00000013 10/24/2006 KH001 KHOHH BO
XK00000013 10/24/2006 KH001 KHOHH BO
XK00000013 10/24/2006 KH001 KHOHH LB
XK00000013 10/24/2006 KH001 KHOHH LB
XK00000013 10/24/2006 KH001 KHOHH BE
XK00000013 10/24/2006 KH001 KHOHH BE
XK00000013 10/24/2006 KH001 KHOHH BTC
XK00000013 10/24/2006 KH001 KHOHH BTC

Page 40
KHO

N = NHẬP
X= XUẤT
SLG DON_GIA LOAI_PHIEU THANH_TIEN
4 4800000 N 19,200,000.00
6 4500000 N 27,000,000.00
6 2800000 N 16,800,000.00
3 4200000 N 12,600,000.00
4 5000000 N 20,000,000.00
3 4800000 N 14,400,000.00
2 3000000 N 6,000,000.00
2 4500000 N 9,000,000.00
4 4800000 N 19,200,000.00
3 5500000 X 14,700,000.00
2 5200000 X 9,323,076.92
1 3400000 X 2,850,000.00
2 5200000 X 8,640,000.00
2 5200000 X 9,323,076.92
1 3400000 X 2,850,000.00
2 5200000 X 8,640,000.00
2 5200000 X 9,323,076.92
3 5500000 X 14,700,000.00
2 5000000 N 10,000,000.00
4 4800000 N 19,200,000.00
3 3000000 N 9,000,000.00
6 4500000 N 27,000,000.00
3 2800000 N 8,400,000.00
4 4600000 N 18,400,000.00
3 5200000 X 14,046,153.84
2 3400000 X 5,750,000.00
4 5200000 X 17,897,142.86
2 5500000 X 9,364,102.56
2 5800000 X 9,900,000.00
1 5200000 X 4,474,285.71
1 5500000 X 5,135,714.29
2 5200000 X 9,582,051.28
2 3400000 X 5,833,333.33
4 5200000 X 19,164,102.56
1 3400000 X 2,916,666.67
2 5500000 N 9,900,000.00
2 5200000 N 9,364,102.56
6 4800000 N 28,800,000.00
4 5000000 N 20,000,000.00
5 3000000 N 15,000,000.00
3 4500000 N 13,500,000.00
1 5000000 X 5,000,000.00
2 4800000 X 9,600,000.00
2 10000 N 20,000.00
4 4800000 N 19,200,000.00
4 1000 X $40,000.00
2 1000 X

Page 41
KHO

4 1000 X $40,000.00
2 1000 X $2,000.00
3 10000 N $30,000.00
8 1000 X $80,000.00
4 1000 X $4,000.00
4 1000 X $40,000.00
8 1000 X $8,000.00
10 64000 N $640,000.00
5 57000 N $285,000.00
2 35000 X $70,000.00
1 45000 X $45,000.00
1 55000 X $55,000.00
1 100000 X $100,000.00
1 120000 X $120,000.00
1 40000 X $40,000.00
1 45000 X $45,000.00
1 40000 X $40,000.00
1 35000 X $35,000.00

Page 42
Tên sổ DMVLSPHH = A3:D15
MA_VLSPHH TEN Dvi Loai
HH001 Máy tính ĐNA L1 Chiếc HH
HH002 Máy tính ĐNA L2 Chiếc HH
HH003 Máy in HP 1200 Chiếc HH
HH004 Máy in HP 1300 Chiếc HH
HH005 Dầu A Chai HH
HH006 Dầu B Chai HH
BO Bò xào nướng Đĩa HH
LB Lẩu bò Nồi HH
BE Bê Đĩa HH
BTC Bê tái chanh Đĩa HH
BM Bò mông Kg VL
BE1 Bê Kg VL
DM Nhà cung cấp

DANH MỤC NHÀ CUNG CẤP

Tên sổ DMNB
MA_NB TEN MS_THUE DIA_CHI DIEN_THOAI
NB001 Cty TNHH Bắc Á 34 - Tây Sơn 8589555
NB002 Cty TNHH Tuấn Sơn 108 - ĐBP 4595126
NB003 Cty ABC 96 - Nhổn 7655411
NB004 Cty may mặc Thăng Long 22222

Page 44
DM Nhà cung cấp

VIP

Page 45
Tên sổ DMKH
MA_KH TEN MS_THUE
KH001 Cty TNHH Hoàng Long 1233456780123
KH002 Cửa hàng Thành Đông 0021545449
KH003 Cửa hàng máy tính Đông Đô 0120113115
KH004 Cty IPQ 1560045881
KH005 Công ty ICQ 34454555667
DIA_CHI DIEN_THOAI VIP Tinh_TP
34 - Tây Sơn 8589555 Hà Nội
55 - Nguyễn Trãi 3622222 Hải Phòng
108 - ĐBP 4595126 Hà Nội
96 - Nhổn 7655411 Hải Phòng
96 - Nhổn 7655411 Hải Phòng
Tác giả: Nguyễn Duy Tuân
E.Mail: tuanktcdcn@yahoo.com
Tel: 0904.210.337
Website: www.bluesofts.net

You might also like