Giáo trình Hệ thống thông tin kế toán 3 - Excel kế toán (Phần 2)

TẠO MỚI TỆP ACCESS

Một dự án Access (Access project) là một hoặc nhiều tệp Access nhằm giải

quyết một công việc lớn nào đó. Khuôn khổ giáo trình này chỉ trình bày những dự án

có 1 tệp.

Tệp Access có phần mở rộng *.MDB (ngoài ra những tệp có phần mở rộng

*.DBE cũng mở được nhưng chỉ có thể thực thi chứ không chỉnh sửa được cấu trúc).

Có 5 thành phần chính trên một tệp:

Tables – nơi chứa toàn bộ các bảng dữ liệu

 Queries – nơi chứa toàn bộ các truy vấn dữ liệu đã được thiết kế;

 Forms – nơi chứa các mẫu giao diện phần mềm;

 Reports – nơi chứa các mẫu báo cáo đã được thiết kế;

 Macro – nơi chứa các Macro lệnh phục vụ dự án;

 Modules – nơi chứa các khai báo, các thư viện chương trình con phục vụ dự án.

Thông thường mỗi tệp Access cần phải làm việc trên tất cả các thành phần trên.

Để bắt đầu tạo một tệp mới, chọn mục Blank Access database, tiếp theo nhấn

OK, hộp thoại sau xuất hiện yêu cầu chọn nơi (thư mục) lưu trữ và đặt tên tệp Chu

trình doanh thu:

Hãy chọn nơi lưu trữ ở hộp Save in; gõ vào tên tệp ở mục File Name; nhấn

để ghi lại thiết lập. Đến đây đã sẵn sàng sử dụng tệp Access vừa khai báo.

pdf 53 trang kimcuc 9000
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống thông tin kế toán 3 - Excel kế toán (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Hệ thống thông tin kế toán 3 - Excel kế toán (Phần 2)

Giáo trình Hệ thống thông tin kế toán 3 - Excel kế toán (Phần 2)
 1 
TRƯỜNG ĐẠI HỌC NHA TRANG 
KHOA KẾ TOÁN – TÀI CHÍNH 
BỘ MÔN KIỂM TOÁN 
BÀI GIẢNG 
HỆ THỐNG THÔNG TIN KẾ TOÁN 4 
(ACCESS KẾ TOÁN) 
Giảng viên giảng dạy 
ThS. Nguyễn Thành Cường 
Ngô Xuân Ban 
Bùi Mạnh Cường 
Đỗ Thị Ly 
Phạm Đình Tuấn 
Lưu hành nội bộ
 2 
MỤC LỤC 
Phần 1: KHÁI QUÁT VỀ MICROSOFT ACCESS _______________ 2 
1. Chương trình Access __________________________________________________2 
2. Khởi động___________________________________________________________2 
3. Tạo mới tệp Access ___________________________________________________3 
4. Môi trường làm việc___________________________________________________4 
5. Mở tệp đã tồn tại _____________________________________________________5 
6. Thoát khỏi Access ____________________________________________________5 
Phần 2: XÂY DỰNG CƠ SỞ DỮ LIỆU____________________________________6 
1. Khái niệm về cơ sở dữ liệu Access _______________________________________6 
2. Liên kết các bảng dữ liệu _______________________________________________9 
Phần 3: _____________________________________________________________17 
 XÂY DỰNG CHƯƠNG TRÌNH KẾ TOÁN TRÊN MS ACCESS 
1. Đặt vấn đề, giới thiệu mục tiêu chương trình xây dựng ______________________17 
2. Hệ thống dữ liệu_____________________________________________________17 
 2.1. Bảng dat_tblBDMTKTongHop ______________________________________17 
 2.2. Bảng dat_tblBDMTK ______________________________________________18 
 2.3. Bảng dat_KyKeToan_______________________________________________18 
 2.4. Bảng dat_tblSoDauKy _____________________________________________19 
 2.5. Bảng dat_tblNgiepVu ______________________________________________20 
 2.6. Bảng dat_tblSoKTMay _____________________________________________22 
 2.7. Bảng dat_tblCompanyInfo __________________________________________23 
3. Xây dựng mối quan hệ giữa các bảng ____________________________________24 
4. Tạo Form khởi động và xây dựng các query cơ sở __________________________24 
 4.1. Tạo Form khởi động cho chương trình _________________________________24 
 4.2. Xây dựng các query cơ sở___________________________________________26 
 4.2.1. Query Qry_0_SoDuDK: _________________________________________26 
 4.2.2. Query QrySoKTMay_TenTKNoCo: ________________________________27 
 4.2.3. Query QrySoKTMay:____________________________________________27 
 4.2.4. Query QrySoKTMay_TKTH______________________________________28 
 4.2.5. Query QryBDMTK:_____________________________________________29 
5. Xây dựng các sổ sách kế toán __________________________________________32 
 5.1. Bảng tổng hợp chi tiế 131: __________________________________________32 
 5.2. Bảng tổng hợp chi tiết TKxx: ________________________________________35 
 5.3. Nhật ký chung: ___________________________________________________36 
 5.4. Sổ chi tiết chi phí: _________________________________________________37 
 5.5. Sổ Cái:__________________________________________________________39 
 5.6. Bảng tổng hợp chi tiết các TK: _______________________________________41 
 5.7. Phiếu thu: _______________________________________________________43 
 5.8. Phiếu nhập xuất kho:_______________________________________________46 
BÀI TẬP ỨNG DỤNG: ________________________________________________50 
TÀI LIỆU THAM KHẢO: _____________________________________________52 
 3 
Phần 1. KHÁI QUÁT VỀ MICROSOFT ACCESS 
1. CHƯƠNG TRÌNH ACCESS 
1.1 Tệp chứa Chương trình Access 
Mỗi một tệp Chương trình thường có một đuôi qui định, ví dụ các tệp Chương 
trình C có đuôi là .C, tệp Chương trình Pascal có đuôi là PAS, tệp Chương trình 
Foxpro có đuôi là .PRG.Một tệp Chương do Access tạo ra có đuôi là .MDB 
1.2 Một hệ Chương trình do Access tạo ra (hệ Chương trình Access) 
Chương trình Access gọi là một Database (CSDL). Trong các ngôn ngữ 
truyền thống như C, Pascal, Foxpro, một hệ Chương trình gồm các tệp Chương trình và 
các tệp dữ liệu được tổ chức một cách riêng biệt. Nhưng trong Access toàn bộ Chương 
trình và dữ liệu được chứa trong một tệp duy nhất có đuôi .MDB. như vậy thuật ngữ hệ 
Chương trình hay CSDL được hiểu là tổ hợp bao gồm cả Chương trình và dữ liệu. Để 
ngắn gọn nhiều khi ta gọi là Chương trình thay cho thuật ngữ hệ Chương trình. như vậy 
dưới đây khi nói đến Chương trình hay hệ chương trình hay CSDL thì cùng có nghĩa 
đó là một hệ phần mềm gồm cả Chương trình và dữ liệu do Access tạo ra. 
2. KHỞI ĐỘNG 
 Mở lệnh Start / Programs / Microsoft office/ Microsoft office access của 
Window; Sau khi chọn xong ta có môi trường access như sau: 
Sau đó chọn File/ New hoặc biểu tượng New trên màn hình 
 4 
Chọn Blank Access database để bắt đầu tạo một tệp Access mới (tạo mới tệp) 
Hoặc Access database wizard, page, and project để tạo một CSDL theo mẫu có sẵn 
(không trình bày trong giáo trình này); Hoặc file/ open để mở tệp Access đã tồn tại để 
làm việc tiếp. 
3. TẠO MỚI TỆP ACCESS 
Một dự án Access (Access project) là một hoặc nhiều tệp Access nhằm giải 
quyết một công việc lớn nào đó. Khuôn khổ giáo trình này chỉ trình bày những dự án 
có 1 tệp. 
Tệp Access có phần mở rộng *.MDB (ngoài ra những tệp có phần mở rộng 
*.DBE cũng mở được nhưng chỉ có thể thực thi chứ không chỉnh sửa được cấu trúc). 
Có 5 thành phần chính trên một tệp: 
Tables – nơi chứa toàn bộ các bảng dữ liệu 
 Queries – nơi chứa toàn bộ các truy vấn dữ liệu đã được thiết kế; 
 Forms – nơi chứa các mẫu giao diện phần mềm; 
 Reports – nơi chứa các mẫu báo cáo đã được thiết kế; 
 Macro – nơi chứa các Macro lệnh phục vụ dự án; 
 Modules – nơi chứa các khai báo, các thư viện chương trình con phục vụ dự án. 
Thông thường mỗi tệp Access cần phải làm việc trên tất cả các thành phần trên. 
Để bắt đầu tạo một tệp mới, chọn mục Blank Access database, tiếp theo nhấn 
OK, hộp thoại sau xuất hiện yêu cầu chọn nơi (thư mục) lưu trữ và đặt tên tệp Chu 
trình doanh thu: 
 5 
Hãy chọn nơi lưu trữ ở hộp Save in; gõ vào tên tệp ở mục File Name; nhấn 
để ghi lại thiết lập. Đến đây đã sẵn sàng sử dụng tệp Access vừa khai báo. 
4. MÔI TRƯỜNG LÀM VIỆC 
Sau khi một tệp Access được mở, môi trường làm việc trên Access xuất hiện với 
những thành phần như sau: 
Chọn thư mục trên đĩa, nơi sẽ 
lưu tệp Chu trình doanh thu 
Gõ tên tệp cần lưu 
Creat 
Hệ thống thực đơn (menu) 
và các thanh công cụ 
(Toolbar)- nơi thực hiện 
các lệnh khi cần 
Cửa sổ tệp Access đang làm việc bao gồm 7 
phần chính: Tables, Queries, 
Forms, Reports, Pages, Macros và Modules. 
làm việc trên từng phần này trong các chương 
tiếp theo. 
 6 
5. MỞ TỆP ĐÃ TỒN TẠI 
Mỗi tệp Access phải tạo mới duy nhất một lần, được mở ra làm việc và ghi lại 
trong những lần tiếp theo. Để mở một tệp Access đã tồn tại để làm việc, làm như sau: 
Bước 1: Từ môi trường Access gọi thực đơn:File | Open (hoặc nhấn nút 
trên thanh công cụ), hộp thoại Open xuất hiện: 
Bước 2: Tìm đến tệp Access cần mở trên hộp thoại Open bằng cách: 
 Tìm đến thư mục – nơi chứa tệp Access cần mở ở hộp Look in; Tiếp theo chọn 
tệp Access cần mở trên danh sách và nhấn nút Open hoặc Enter. 
Đến đây cửa màn hình làm việc Access với tệp vừa mở xuất hiện để tiếp tục làm 
việc. 
6. THOÁT KHỎI ACCESS 
Khi không làm việc với Access, hãy ra lệnh thoát khỏi Access bằng một trong 
các cách: 
 Mở thực đơn File | Exit; 
 Nhấn tổ hợp phím nóng Alt + F4; 
 Hoặc sử dụng nút Close trên cửa sổ Access đang mở. 
 7 
Phần 2. XÂY DỰNG CƠ SỞ DỮ LIỆU 
Xây dựng CSDL là công việc quan trọng đầu tiên trong toàn bộ qui trình phát 
triển một ứng dụng trên Access. Một CSDL được thiết kế và xây dựng tốt sẽ là những 
thuận lợi, những tự tin đầu tiên để bước vào một qui trình phát triển ứng dụng; nhưng 
trái lại sẽ là một thảm họa cho dự án đang phát triển: sẽ thường xuyên gặp phải những 
khó khăn để phải chỉnh sửa lại CSDL và tồi tệ hơn, dự án có thể phải thực hiện lại từ 
đầu do việc thiết kế CSDL quá kém. 
Trong phần này sẽ trình bày các khái niệm cũng như các kỹ năng để có thể tiếp 
cận và xây dựng được các hệ CSDL trên Acces, cụ thể là: 
 Tạo cấu trúc các bảng dữ liệu; 
 Thiết lập thuộc tính LookUp; 
 Thiết lập quan hệ và các thuộc tính đảm bảo toàn vèn dữ liệu; 
 Nhập dữ liệu cho CSDL; 
 Đặc biệt là qui trình xây dựng một CSDL Access. 
1. Các khái niệm về CSDL Access 
1.1. CSDL Access 
CSDL Access là một đối tượng bao gồm tập hợp các bảng dữ liệu, các kết nối giữa 
các bảng được thiết kế một cách phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng 
quản lý dữ liệu nào đó. 
Ví dụ: CSDL Chu trình doanh thu tại công ty KIJ bao gồm tập hợp các bảng dữ 
liệu: VANPHONG, NHANVIEN, KHACHHANG, HANGHOA, HOADON, 
CHITIETHOADON, được kết nối với nhau một cách phù hợp phục vụ lưu trữ dữ liệu 
cho ứng dụng quản lý học sinh một trường học. Toàn bộ cấu trúc CSDL quản lý học 
sinh trên Access được mô tả như sau: 
 8 
1.2 Bảng dữ liệu 
Bảng dữ liệu (Tables) là một phần quan trọng nhất của CSDL; Là nơi lưu trữ 
những dữ liệu tác nghiệp cho ứng dụng. Một CSDL có thể có rất nhiều bảng, các bảng 
phải được thiết kế sao cho có thể lưu trữ được đầy đủ dữ liệu cần thiết, đảm bảo giảm 
tối đa tình trạng gây dư thừa dữ liệu (dư thừa dữ liệu được hiểu đơn giản là tình trạng 
lưu trữ những dữ liệu không cần thiết trên một số bảng. Tác hại của hiện tượng này sẽ 
gây: sai lệch dữ liệu tác nghiệp và làm tăng dung lượng dữ liệu không cần thiết); giảm 
tối đa dung lượng CSDL có thể, đồng thời tạo môi trường làm việc thuận lợi cho việc 
phát triển ứng dụng trong các bước tiếp theo. 
Một bảng dữ liệu trên Access bao gồm các thành phần: Tên bảng, các trường dữ 
liệu, trường khoá, tập hợp các thuộc tính cần thiết cho mỗi trường dữ liệu và tập hợp 
các bản ghi. 
Mô tả một bảng dữ liệu trong trạng thái Datasheet (nhập, xem, sử dữ liệu): 
Mô tả một bảng dữ liệu trong trạng thái Design view (đang thiết kế cấu trúc): 
Mỗi cột là một 
trường dữ liệu 
(field) 
Mỗi dòng là một 
bản ghi (record) 
Bản ghi đặc biệt cuối cùng 
gọi là EOF 
 9 
Tên bảng 
Mỗi bảng có một tên gọi. Tên bảng thường được đặt sau khi tạo xong cấu trúc 
của bảng, tuy nhiên cũng có thể đổi lại tên bảng trên cửa sổ Database như đổi tên tệp 
dữ liệu trên cửa sổ Windows Explorer. Không nên sử dụng dấu cách (Space), các ký tự 
đặc biệt hoặc chữ tiếng Việt có dấu trong tên bảng. 
Trường dữ liệu (Field) 
Mỗi cột dữ liệu của bảng sẽ tương ứng với một trường dữ liệu. Mỗi trường dữ 
liệu sẽ có một tên gọi và tập hợp các thuộc tính miêu tả trường dữ liệu đó ví dụ như: 
kiểu dữ liệu, trường khoá, độ lớn, định dạng, .. Mỗi trường dữ liệu phải được định kiểu 
dữ liệu. Trong Access, trường dữ liệu có thể nhận một trong các kiểu dữ liệu sau: 
TT Kiểu dữ liệu Độ lớn Lưu trữ 
1 Number Tuỳ thuộc biến cụ 
thể 
Số: số thực, số nguyên theo nhiều 
kiểu 
2 Autonumber 4 bytes Số nguyên tự động được đánh số 
3 Text Tuỳ thuộc độ dài xâu Xâu ký tự 
4 Yes/No 1 bytes Kiểu logic 
5 Date/time 8 bytes Lưu trữ ngày, giờ 
6 Currentcy Sing Lưu trữ dữ liệu kèm ký hiệu tiền 
tệ 
7 Memo Tuỳ thuộc giá trị kiểu ghi nhớ 
8 Hyperlink Tuỳ thuộc độ dài xâu Lưu trữ các siêu liên kết 
9 Ole Objects Tuỳ thuộc kiểu dữ 
liệu 
âm thanh, hình ảnh, đồ hoạ. 
Tập hợp các thuộc 
tính của trường dữ 
liệu 
 10 
Bản ghi (Record) 
Mỗi dòng dữ liệu của bảng được gọi một bản ghi. Mỗi bảng có một con trỏ bản 
ghi. Con trỏ bản ghi đang nằm ở bản ghi nào, người dùng có thể sửa được dữ liệu bản 
ghi đó. Đặc biệt, bản ghi trắng cuối cùng của mỗi bảng được gọi EOF. 
Trường khoá (Primary key) 
Trường khoá có tác dụng phân biệt giá trị các bản ghi trong cùng một bảng với 
nhau. Trường khoá có thể chỉ 01 trường, cũng có thể được tạo từ tập hợp nhiều trường 
(gọi bộ trường khoá). 
Ví dụ: 
 Bảng BANGVANPHONG của CSDL chu trình doanh thu, trường khoá là 
msvanphong. Vì mỗi văn phòng có thể nhiều trường có giá trị hệt nhau, nhưng 
mã văn phòng thì duy nhất. 
 Bảng NHANVIEN trường msnhanvien sẽ là trường khóa vì không thể tồn tại 2 
nhân viên ào trong bảng này trùng msnhanvien 
2. Liên kết các bảng dữ liệu 
Liên kết các bảng dữ liệu là một kỹ thuật trong thiết kế CSDL quan hệ. Chúng 
là mối liên kết giữa 2 bảng với nhau theo thiết kế cho trước để đảm bảo được mục đích 
lưu trữ dữ liệu cho ứng dụng. Trong Access tồn tại 2 kiểu liên kết: liên kết 1-1(một – 
một) và liên kết 1-n (một-nhiều) 
Xây dựng cấu trúc bảng 
Mục này hướng dẫn cách thiết kế cấu trúc một bảng dữ liệu trên CSDL Access. 
Để có thể làm tốt được công việc này, sinh viên cần tuân thủ theo thứ tự các bước liệt 
kê dưới đây 
Minh hoạ này hướng dẫn cách tạo cấu trúc bảng VANPHONG bao gồm các 
trường msvanphong, tenvanphong, diachi, thanhpho. 
Bước 1 khởi động thiết kế cấu trúc bảng ở chế độ Design view 
Ở thẻ Tables chọn create 
table in design view 
 11 
Hộp thoại thiết kế cấu trúc một bảng xuất hiện 
Bước 2: Khai báo danh sách tên các trường của bảng: bằng cách nhập tên danh sách 
các trường lên cột field name của cửa sổ thiết kế 
 Chú ý: Không nên sử dụng dấu cách (Space), các ký tự đặc biệt hoặc chữ tiếng 
Việt có dấu trong tên trường. 
Bước 3: Khai báo kiểu dữ liệu cho các trường của bảng, bằng cách chọn kiểu dữ liệu 
cho từng trường ở cột Data type tương ứng. 
 Để chọn kiểu dữ liệu, dùng chuột chọn kiểu dữ liệu từ hộp thả 
Bước 4: Thiết lập trường khoá cho bảng (những bảng không có trường khoá có thể bỏ qua 
bước này) 
 Chọn các trường muốn thiết lập khoá bằng cách dùng chuột kết hợp giữ phím 
shift đánh dấu dòng các trường muốn thiết lập khoá 
 Mở thực đơn Edit/ Primary key hoặc chọn biểu tượng trên thanh công cụ 
Bước 5: Lưu lại cấu trúc bảng, Mở thực đơn File/Save hoặc chọn biểu tượng trên 
thanh công cụ, hộp thoại yêu cầu ghi tên cho bảng sẽ xuất hiện: 
 12 
Hãy nhập tên bảng cần lưu và nhấn OK 
 Chú ý: Đối với những bảng không thiết lập trường khoá hoặc quên thiết lập 
trường khoá thì trong quá trình ghi lại cấu trúc bảng chương trình sẽ hỏi 
Nhấn Yes- máy tính sẽ tạo thêm một trường mới có tên ID và thiết lập trường 
này làm khoá. Nếu không muốn như vậy hãy nhấn No; nhấn Cancel để huỷ lệnh lưu. 
 Tên bảng không nên chứa dấu cách, các ký tự đặc biệt khác hoặc chữ Việt có 
dấu. 
Mỗi trường dữ liệu được khai báo trong cửa sổ trên đều có thể thiết lập được rất 
nhiều các thuộc tính tuỳ thuộc kiểu dữ liệu trường đó đã nhận. Các thuộc tính này có 
thể thiết lập tại phần Tập hợp các thuộc tính của các trường như đã trình bày ở trên. 
Dưới đây là danh sách một số các thuộc tính hay được sử dụng 
Thuộc tính Dùng để quy định Giá trị có thể chọn 
Field size Độ lớn của số cho phép nhập 
Độ dài tối đa của chuối text Các kiểu số 
New values Cách tạo ra giá trị mới (chỉ có trong điều kiện autoNumber) 
Tăng dần (increment/ ngẫu nhiên 
(random) 
Format Định dạng hiển thị dữ liệu Tuỳ kiểu dữ liệu 
Decimal Places Quy định số thập phân tối đa Tự động (auto) hoặc tuỳ định 
Input Mask Dạng thức hiển thị số liệu nhập Chỉ cho dữ liệu kiểu Text hoặc Date 
Caption Nhãn sẽ xuất hiện thay cho tên trường Tuỳ chọn 
Default Value Giá trị mặc nhiên được gán cho vùng khi chờ nhập số liệu Tuỳ định 
Validation rule Biểu thức kiẻm soát đối với dữ liệu nhập vào (điều kiện hợp lệ) Biểu thức hợp lệ 
Validation Text 
Thông báo lỗi cho xuất hiện ra khi 
dữ liệu không thoả mãn điều kiện 
hợp lệ 
Tuỳ ý 
Req ... n, số dư, 
số phát sinh, trong kỳ. 
Nguồn: dat_tblBDMTK, Qry_0_SoDauKy, QrySoPSNo, QrySoPSCo. 
Các trường: 
SoHieuTK, SoHieuTKTH, LoaiTK, TenTK, DVT (từ dat_tblBDMTK) 
SoLuongTonDK, SoDuDK (từ Qry_0_SoDauKy) 
SoLuongPSNo: CDbl(Nz(SLPSNo,0)) 
SoPSNo: CCur(Nz([SoPSNo],0)) 
SoLuongPSCo: CDbl(Nz(SLPSCo,0)) 
SoPSCo: CCur(Nz([SoPSCo],0)) 
SoLuongTonCK: IIF(dat_tblBDMTK.SoHieuTK like ‘15[2,3,5,6,8]*’, SoLuongTonDK + 
SoLuongPSNo – SoLuongPSCo, 0) 
SoDuCK: SoDuDK + IIF(dat_tblBDMTK.LoaiTK=’N’,SoPSNo – SoPSCo, SoPSCo – 
SoPSNo) 
 33 
Câu lệnh SQL 
SELECT dat_tblBDMTK.SoHieuTK, dat_tblBDMTK.SoHieuTKTH, 
dat_tblBDMTK.LoaiTK, dat_tblBDMTK.TenTK, dat_tblBDMTK.DVT, 
Qry_0_Sodudk.SoLuongTonDK, Qry_0_Sodudk.SoDuDK, CDbl(Nz([SLPSNo],0)) AS 
SoLuongPSNo, CDbl(Nz([QrySoPSNo].[SoPSNo],0)) AS SoPSNo, CDbl(Nz([SLPSCo],0)) AS 
SoLuongPSCo, CDbl(Nz([QrySoPSCo].[SoPSCo],0)) AS SoPSCo, 
IIf([dat_tblBDMTK].[SoHieuTK] Like '15[2,3,5,6,8]*',[SoLuongTonDK]+[SoLuongPSNo]-
[SoLuongPSCo],0) AS SoLuongTonCK, [SoDuDK]+IIf([LoaiTK]='N',[SoPSNo]-
[SoPSCo],[SoPSCo]-[SoPSNo]) AS SoDuCK 
FROM ((dat_tblBDMTK LEFT JOIN Qry_0_Sodudk ON dat_tblBDMTK.SoHieuTK = 
Qry_0_Sodudk.SoHieuTK) LEFT JOIN QrySoPSCo ON dat_tblBDMTK.SoHieuTK = 
QrySoPSCo.SoHieuTK) LEFT JOIN QrySoPSNo ON dat_tblBDMTK.SoHieuTK = 
QrySoPSNo.SoHieuTK; 
5. Xây dựng các sổ sách kế toán 
5.1. Bảng tổng hợp chi tiết 131 
5.1.1Query QryTHCT131: 
Lọc trên QryBDMTK ra các tài khoản chi tiết 131xxx. Rồi từ số dư cơ bản (đầu kỳ, cuối kỳ), 
xác định xem nó dư bên nợ hay bên có. 
Nguồn: QryBDMTK 
Điều kiện lọc: SoHieuTK like ‘131*’ 
Các trường: 
 34 
SoHieuTK, TenTK 
SoDuDKNo: IIF(SoDuDK>0,SoDuDK,0) 
SoDuDKCo: IIF(SoDuDK<0,-SoDuDK,0) 
SoPSNo, SoPSCo 
SoDuCKNo: IIF(SoDuCK>0,SoDuCK,0) 
SoDuCKCo: IIF(SoDuCK<0,-SoDuCK,0) 
Câu lệnh SQL 
SELECT QryBDMTK.SoHieuTK, QryBDMTK.TenTK, IIf(sodudk>0,sodudk,0) AS 
sodudkno, IIf([sodudk]<0-[sodudk],0) AS sodudkco, QryBDMTK.SoPSNo, 
QryBDMTK.SoPSCo, IIf(soduck>0,soduck,0) AS soduckno, IIf([soduck]<0-[soduck],0) AS 
soduckco 
FROM QryBDMTK 
WHERE (((QryBDMTK.SoHieuTK) Like "131*")); 
5.1.2 Report RptTHCT131: 
Nguồn: QryTHCT131, 
Report layout: Tabular 
 35 
Kết quả: 
 36 
5.2. Bảng tổng hợp chi tiết TKxx : 
5.2.1Query QryTHCTTKxx: 
Nguồn: QryBDMTK 
Các trường: 
SoHieuTK, TenTK 
SoDuDKNo: IIF((LoaiTK= ‘N’ and SoDuDK>0) Or (LoaiTK= ‘C’ and SoDuDK<0), 
Abs(SoDuDK),0) 
SoDuCKCo: IIF((LoaiTK= ‘C’ and SoDuDK>0) Or (LoaiTK= ‘N’ and SoDuDK<0), 
Abs(SoDuDK),0) 
SoPSNo, SoPSNo 
SoDuCKNo: IIF((LoaiTK= ‘N’ and SoDuCK>0) Or (LoaiTK= ‘C’ and SoDuCK<0), 
Abs(SoDuCK),0) 
SoDuCKNo: IIF((LoaiTK= ‘C’ and SoDuCK>0) Or (LoaiTK= ‘N’ and SoDuCK<0), 
Abs(SoDuCK),0) 
Điều kiện lọc: SoHieuTK Like [NhapSoHieuTKTH] & “*” 
Câu lệnh SQL 
SELECT QryBDMTK.SoHieuTK, QryBDMTK.TenTK, IIf(([LoaiTK]='N' And 
[SoDuDK]>0) Or ([LoaiTK]='C' And [SoDuDK]<0),Abs([SoDuDK]),0) AS SoDuDKNo, 
IIf(([LoaiTK]='C' And [SoDuDK]>0) Or ([LoaiTK]='N' And [SoDuDK]<0),Abs([SoDuDK]),0) 
AS SoDuDKCo, QryBDMTK.SoPSNo, QryBDMTK.SoPSCo, IIf(([LoaiTK]='N' And 
[SoDuCK]>0) Or ([LoaiTK]='C' And [SoDuCK]<0),Abs([SoDuCK]),0) AS SoDuCKNo, 
IIf(([LoaiTK]='C' And [SoDuCK]>0) Or ([LoaiTK]='N' And [SoDuCK]<0),Abs([SoDuCK]),0) 
AS SoDuCKCo 
FROM QryBDMTK 
 37 
where sohieutk like [nhapsohieuTKTH]&"*" 
5.2.2 Report RprTHCTTKxx 
5.3. Nhật ký chung 
5.3.1. Query QryNKChung: 
Nguồn: QrySoKTMay 
Các trường: 
NgayGhiSo 
SoCT, NgayCT 
DienGiaiChiTiet 
TKGhiNo, TKGhiCo 
SoLuongPS, SoTienPS 
Điều kiện lọc: Left(TKGhiNo,3) Not In (‘111’,’131’) And 
 Left(TKGhiCo,3) Not In (‘111’,’331’) 
 38 
Câu lệnh SQL 
SELECT QrySoKTMay.Soct, QrySoKTMay.Ngayct, QrySoKTMay.DienGiai, 
QrySoKTMay.TKGHINO, QrySoKTMay.TKGHICO, QrySoKTMay.SoLuongPS, 
QrySoKTMay.SoTienPS 
FROM QrySoKTMay; 
5.3.2 Report RptNKChung 
5.4. Sổ chi tiết chi phí 
5.4.1 Query QrySoCP621: 
Nguồn: QrySoKTMay 
Các trường: 
NgayGhiSo 
SoCT, NgayCT 
 39 
DienGiaiChiTiet 
GhiNo621: SoTienPS 
GhiCo152: IIF(TKGhiCo Like ‘152*’, SoTienPS, 0) 
GhiCo111: IIF(TKGhiCo Like ‘111*’, SoTienPS, 0) 
GhiCo112: IIF(TKGhiCo Like ‘112*’, SoTienPS, 0) 
GhiCo331: IIF(TKGhiCo Like ‘331*’, SoTienPS, 0) 
GhiCoTKKhac: IIF(Left(TKGhiCo, 3) Not In (‘152*’, ‘111*’, ‘112*’, ‘331*’), SoTienPS,0) 
SoTienTKKhac: IIF(GhiCoTKKhac0, TKGhiCo, “”) 
Điều kiện lọc: TKGhiNo Like ‘621*’ 
Câu lệnh SQL 
SELECT QrySoKTMay.NgayGhiSo, QrySoKTMay.SoCT, QrySoKTMay.NgayCT, 
QrySoKTMay.DienGiaiChiTiet, QrySoKTMay.SoTienPS AS GhiNo621, IIf([TKGhiCo] Like 
'152*',[SoTienPS],0) AS GhiCo152, IIf([TKGhiCo] Like '111*',[SoTienPS],0) AS GhiCo111, 
IIf([TKGhiCo] Like '112*',[SoTienPS],0) AS GhiCo112, IIf([TKGhiCo] Like 
'331*',[SoTienPS],0) AS GhiCo331, IIf(Left([TKGhiCo],3) Not In 
('152','111','112','331'),[SoTienPS],0) AS GhiCoTKKhac, 
IIf([GhiCoTKKhac]0,[TKGhiCo],"") AS SoHieuTKKhac 
FROM QrySoKTMay 
WHERE (((QrySoKTMay.TKGHINO) Like '621*')); 
5.4.2 Report RptSoCP621 
 40 
5.5. Sổ cái 
5.5.1 Query QrySoCaiTK: 
Nguồn: QrySoKTMay_TKTH 
Tham số truyền vào: [SoHieuTK] 
Các trường: 
NgayGhiSo, SoCT, NgayCT, DienGiaiChung, 
TKDoiUng: IIF(TKGhiNoTH=[SoHieuTK], TKGhiCoTH, TKGhiNoTH) 
SoPSNo: IIF(TKGhiNoTH=[SoHieuTK],SoTienPSTH,0) 
SoPSCo: IIF(TKGhiCoTH=[SoHieuTK],SoTienPSTH,0) 
Điều kiện lọc: TKGhiNoTH= [SoHieuTKTH] Or TKGhiCoTH= [SoHieuTKTH] 
 Câu Lệnh SQL 
 41 
SELECT QrySoKTMay_TKTH.NgayGhiSo, QrySoKTMay_TKTH.Soct, 
QrySoKTMay_TKTH.Ngayct, QrySoKTMay_TKTH.DienGiai, 
IIf([TKGhiNoTH]=[SoHieuTK],[TKGhiCoTH],[TKGhiNoTH]) AS TKDOIUNG, 
IIf([TKGhiNoTH]=[SoHieuTK],[SoTienPSTH],0) AS SoPSNo, 
IIf([TKGhiCoTH]=[SoHieuTK],[SoTienPSTH],0) AS SoPSCo 
FROM QrySoKTMay_TKTH 
WHERE (((QrySoKTMay_TKTH.TKGHINOTH)=[sohieutkTH])) OR 
(((QrySoKTMay_TKTH.TKGHICOTH)=[sohieutkTH])); 
5.5.2 Report RptSocai 
Trong đó: 
 Số dư đầu kỳ =DSum("sodudk","QryBDMTK","sohieuTKTH='" & [sohieutk] & "'") 
 42 
 Loại TK= DLookUp("LoaiTK","dat_tblBDMTKTongHop","SoHieuTK='" & [SoHieuTK] & "'") 
 Số hiệu = sohieutTKTH 
 Tên TK: DLookUp("TenTK","dat_tblBDMTKTongHop","SoHieuTK='" & [SoHieuTK] & "'") 
 Số dư đầu kỳ nợ: =IIf(([SoDuDK]>0 And [LoaiTK]='N') Or ([SoDuDK]<0 And 
[loaiTK]='C'),Abs([SoDuDK]),0) 
 Số dư đầu kỳ có = IIf(([SoDuDK]>0 And [LoaiTK]='C') Or ([SoDuDK]<0 And 
[loaiTK]='N'),Abs([SoDuDK]),0) 
 Tổng phát sinh nợ = Sum([SoPSNo]) 
 Tổng phát sinh có = Sum([SoPSCo]) 
 Số dư cuối kỳ nợ = IIf(([SoDuDKNo]-[SoDuDKco]+[sumSoPSNo]-
[SumSoPSCo]>0),[SoDuDKNo]-[SoDuDKCo]+[sumSoPSNo]-[SumSoPSNo],0) 
 Số dư cuối kỳ có = =IIf(([SoDuDKCo]-[SoDuDKNo]+[sumSoPSCo]-
[SumSoPSNo]>0),[SoDuDKCo]-[SoDuDKNo]+[sumSoPSCo]-[SumSoPSCo],0) 
5.6 Bảng tổng hợp chi tiết Các TK 
5.6.1Query QryTHCTCTK: 
Nguồn: QryBDMTK 
Các trường: 
SoHieuTK, TenTK 
SoDuDKNo: IIF((LoaiTK= ‘N’ and SoDuDK>0) Or (LoaiTK= ‘C’ and SoDuDK<0), 
Abs(SoDuDK),0) 
SoDuCKCo: IIF((LoaiTK= ‘C’ and SoDuDK>0) Or (LoaiTK= ‘N’ and SoDuDK<0), 
Abs(SoDuDK),0) 
SoPSNo, SoPSNo 
SoDuCKNo: IIF((LoaiTK= ‘N’ and SoDuCK>0) Or (LoaiTK= ‘C’ and SoDuCK<0), 
Abs(SoDuCK),0) 
SoDuCKNo: IIF((LoaiTK= ‘C’ and SoDuCK>0) Or (LoaiTK= ‘N’ and SoDuCK<0), 
Abs(SoDuCK),0) 
 43 
Câu lệnh SQL 
SELECT QryBDMTK.SoHieuTK, QryBDMTK.TenTK, IIf(([LoaiTK]='N' And 
[SoDuDK]>0) Or ([LoaiTK]='C' And [SoDuDK]<0),Abs([SoDuDK]),0) AS SoDuDKNo, 
IIf(([LoaiTK]='C' And [SoDuDK]>0) Or ([LoaiTK]='N' And [SoDuDK]<0),Abs([SoDuDK]),0) 
AS SoDuDKCo, QryBDMTK.SoPSNo, QryBDMTK.SoPSCo, IIf(([LoaiTK]='N' And 
[SoDuCK]>0) Or ([LoaiTK]='C' And [SoDuCK]<0),Abs([SoDuCK]),0) AS SoDuCKNo, 
IIf(([LoaiTK]='C' And [SoDuCK]>0) Or ([LoaiTK]='N' And [SoDuCK]<0),Abs([SoDuCK]),0) 
AS SoDuCKCo 
FROM QryBDMTK 
5.6.2 Report RptTHCTCTK 
 44 
5.7 Phiếu thu: 
5.7.1 Query QryPhieuThu: 
Liệt kê thông tin của tất cả các phiếu thu tổng hợp từ các bút toán định khoản cùng với số 
phiếu thu tương ứng. 
Nguồn: QrySoKTMay, Query type: total 
Các trường: 
Field Total 
NghiepVu 
SoPhieuThuChi 
CTGoc: SoSerie & “-“ & SoHoaDon 
Nguoi_NhanNop 
DiaChi_NguoiNhanNop 
DienGiaiChung 
Group By 
SoTien: IIF(TKGhiNo Like ‘111*’, SoTienPS,0) Sum 
 45 
Điều kiện lọc: TKGhiNo Like ‘111*’ 
Câu lệnh SQL 
SELECT Qrysoktmay.NghiepVu, Qrysoktmay.SoPhieuThuChi, 
Qrysoktmay.NgayCT_ThuChi, Count([soserie] & "-" & [sohoadon]) AS chungtugoc, 
Qrysoktmay.nguoi_nhannop, Qrysoktmay.diachi_nguoinhannop, Qrysoktmay.DienGiaiChung, 
Sum(IIf([tkghino] Like '111*',[sotienps],0)) AS sotien 
FROM Qrysoktmay 
GROUP BY Qrysoktmay.NghiepVu, Qrysoktmay.SoPhieuThuChi, 
Qrysoktmay.NgayCT_ThuChi, Qrysoktmay.nguoi_nhannop, Qrysoktmay.diachi_nguoinhannop, 
Qrysoktmay.DienGiaiChung, Qrysoktmay.TKGHINO 
HAVING (((Qrysoktmay.TKGHINO) Like "111*")); 
5.7.2 Report RptPHIEUTHU 
 46 
Kết quả: 
 47 
5.8 Phiếu nhập xuất kho: 
 5.8.1 Query QryPhieuNhapKho: 
Liệt kê thông tin của tất cả các phiếu nhập kho tổng hợp từ các bút toán định khoản cùng với 
số phiếu nhập kho tương ứng. 
Nguồn: QrySoKTMay, dat_tblBDMTK 
Các trường: 
NghiepVu, SoPhieuNhapXuat, NgayCT_NhapXuat, 
TheoChungTu: SoSerie & “-“ & SoHoaDon 
DienGiaiChung, Nguoi_GiaoNhan, GiaoNhanTaiKho, 
MaHH: SoHieuTK 
TenHH: TenTK 
SLNhap: SoluongPS Sum 
TriGiaNhap: SoTienPS Sum 
Điều kiện lọc: Left(TKGhiNo,3) In (‘152*’,’153*’) 
 48 
Câu lệnh SQL 
SELECT QrySoKTMay.NghiepVu, QrySoKTMay.DienGiaiChung, 
QrySoKTMay.SoPhieuNhapXuat, QrySoKTMay.TenCSKD AS CuaDV, 
QrySoKTMay.NgayCT_NhapXuat, [SoSerie] & "_" & [SoHoaDon] AS TheoChungTu, 
QrySoKTMay.Nguoi_GiaoNhan, QrySoKTMay.GiaoNhanTaiKho, dat_tblBDMTK.SoHieuTK 
AS MaHH, dat_tblBDMTK.TenTK AS TenHH, Sum(QrySoKTMay.SoLuongPS) AS SLNhap, 
Sum(QrySoKTMay.SoTienPS) AS TriGiaNhap, dat_tblBDMTK.DVT 
FROM QrySoKTMay INNER JOIN dat_tblBDMTK ON QrySoKTMay.TKGHINO = 
dat_tblBDMTK.SoHieuTK 
WHERE (((Left([TKGhiNo],3)) In ('152','153'))) 
GROUP BY QrySoKTMay.NghiepVu, QrySoKTMay.DienGiaiChung, 
QrySoKTMay.SoPhieuNhapXuat, QrySoKTMay.TenCSKD, QrySoKTMay.NgayCT_NhapXuat, 
[SoSerie] & "_" & [SoHoaDon], QrySoKTMay.Nguoi_GiaoNhan, 
QrySoKTMay.GiaoNhanTaiKho, dat_tblBDMTK.SoHieuTK, dat_tblBDMTK.TenTK, 
dat_tblBDMTK.DVT; 
5.8.2 Report RPTPhieunhapkho 
 49 
Kết quả thực thi: 
 50 
Xây dựng Module thư viện dùng chung. 
 Trường Name: cho biết tên của giá trị chuỗi thường dùng. 
 Value: cho biết hằng giá trị của nó như thế nào. 
Ta tạo một Module với tên Md_CompanyInfo dùng với hàm dò tìm thông tin trên bảng như sau: 
Function GetCompanyInfo(name As String) As String 
 GetCompanyInfo = Nz(DLookup("Value", "CompanyInfo", "Name='" & name & "'")) 
End Function 
 51 
BÀI TẬP ỨNG DỤNG 
Doanh nghiệp tư nhân MKM trong tháng 6 năm 2010 có các nghiệp vụ kinh tế phát sinh như sau 
(đvt: 1.000đ): 
 Số dư đầu kỳ: 
Số hiệu 
TK 
Dự nợ Số hiệu 
TK 
Dư có 
111 100.000.000 411 2.000.000.000 
112 500.000.000 214 1.800.700.000 
1311 50.300.000 3312 332.300.000 
1521 6.000.000 338 25.000.000 
1522 5.000.000 421 20.000.000 
155 250.000.000 431 234.000.000 
211 3.800.700.000 441 300.000.000 
Tổng 
cộng 
4.712.000.000 4.712.000.000 
Các nghiệp vụ kinh tế phát sinh trong kỳ: 
1. Ngày 1/6 Chi tiền mặt tạm ứng cho nhân viên Quang mua máy vi tính số tiền 15.000 (PC601) 
2. Ngày 1/6 Nhập kho 500 kg nguyên liệu CT023 từ công ty HHA trị giá 50.000, thuế GTGT 
10%, đơn vị chưa thanh toán cho công ty HHA (HĐGTGT 1234) 
3. Ngày 2/6 Thanh toán tiền quảng cáo sản phẩm HH98 cho công ty quảng cáo Mặt trời số tiền 
6.000(PC 602) 
4. Ngày 4/6 PXK xuất kho 600 cái sản phẩm HH98 bán cho công ty cổ phẩn MMC, giá bán 
500/cái, thuế suất GTGT 5%, công ty MMC đã thanh toán bằng chuyển khoản ngân hàng 
(GBC2345, HĐGTGT 3456, PXK601) 
5. Ngày 5/6 xuất kho 100 kg nguyên liệu M012 sản xuất sản phẩm HH95 (PXK602) 
6. Ngày 6/6 Thanh toán tiền điện thoại nhân viên quản lý số tiền 5.540 (PC 603, HĐGTGT 235) 
7. Ngày 7/6 Xuất 200kg nguyên liệu CT023 dùng cho sản xuất sản phẩm HH95 (PXK612) 
8. Ngày 7/6 Nhân viên Quang thanh toán tạm ứng bằng một máy tính HP5600 trị giá 13.500, số 
tiền còn thừa nhân viên Quang đã hoàn quỹ (PT601, HĐGTGT 237) 
9. Ngày 7/6 Mua 50 cái công cụ dụng cụ C034 dùng trực tiếp cho sản xuất sản phẩm HH95 trị 
giá 5.000, thuế GTGT 500 từ DNTN TMM, đơn vị đã thanh toán bằng chuyển khoản ngân 
hàng (HĐGTGT 458, GBN 601) 
Mã Khách 
hàng 
Tên khách 
hàng 
Số tiền 
1311YIC Công ty YIC 50.300.000 
3312KIJ Công ty KIJ 332.300.000 
MVT Tên VT ĐVT SL ĐG TT 
155HH98 TP HH 98 Cái 1.000 250.000 250.000.000 
1521M012 NL chính M012 Kg 400 150.000 6.000.000 
1522N045 NL phụ N045 Lít 100 50.000 5.000.000 
 52 
10. Ngày 9/6 Công ty YIC thanh toán khoản nợ tháng trước bằng chuyển khoản ngân hàng số 
tiền 50.300 (GBC 604) 
11. Ngày 15/6 Nộp vào kho bạc số tiền vi phạm luật giao thông số tiền 2.000 (PC604) 
12. Ngày 17/6 tập hợp chi phí quản lý phân xưởng phát sinh 17.000 trong đó: Chi tiền mua nhiên 
liệu L023: 4.000, thuế GTGT 5% (PC603, HĐGTGT 788); 50 lít nguyên liệu phụ N045 
(PXK603); Tiền dịch vụ mua ngoài 10.500, thuế 10% (HĐGTGT 367, PC605) 
13. Ngày 18/6 mua một số văn phòng phẩm dùng cho quản lý doanh nghiệp trị giá 12.000, thuế 
GTGT 10% đơn vị đã thanh toán bằng tiền mặt (PC606, HĐGTGT 4858) 
14. Ngày 25/6 BTTL06 tính tiền lương nhân viên tháng 6 trong đó: 
 Nhân viên SXSP 50.000; QLPX 20.000; QLDN 30.000; BH 25.000 
 Các khoản trích theo lương theo quy định 
15. Ngày 26/6 đơn vị đã thanh toán lương cho nhân viên bằng chuyển khoản ngân hàng (GBN 602) 
16. Ngày 27/6 Bán 200 sản phẩm HH98 cho công ty OT, giá bán 490/cái thuế suất GTGT 5%, 
công ty OT.Chưa thu tiền của công ty OT (HĐGTGT 3498) 
17. Ngày 28/6 Bảng tính và phân bổ khấu hao 06 chi phí khấu hao toàn doanh nghiệp 5.400 
trong đó, QLDN 400, BPSX 4.000, BPBH 1.000 
18. Ngày 29/6 Tập hợp chi phí sản xuất tính giá thành sản phẩm. Biết phân xưởng sản xuất báo 
hoàn thành 1.000 cái sản phẩm HH95, sản phẩm dở dang cuối kỳ 1.000 
19. Ngày 29/6 Tập hợp chi phí xác định kết quả kinh doanh tháng 6 của doanh nghiệp MKM 
20. Tính thuế GTGT phải nộp trong tháng biết thuế GTGT đầu vào được khấu trừ là 90% 
Yêu cầu: 
1. Anh (chị) hãy điền các nghiệp vụ kinh tế phát sinh vào sổ kế toán máy theo các trường 
sau (nghiepvu, ngayghiso, ngaychungtu, sohoadon, sophieuthuchi, sophieunhapxuat, 
chungtukhac, ghinotk, ghicotk, soluongphatsinh, sotienphatsinh) 
2. Anh (chị) hãy thiết kế những table cần thiết và mối liên kết giữa những table đó để tổ 
chức dữ liệu kế toán trên phần mềm access. 
3. Anh (chị) hãy xây dựng những query, report cần thiết để lên các sổ sách, chứng từ sau: 
 Sổ chi tiết; bảng tổng hợp chi tiết 131,141,331,334.. 
 Sổ chi tiết chi phí 622, 627, 154, 641, 642.. 
 Sổ chi tiết, bảng tổng hợp chi tiết dùng chung cho các tài khoản. 
 Sổ quỹ tiền mặt, tiền gửi ngân hàng 
 Nhật ký đặc biệt, nhật ký chung 
 Sổ cái dùng chung cho các tài khoản 
 Phiếu thu chi tiền mặt, tiền gửi ngân hàng; phiếu nhập xuất, kho. 
 53 
TÀI LIỆU THAM KHẢO 
[1] Hướng dẫn thực hành viết phần mềm kế toán trên Access – Viện tài chính kế toán & Tin học 
– Ths. Đặng Văn Sáng – Kỹ sư Nguyễn Ngọc Hiến – Nhà xuất bản Giao thông vận tải 
[2] Bài giảng thực hành Hệ thống thông tin kế toán 1,3 – Bộ môn Kiểm toán – Trường Đại học 
Nha Trang. 

File đính kèm:

  • pdfgiao_trinh_he_thong_thong_tin_ke_toan_3_excel_ke_toan_phan_2.pdf