Ke Toan May 2_linhtq

  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ke Toan May 2_linhtq as PDF for free.

More details

  • Words: 29,678
  • Pages: 87
Bài giảng Kế toán máy II

Chương I .

GIỚI THIỆU MICROSOFT ACCESS VÀ CSDL KẾ TOÁN

I/ Các vấn đề cơ bản về cơ sở dữ liệu Access 1. Khởi động và thoát khỏi Access 1.1 Khởi động MS Access là một phần mềm của Microsoft, cho nên cách khởi động nó cũng giống như các phần mềm Word, Excel. Để khởi động MS Access ta có thể chọn các cách sau:  Nhắp chuột vào nút Microsoft Access trên dòng nút Microsoft office shortcut Bar  Nhắp đúp vào biểu tượng Microsoft Access trên màn hình nền  Chọn Start / Program / Microsoft Access Sau khi thực hiện một trong các cách trên, ta có màn hình khởi động của Access như sau:

Hình 1 Giao diện của Microsoft Access cũng tương tự như Word, Excel nó cũng có một số thành phần cơ bản như : Thanh tiều đề (chứa tên chương trình ứng dụng), Thanh Menu lệnh, Các thanh công cụ.... Ngay từ lúc khởi động Microsoft Access đã xuất hiện hộp thoại trong đó cung cấp cho chúng ta một số khả năng sau :  Create a New database using (Tạo CSDL mới) : chúng ta có thể chọn một trong 2 khả năng: Nếu chọn mục Blank Access Database chúng ta sẽ tạo một CSDL trống, ngược lại nếu chọn mục Access Database Wizard chúng ta sẽ tạo một CSDL mới theo một đồ thuật định sẵn của Access  Open an Existing Database : Chúng ta sẽ mở các CSDL đã có, bằng cách chọn trong khung liệt kê bên dưới, hoặc chọn mục More file... 1.2 Thoát khỏi Microsoft Access Chúng ta có thể thoát khỏi Access bằng cách : Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

1

Bài giảng Kế toán máy II



Đóng nút Close • Bấm cặp phím tắt Alt+F4 • Chọn lệnh File / Exit

2. Khái niệm CSDL Access 2.1 Khái niệm - Cơ sở dữ liệu là tập hợp thông tin được tổ chức dưới dạng các tập tin (file) . Cơ sở dữ liệu được xem như là nơi tập hợp tất cả những tin tức, dữ kiện được tổ chức theo một cấu trúc nào đó, nó là cơ sở để người sử dụng khai thác dữ liệu phục vụ cho quản lý. - Các tập tin được xem như là một tập hợp có tổ chức về những mẫu tin (record) cùng thuộc một vấn đề thuần nhất về mặt xử lý. - Cơ sở dữ liệu Access thường được lưu trữ dưới dạng một tập tin có phần tên mở rộng MDB. Cơ sở dữ liệu quan hệ : Hầu hết tất cả các hệ quản trị cơ sở dữ liệu hiện nay đều lưu trữ và quản lý thông tin theo mô hình quản trị cơ sở dữ liệu quan hệ (Relation), sự quan hệ trong cơ sở dữ liệu được thể hiện ở 2 vấn đề : • Từng mẫu tin (record) trong cơ sở dữ liệu đều chứa thông tin có liên quan đến một chủ thể riêng biệt và chỉ với chủ thể đó, những mẫu tin này đều có những thuộc tính (Attribute) có liên quan với nhau Ví dụ để quản lý chứng từ kế toán phát sinh hằng ngày trong một doanh nghiệp, chúng ta sẽ mô tả các chứng từ đó thành các mẫu tin (mỗi mẫu tin chứng từ phát sinh có các thuộc tính như Ngày lập chứng từ, số chứng từ, Tài khoản ghi nợ, tài khoản ghi có, số tiền...), và các mẫu tin này không thể trùng lắp với nhau • Các mẫu tin được tổ chức dưới dạng các Bảng, và thông tin giữa các bảng này có quan hệ với nhau Ví dụ: Để quản lý công tác kế toán thì các thông tin về các chứng từ phát sinh hằng ngày có thể lưu trữ trong bảng CTPS, còn hệ thống tài khoản thì lưu trữ trong bảng TKSD, các số hiệu trong CTPS đều phải tồn tại trong TKSD 2.2. Các thành phần trong một CSDL Access Cơ sở dữ liệu trong Access là một cơ sở dữ liệu quan hệ, trong đó các dữ liệu được đặt trong các bảng có quan hệ với nhau. Nội dung các thành phần trong CSDL Access 

Bảng (Tables) Bảng là thành phần quan trọng nhất của CSDL trong Access, mô tả ở mức nội, các thông tin lưu trữ trong bảng được tổ chức dưới dạng các mẫu tin (records), mỗi mẫu tin gồm nhiều thuộc tính thể hiện bởi những trị số khác nhau, được xem như những dữ kiện sơ đẳng (không thể phân nhỏ nữa vì sẽ mất hết ý nghĩa của nó) mà ta gọi là mục tin (item). Các mục tin cần thiết hợp lại mô tả một cách trọn vẹn một chủ thể, và tạo thành một mẫu tin. Thông thường chúng ta mô tả một cơ sở dữ liệu dưới dạng một bảng, Mà mỗi dòng trên bảng là một mẫu tin, và mỗi cột là một mục tin Trong Bảng bao gồm các quan hệ và sự ràng buộc toàn vẹn của CSDL 2

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

 Truy vấn (Queries) Là công cụ để hỏi đáp truy tìm các thông tin cần thiết dựa trên cơ sở các bảng, mô tả và phát triển CSDL ở mức ngoại, nó có thể cung cấp thông tin để tạo ra các báo biểu 

Biểu mẫu (Forms) Là công cụ dùng để tạo ra các giao diện hệ thống, các màn hình nhập liệu quen thuộc cho người sử dụng  Báo biểu (Reports) Các Report dùng để thiết kế các báo biểu để xem, in ấn nó truy xuất thông tin từ các bảng, các truy vấn tạo ra các báo cáo phục vụ cho quản lý  Lệnh vĩ mô ( Macros) Macro là tập hợp lệnh ngầm được tự động hóa thi hành, mỗi khi nó được gọi  Đơn thể (Modules) Modules cũng là một tập hợp lệnh tự động hóa dưới dạng cao cấp hơn, nó bao gồm các hàm (Function), các thủ tục (Procedure), để tạo ra các module chúng ta lập trình bằng ngôn ngữ Access Basic.

3. Bảng (Table) 3.1 Thiết kế bảng bằng Design View Để tạo một bảng mới chúng ta theo qui trình sau: Bước 1: Mở một cơ sở dữ liệu mới, hoặc mở cơ sở dữ liệu đã có sẵn trong Access Bước 2: Chọn lớp Tables trong cửa sổ cơ sở dữ liệu

Hình 2 Bước 3: Chọn tiếp nút New sẽ có hộp thoại tên New Table xuất hiện

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

3

Bài giảng Kế toán máy II

Trong bước này chúng ta có thể chọn các mục sau : • Datasheet View nếu chúng ta chọn cách thiết kế bảng ở dạng này thì Access sẽ trình bày một bảng dưới dạng một bảng giống như trong Excel, và công việc của chúng ta còn lại là đổi tên các cột mặc định, và khai báo một số thuộc tính cho các cột • Table Wizard trong cách này thì Access sẽ thực hiện từng bước hướng dẫn theo một đồ thuật (Wizard) để chúng ta tạo ra một bảng mới (cách này không phù hợp với những thiết kế CSDL phức tạp) • Design View đây là cách thiết kế thông dụng nhất, cách này chúng ta sẽ tạo ra các bảng theo thiết kế tùy ý của mình. • Import Table bằng cách này chúng ta có thể nhập các bảng dữ liệu khác từ nhiều nguồn khác nhau vào CSDL hiện hành. • Link Table nối các bảng vào CSDL hiện hành

Thiết kế bảng bằng Design View Công việc quan trọng nhất của chúng ta để tổ chức một ứng dụng quản trị một hệ dữ liệu ban đầu để khai thác, trong CSDL Access thì Table là nơi để chúng ta tổ chức lưu trữ các dữ liệu ban đầu, việc thiết kế các bảng càng kỹ càng bao nhiêu thì khâu nhập liệu của chúng ta sau này sẽ dể dàng và chính xác bấy nhiêu, trong 3 phương pháp trên thì phương pháp Design View là phương pháp giúp cho người sử dụng có thể tạo ra các bảng tốt nhất do đó ở đây chúng tôi sẽ đề cập kỹ đến. Sau khi chọn Design View thì ta có màn hình sau xuất hiện, chúng ta lần lượt làm các bước sau : a) Nhập tên của các cột (trường, hoặc vùng) vào cột Field Name, công việc này là dùng để mô tả tên các cột của một bảng (tên của các phần tử trong một quan hệ). Tên trường có thể dài đến 64 ký tự, bắt đầu bằng một chữ cái (a-z) hoặc số (0-9). Trong tên trường có thế có khoảng trống, nhưng không được chứa dấu chấm (.), trong thực tế nên đặt tên trường ngắn gọn và gợi nhớ, và cũng không nên đặt ký tự trống bên trong. Ví dụ: Để mô tả một bảng lưu giữ các chứng từ phát sinh ban đầu các nghiệp vụ kế toán của một doanh nghiệp, ta có thể tạo một bảng có tên CTPS, bao gồm các nội dung sau : - Số chứng từ : tên trường nên đặt là SOCT - Ngày lập chứng từ : tên trường đặt là NGAY - Mã tài khoản ghi nợ : tên trường đặt là TKNO 4

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

- Mã chi tiết ghi nợ (trong trường hợp chúng ta cần theo dõi chi tiết, ví dụ tài khoản 152 Nguyên vật liệu thì mã tài khoản nhà nước cung cấp chỉ đến cấp 2, nhưng chúng ta cần theo dõi cho từng Nguyên vật liệu thì phải dùng những mã chi tiết này để theo dõi), tên trường đặt là CTNO - Mã tài khoản ghi có : tên trường đặt là TCNO - Mã chi tiết ghi nợ : tên trường đặt là CTCO - Số lượng : tên trường đặt là SOLG - Số tiền nợ : tên trường đặt là PSNO - Số tiền có : tên trường là PSCO - Nội dung chứng từ : tên trường đặt là DGIAI b) Sau khi nhập tên một trường vào thì chúng ta phải khai báo kiểu dữ liệu của nó bằng cách chọn mục Data Type (kiểu dữ liệu), việc chọn kiểu dữ liệu phải đòi hỏi chính xác và đúng với yêu cầu. Các kiểu dữ liệu trong Access được mô tả ở bảng dưới đây: Kiểu dữ liệu

ý nghĩa

Text

Dạng ký tự văn bản có độ dài <= 255 ký tự

Memo

Dạng văn bản có độ dài động <= 64000 ký tự

Number

Dạng số có độ dài từ 1, 2, 4, hoặc 8 byte

Date/Time

Dạng Ngày giờ có độ dài 8 byte

Currency

Dạng số tiền tệ có độ dài 8 byte

Autonumber

Dạng số nguyên tự động do Access gán vào tăng dần

Yes/No

Dạng Logic (True/False) chiếm 1 byte

Hyperlink

Siêu liên kết

Lookup Wizard

Đồ thuật cho phép tìm kiếm dữ liệu

OLE Object

Đối tượng nhúng (Hình ảnh, âm thanh, các tài liệu khác..)

Ví dụ: Trường PSNO và SOLG ở trên thì chúng ta không thể chọn là kiểu Text, mà chỉ nên chọn dạng Number, vì nếu chọn là kiểu Text (kiểu mặc định của Access) thì số nhập vào sẽ ở dạng chuỗi, sau này việc tính toán sẽ phức tạp, hoặc nếu như số chứng từ nếu chúng ta muốn nhập và giữ nguyên ví dụ như 0001, thì trường SOCT phải được chọn là kiểu Text, vì nếu là kiểu Number thì khi bạn nhập 01 nó sẽ vào là 1.

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

5

Bài giảng Kế toán máy II

Nếu cần thiết thì chúng ta sẽ viết dòng mô tả tên trường vào mục Description, dòng này có công dụng diễn giải một cách cụ thể cho trường vừa tạo (không bắt buộc phải nhập) d) Tiếp đến là việc khai báo các thuộc tính ràng buộc cho một vùng bằng mục Field Properties đây là một công việc hết sức quan trong trong khâu thiết kế CSDL chúng ta phải hết sức thận trọng, vì các khai báo này nếu như không hợp lệ thì sẽ dẫn đến khó khăn trong khâu nhập liệu sau này. Đối với mỗi vùng cần phải khai báo thêm các ràng buộc (điều kiện) để có thể sàng lọc được các giá trị được chấp nhận ( Khác với việc nhập liệu trong các bảng tính Excel các giá trị được nhập vào một cách tự do không kiểm soát được ví dụ như chúng ta có thể nhập vào các mã số tài khoản không có thực vào các bảng ghi chứng từ phát sinh). Bảng sau đây sẽ liệt kê các thuộc tính và ý nghĩa của nó. c)

Thuộc tính

6

ý nghĩa

Field size

Độ lớn của trường

Format

Định dạng hiển thị số liệu (không bắt buộc)

Input Mask

Khuôn nhập liệu

Caption

Mục này dùng để đặt một tên khác cho trường, chỉ dùng cho Form và Report (nó còn hiển thị trong bảng ở chế độ Datasheet view)

Default Value

Gía trị mặc định gán sẵn cho trường

Validation Rule

Điều kiện hợp lệ khi nhập liệu

Validation Text

Dòng thông báo hiện ra khi nhập liệu sai điều kiện hợp lệ

Required

Nếu chọn Yes thì bắt buộc phải nhập liệu cho trường, chọn No thì có thể bỏ trống Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Allow Zero Lengh

Cho phép nhận trị rổng không? (Yes/No)

Indexed

Có tạo chỉ mục không? chọn No thì dữ liệu trong trường sẽ không sắp xếp, chọn Yes (Duplicate OK) thì có sắp xếp và dữ liệu được lặp trùng lại, và Yes (No Duplicate) thì có sắp xếp nhưng không được trùng lại.

Chú ý Tất cả các mục trên chúng ta đang sử dụng trên phiếu General, ngoài ra để có thể sử dụng các công cụ hướng dẫn truy tìm dữ liệu tự động nhập vào cho các trường ở phiếu Lookup, đặc biệt để hổ trợ thiết kế bảng dưới đây chúng tôi sẽ trình bày một số định dạng thường được sử dụng trong các thuộc tính Format, Field Size và Input Mask.  Với thuộc tính Format, chúng ta có thể sử dụng các ký tự - @ (dùng để thể hiện mọi ký tự có sẵn hoặc một dấu cách tại vị trí này) - & (dùng để thể hiện mọi ký tự có sẵn tại vị trí này. Nếu không có ký tự nào sẵn dùng để hiển thị, thì Access không hiển thị gì cả) - < (đổi các ký tự thành chữ thường), hoặc > (chữ hoa) cho trường dữ liệu kiểu văn bản (Text)  Với thuộc tính Field Size cụ thể đối với kiểu Number ta có: Kiểu

Phạm vi

Số số lẻ

Độ dài Byte

Byte

0 đến 255

Không

1

Integer

-32768 đến +32767

Không

2

Long Integer

-2147483648 đến 2147483647

Không

4

Single

-3,4 x 10 38 đến 3,4 x 1038

7

4

Double

-1,797 x 10308 đến 1,797 x 10308

15

8

 Với thuộc tính Input Mask chúng ta có thể qui định dữ liệu nhập vào theo ý của

chính mình. Muốn vậy bạn hãy tự đánh vào dòng Input Mask khung mặt nạ nhập dữ liệu bằng những ký tự điều khiển định dạng cho ở bảng dưới đây: Ký tự

Ý nghĩa

0

Vị trí dành cho một ký số (0-9) bắt buộc nhập

9

Vị trí dành cho một ký số (0-9), không bắt buộc nhập

#

Vị trí dành cho một ký số (0-9), dấu + - không bắt buộc nhập

L

Vị trí dành cho một ký tự (a-z) bắt buộc nhập

?

Vị trí dành cho một ký tự chữ (a-z) không bắt buộc nhập

A

Vị trí dành cho một ký tự chữ (a-z) hoặc số (0-9) bắt buộc nhập

a

Vị trí dành cho cho một ký tự chữ (a-z) hoặc số (0-9) không bắt buộc nhập

&

Vị trí dành cho một ký tự bất kỳ bắt buộc nhập

C

Vị trí dành cho một ký tự bất kỳ không bắt buộc nhập

.,:/

Dấu thập phân (.), Dấu phân cách hàng ngàn (,) , Dấu phân cách Ngày/ Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

7

Bài giảng Kế toán máy II

thời gian (- / :) tuỳ thuộc vào Control Panel <

Các ký tự theo sau phải đổi thành chữ thường

>

Các ký tự theo sau phải đổi thành chữ hoa

!

Nếu dùng ký tự này thì dữ liệu sẽ được điền vào từ phải sang trái

\

Qui định ký tự theo sau dấu này là một hằng

Ví dụ: ta chọn một trường nào đó dạng Text, ví dụ trường SOCT ghi số chứng từ của một bảng : Nếu đặt Input mask có dạng (000) 000-00 , thì dữ liệu ghi bạn nhập vào nếu bạn gõ tại bàn phím dãy số 25543256 thì khi nhập vào nó sẽ có dạng (255) 432-56 Chú ý 2: Trong quá trình thiết kế bảng nếu có xảy ra việc thiếu hoặc thừa trường, thì chúng ta có thể thêm vào hoặc xoá bớt trường bằng cáchs sau :  Muốn thêm vào một trường, thì rê chuột đến đầu dòng có tên trường X và nhắp chuột để chọn dòng này và có thể dùng lệnh Insert /Rows hoặc bấm nút phải chuột, xuất hiện bảng lệnh ngắn và chọn lệnh Insert Rows, trường mới sẽ được chèn vào và đẩy trường X xuống dưới  Muốn xoá bớt một trường thì dùng chuột chọn trường cần xoá và chọn lệnh Edit / Delete Rows hoặc bấm nút phải chuột và chọn lệnh Delete Rows, hoặc bấm vào nút Delete e) Sau khi xong tát cả các thủ tục trên chúng ta cần tiến hành một công việc quan trọng trong việc thiết kế CSDL trong Access đó là xác định Khoá chính (Set Primary Key) .

Khoá chính (Primary Key) Khoá chính của một bảng có thể gồm một trường hoặc nhiều trường, dựa vào nó mà chúng ta mới có thể phân biệt bản ghi này với bản ghi khác trong Bảng. Khoá chính còn được gọi là Khoá nội hay là khoá nhận dạng. Các giá trị trong khoá chính không được trùng nhau và không có gía trị Null (giá trị rổng), các khoá chính là cơ sở để tạo mối liên kết giữa bảng này với các bảng khác (thông qua khoá ngoại của bảng khác (Forgein key)), để tạo khoá chính cho một bảng chúng ta tiến hành các bước sau:  Chọn các trường làm khoá chính bằng cách nhắp chuột vào đầu dòng chứa trường làm khoá chính (chúng ta có thể dùng với phím Shift hoặc Ctrl để chọn nhiều trường cùng một lúc)  Chọn lệnh Edit / Primary Key hoặc bấm nút phải chuột chọn lệnh Primary Key lập tức bên cạnh tên trường chọn làm khoá chính sẽ xuất hiện một chiéc chìa khoá f) Công việc cuối cùng của chúng ta là đặt tên cho bảng và lưu bằng cách bấm vào nút Save hoặc bấm Ctrl+S xuất hiện hộp thoại sau, chúng ta điền tên bảng và OK

8

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

3.2 Thiết lập quan hệ giữa các bảng Để thiết lập mối quan hệ giữa các bảng với nhau chúng ta thực hiện theo qui trình sau Bước 1 Hiển thị cửa sổ Relationships Bạn chọn lệnh Tools / Relationships, hoặc nhắp chuột vào nút Relationships Nút Relationships

Nếu trước đó chúng ta đã định nghĩa hoặc xem và điều chỉnh khai báo quan hệ của CSDL thì Access sẽ hiển thị tình trạng cuối cùng của cửa sổ Relationships, còn nếu như là lần đầu tiên thì nó sẽ hiện một cửa sổ Relationships trống như hình dưới.

Bước 2 Thêm các bảng dữ liệu hoặc các bảng vấn tin mới vào cửa sổ Relationships Bình thường thì Access đã hiển thị sẵn hộp thoại Show Table để chúng ta làm việc, nhưng nếu không xuất hiện thì hãy bấm nút phải chuột và chọn lệnh Show Table thì nó sẽ hiện hộp thoại trên. Trong hộp thoại trên bạn sẽ chọn các bảng dữ liệu (lớp Table) hoặc các bảng vấn tin (lớp Query) hoặc cả 2 loại (lớp Both) và ấn nút Add để đưa các bảng vào cửa sổ Relationships, cuối cùng ấn nút Close để đóng hộp thoại Show Table Bước 3 Qui định sự quan hệ giữa các bảng

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

9

Bài giảng Kế toán máy II

Dời con trỏ chuột đến tên khoá chính (Primary key) của bảng chính (Primay Table), ấn chuột và kéo sang tên trường đối chiếu ở bảng quan hệ (Related Table), trong lúc kéo sang chúng ta thấy con chuột biến thành ký hiệu bảng dữ liệu (giống như con sâu) và lúc nhả chuột sẽ có một hộp thoại yêu cầu xác định một số tuỳ chọn như hình dưới :



Enforce Referential Intergrity Tuỳ chọn này nhằm đảm bảo tính toàn vẹn về tham chiéu dữ liệu giữa bảng chính và bảng quan hệ, tính toàn vẹn được thể hiện ở các điểm  Khi thêm một bản ghi mới vào bảng quan hệ và gõ trị vào trường tham chiếu, thì trong bảng chính phải có sẵn 1 bản ghi mà trường Primary key cũng có trị này.  Chúng ta không thể xoá được một bản ghi của bảng chính, nếu trong bảng quan hệ tồn tại những bản ghi có quan hệ với bản ghi (ở bảng chính) muốn xoá.  Cascade Delete Related Records sau khi đã chọn tuỳ chọn trên chúng ta vẫn có thể chọn thêm tuỳ chọn này (Tự động lặp lại tác vụ xoá đối với các bản ghi có quan hệ ) nó cho phép nếu xoá các bản ghi ở bảng chính thì tự động nó sẽ xoá những bản ghi tương ứng ở bảng quan hệ.  Cascade Update Related Records (Tự động lặp lại tác vụ cập nhật đối với các trường có quan hệ nếu như có sự thay dổi). Nó được thể hiện ở điểm nếu như chúng ta thay đổi trị cho trường Primary key của một bản ghi nào đó ở bảng chính, thì tự động nó sẽ cập nhật lại giá trị đó cho những bản ghi có quan hệ ở bảng quan hệ Chú ý: trong mục này chúng ta còn phải chỉ định kiểu kết nối (Join Type) , vấn đề này sẽ được đề cập đến trong phần truy vấn.  Muốn điều chỉnh lại mối quan hệ chúng ta hãy rê chuột vào đường kết nối và bấm chuột phải, sau đó chọn lệnh Edit Relationships...  muốn xoá đi một mối quan hệ chúng ta bấm chuột phải vào đường kết nối và chọn lệnh Delete Bước 4 Lưu lại sơ đồ quan hệ bằng cách bấm CTRL+S, hoặc bấm chuột vào biểu tượng nút Save, sau đó đóng nút Close để quay về màn hình CSDL Chú ý Nếu chúng ta chưa lưu thì khi đóng cửa sổ quan hệ sẽ có hộp thoại sau xuất hiện Chọn Yes nếu muốn lưu lại sơ đồ quan hệ, chọn No nếu không lưu, và chọn Cancel nếu như muốn quay lại tiếp tục thực hiện kết nối 10

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

II/ Cơ Sở dữ liệu Kế toán 1. Tổng quan về một chương trình kế toán trên máy tính Hiện nay để giải quyết các bài toán kế toán trên máy tính chúng ta có thể sử dụng nhiều phần mềm được thiết kế dựa trên các hệ bảng tính như: Excel, Lotus ..., hoặc các hệ quản trị cơ sở dữ liệu: Foxpro for Dos, Foxpro for Windows, Visual Foxpro...hoặc cao cấp hơn có thể sử dụng các ngôn ngữ lập trình như Visual Basic để viết dựa trên các cơ sở dữ liệu Access, SQL. Nhìn chung nếu số lượng nghiệp vụ kinh tế phát sinh hằng ngày tại một doanh nghiệp ít, hoặc khả năng tài chính hạn hẹp thì chúng ta có thể dùng các loại bảng tính như Excel để làm kế toán, nếu số lượng nghiệp vụ kinh tế phát sinh hằng ngày nhiều hoặc khả năng tài chính cho phép thì các doanh nghiệp có thể mua các phần mềm kế toán được viết sẵn để sử dụng. Dù được viết bằng ngôn ngữ lập trình nào thì tất cả các chương trình kế toán cũng có một số điểm chung nhất như sau: • Sử dụng một trong 4 hình thức kế toán phổ thông để thiết kế - Nhật ký chung - Nhật ký - chứng từ - Chứng từ ghi sổ - Nhật ký - Sổ cái • Trình tự nhập liệu thường tuân theo thứ tự ưu tiên - Nhập hệ thống tài khoản sử dụng - Chọn thời điểm khai thác chương trình và nhập số dư đầu kỳ - Nhập các chứng từ phát sinh hằng ngày • Việc khai thác dữ liệu thông qua các biểu mẫu và báo cáo được tự động hóa đến mức tối đa • Các báo cáo được được thiết kế dựa theo nguyên tắc ít cột nhiều dòng, để có thể phù hợp với cỡ giấy A4 sử dụng phổ thông hiện nay, nhất là hình thức kế toán Nhật ký chứng từ các Nhật ký và bảng kê có rất nhiều cột nếu giữ nguyên rất khó thiết kế trên máy tính.

2. Chương trình kế toán bằng Access Trong chương trình của môn học để thuận tiện cho việc tiếp cận với các chương trình kế toán đang được các doanh nghiệp sử dụng hiện nay, chúng ta sẽ sử dụng phần mềm Access để xây dựng một ứng dụng kế toán. 2.1 Trình tự xử lý dữ liệu trong ứng dụng kế toán bằng Access: Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

11

Bài giảng Kế toán máy II

Hình thức kế toán được chọn để thiết kế cho ứng dụng: Nhật ký chung, và trình tự xử lý dữ liệu được tổ chức như sau: • Đầu tiên các chứng từ gốc bao gồm: các phiếu thu, phiếu chi, phiếu xuất, phiếu nhập, hoặc các hóa đơn.... được nhập vào máy tính thống qua một cơ sở dữ liệu (vào một bảng có đủ các trường cần thiết để lưu các chứng từ kế toán) • Bằng công cụ Query và Report, chúng ta sẽ thiết lập tất cả các sổ sách kế toán (Sổ cái, Sổ quĩ Tiền mặt, Sổ theo dõi tiền gửi, các Sổ chi tiết hàng tồn kho, công nợ) và các báo cáo tài chính, các báo cáo thuế. Chú ý Tất cả các báo cáo đều được thực hiện một cách đồng thời, số liệu giữa các sổ chỉ mang tính đối chiếu với nhau, rất ít các loại báo cáo được thiết kế mang tính thừa kế từ các báo cáo khác. Toàn bộ qui trình này có thể được mô tả thông qua sơ đồ sau: Chứng từ gốc

NHẬT KÝ CHUNG

Bảng cân đối Số phát sinh Sổ Cái Sổ quĩ tiền mặt Sổ theo dõi tiền gửi NH

Sổ chi tiết hàng tồn kho Sổ chi tiết công nợ Sổ chi phí

Sổ Tổng hợp hàng tồn kho Sổ Tổng hợp Công nợ Sổ Tổng hợp Chi phí

Báo Cáo Tài chính Báo Cáo Thuế

2.2 Các phương pháp kế toán sử dụng trong ứng dụng • Hình thức kế toán: Nhật ký chung • Phương pháp ghi chép ban đầu: áp dụng các biểu mẫu chứng từ kế toán in sẵn của Bộ tài chính và thực hiện ghi thường xuyên vào máy tính. • Sổ sách kế toán : in bằng máy tính hằng tháng. • Phương pháp kế toán hàng tồn kho: áp dụng phương pháp kê khai thường xuyên. • Phương pháp tính giá xuất kho: phương pháp bình quân và FIFO • Phương pháp khấu hao tài sản cố định: khấu hao theo số năm sử dụng được Bộ tài chính qui định. • Phương pháp kế toán thuế GTGT: phương pháp khấu trừ. • Khóa và mở sổ kế toán: tự động khóa và mở sổ để cập nhật số dư tài khoản vào đầu tháng. 12

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II



Báo cáo Tài chính: theo các mẫu qui định của Bộ tài chính được thực hiện hàng tháng: - Bảng cân đối kế toán - Bảng kết quả sản xuất kinh doanh - Báo cáo lưu chuyển tiền tệ • Báo cáo thuế GTGT: được tính và in ra hàng tháng - Bảng kê hàng hóa dịch vụ mau vào - Bảng kê hàng hóa dịch vụ bán ra - Tờ khai thuế GTGT • Ngoài ra còn có các báo cáo kế toán chi tiết - Bảng cân đối số phát sinh lập hàng tháng - Bảng tổng hợp chi tiết số phát sinh lập hàng tháng - Các Sổ cái - Sổ quĩ, sổ theo dõi tiền gửi ngân hàng - Sổ chi tiết hàng tồn kho - Bảng kê nhập xuất tồn hàng hóa - Bảng thanh toán lương - Bảng phân bổ lương, BHXH, BHYT - Bảng khấu hao TSCĐ - Bảng phân bổ chi phí thu mua cho hàng hóa bán ra trong kỳ - Các báo cáo chi tiết khác 2.3 Phương pháp mã hóa tài khoản kế toán - Để sử dụng các mã tài khoản trong một ứng dụng kế toán máy, thông thường chúng ta có thể sử dụng hệ thống tài khoản do Bộ Tài chính qui định, bao gồm các tài khoản cấp 1 và cấp 2, ngoài ra để thuận tiện trong việc lập các sổ sách báo cáo chi tiết chúng ta có thể sử dụng thêm một số tài khoản mở rộng có thể theo qui ước sau: • Tài khoản cấp 1: sử dụng 3 mã số • Tài khoản cấp 2: sử dụng 4 mã số • Tài khoản mở rộng = Tài khoản cấp 1 ( hoặc 2) + mã mở rộng. Các mã mở rộng có thể dùng ký tự chữ hoặc ký tự số hoặc phối hợp cả 2, trong trường hợp số lượng mã đối tượng chi tiết ít chúng ta nên dùng ký tự chữ để mã hóa cho dể nhớ, trong trường hợp số mã đối tượng quá nhiều chúng ta mới sử dụng ký tự số để mã hóa.

3. Tổ chức cơ sở dữ liệu Kế toán 3.1 Tạo Cơ sở dữ liệu Toàn bộ dữ liệu chương trình đều được tập trung vào một file dữ liệu Access, chúng ta nên tạo một thư mục riêng mang tên KT Ví dụ: Học viên có tên Minh, nên thì tạo thư mục mang tên KTMinh trong một ổ đĩa nào đó của máy (nên tạo trong thư mục D:\HV thư mục con này) Sau đó khởi động Microsoft Access, và tạo tập tin cơ sở dữ liệu lấy tên KT.

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

13

Bài giảng Kế toán máy II

Với ví dụ trên bạn có thể tạo tập tin mang tên KTMinh (tập tin mdb) trong thư mục KTMinh 3.2 Tạo các bảng dữ liệu kế toán. Trong CSDL nói trên trong lớp Tables, chúng ta tạo hệ thống bảng chứa các dữ liệu kế toán cơ bản như sau: 1. Bảng T_CTPS: Bảng này chứa toàn bộ các chứng từ phát sinh hàng ngày (Nhật ký chung) có kết cấu như sau: SOCT (Text, 5, Format: >) : Số chứng từ NGAY (Date/ Time, Format: Short Date) : Ngày lập chứng từ DGIAI (Text, 50) : Diễn giãi TKNO (Text, 4) : Tài khoản Nợ CTNO (Text, 6, Format: >) : Mã chi tiết tài khoản Nợ TKCO (Text, 4) : Tài khoản Có CTCO (Text, 6, Format: >) : Mã chi tiết tài khoản Có SOLG (Number, Format: Long Integer) : Số lượng DONGIA (Number, Format: Long integer) : Đơn giá PSNO(Number, Format: Long Integer) : Phát sinh Nợ PSCO(Number, Format: Long Integer) : Phát sinh Có Yêu cầu thiết kế: a) SOCT: Số chứng từ bao gồm 5 ký tự, trong đó : * 2 ký tự đầu: biểu hiện tên gọi của loại chứng từ được qui định như sau: - PT : Phiếu thu - PC : Phiếu Chi - PN : Phiếu nhập kho - PX : Phiếu xuất kho - HD : Hóa đơn - BN : Báo nợ - BC : Báo có - TT : Thanh toán tạm ứng - PB : Phân bổ - KC : Kết chuyển - KH : Chứng từ khác * 3 ký tự tiếp theo là các ký số biểu hiện số thứ tự chứng từ Ví dụ : PT001 b) NGAY: Ngày lập chứng từ được định dạng theo kiểu Việt Nam DD/MM/YY c) TKNO, TKCO : Nhập 3 số nếu là tài khoản cấp 1, và 4 số nếu là tài khoản cấp 2 d) CTNO, CTCO : Mã cấp 3 mở rộng chi tiết dùng để ghi mã nguyên vật liệu, công cụ dụng cụ, hàng hóa, thành phẩm, mã khách mua, nhà cung cấp .v.v.. e) SOLG, PSNO, PSCO: có dùng dấu phân cách nhóm 3 số - Bảng này không có khóa chính 14

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

2. Bảng T_TKSD: Chứa toàn bộ hệ thống Tài khoản sử dụng, và số dư đầu kỳ của các tài khoản có kết cấu như sau: SOTK (Text, 4) : Số tài khoản TENTK (Text, 30) : Tên tài khoản CAPTK (Text, 1) : Cấp tài khoản, nhập số 1 nếu là tài khoản cấp 1, 2 nếu là tài khoản cấp 2 LOAITK (Text, 1, Format : > ) : Loại tài khoản phân loại theo loại số dư tài khoản, nhập N nếu tài khoản loại dư nợ, C nếu loại tài khoản dư có, T nếu tài khoản vừa dư nợ hoặc dư có. CHITIET (Text, 1, Format : > ) : Nhập C nếu tài khoản có mở chi tiết SOLG (Number, Format : Long Integer) : Số lượng dư đầu kỳ DUNO (Number, Format : Long Integer) : Dư nợ đầu kỳ DUCO (Number, Format : Long Integer) : Dư có đầu kỳ - Bảng này có khóa chính là trường SOTK 3. Bảng T_DMUC: Chứa toàn bộ mã cấp chi tiết của các tài khoản có mở chi tiết trong bảng TKSD, và số dư đầu kỳ của chúng, có kết cấu như sau: SOTK (Text, 4) : Số tài khoản MADT (Text, 6, Format : > ) : Mã đối tượng theo dõi chi tiết TENDT (Text, 30) : Tên đối tượng DDIEM (Text, 40 ) : đặc điểm đối tượng theo dõi chi tiết SOLG (Number, Format : Long Integer) : Số lượng dư đầu kỳ DUNO (Number, Format : Long Integer) : Dư nợ đầu kỳ DUCO (Number, Format : Long Integer) : Dư có đầu kỳ - Bảng này có thể dùng khóa chính là 2 trường SOTK, và MADT Ngoài 3 bảng này trong quá trình thực hiện kế toán Tổng hợp chúng ta sẽ xây dựng thêm một số bảng để phục vụ cho các công việc: • Phân bổ chi phí • Tính lương và các khoản BHXH • Hồ sơ Tài sản cố định • Tính Giá thành sản phẩm 3.2 Thiết lập mối quan hệ giữa các bảng Thông thường khi khai thác CSDL kế toán này, các công việc mà người sử dụng phải tiến hành là : 1. Tiến hành nhập hệ thống tài khoản sử dụng và số dư đầu kỳ của các tài khoản vào bảng TKSD, dựa vào số liệu kế toán có được của doanh nghiệp trong đầu kỳ khai thác, và chúng ta chỉ cần nhập các tài khoản có liên quan đến thực tế sử dụng tại doanh nghiệp, chứ không nhất thiết phải nhập hết tất cả hệ thống tài khoản, trong bước này chú ý đến việc nhập mã cấp tài khoản, và khai báo các tài khoản cần mở chi tiết (cần mở thêm các tài khoản mở rộng). 2. Căn cứ vào việc khai báo tài khoản nào là tài khoản có mở chi tiết, thì các đối tượng chi tiết sẽ được nhập vào bảng DMUC, trên bảng TKSD nếu khai báo C ở trường CHITIET cho một tài khoản thì tài khoản đó được mở chi tiết, trong bảng này Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

15

Bài giảng Kế toán máy II

sẽ bao gồm tất cả các loại mã được dùng trong CSDL (mã NVL, công cụ, hàng hóa, nhà cung cấp, khách mua,...) các loại mã này được phân biệt bằng trường MATK, và khi cộng số dư cho các mã đối tượng chi tiết của tài khoản nào, thì sẽ bằng số dư của tài khoản đó trên bảng TKSD. 3. Tất cả các chứng từ kế toán nhập vào hằng ngày sẽ được cập nhật toàn bộ vào bảng CTPS, mỗi nghiệp vụ được nhập vào 1 bản ghi, nếu gặp các nghiệp vụ kép (1 nợ nhiều có, 1 có nhiều nợ, nhiều nợ nhiều có) thì chúng ta phải tách ra thành các nghiệp vụ đơn, cụ thể khi nhập phải tuân thủ 1 số ràng buộc sau: • Khử trùng chứng từ: có 1 số nghiệp vụ sẽ phát sinh nhiều chứng từ, đối với NHẬT KÝ CHUNG chúng ta nên khử trùng, chẳng hạn nghiệp vụ rút tiền gửi ngân hàng nhập quĩ tiền mặt thường phát sinh 2 chứng từ Giấy báo nợ và Phiếu Thu, chúng ta có thể nhập bằng 1 trong 2 cách: a)Chỉ nhập chứng từ của doanh nghiệp tức là Phiếu Thu, theo định khoản 111 / 112 b)Hoặc nhập cả 2 chứng từ Phiếu Thu định khoản 111/ 113, giấy Báo nợ định khoản 113/ 112 • Tất cả các mã tài khoản khi nhập phải kiểm tra tính toàn vẹn đối chiếu, có nghĩa là TKNO và TKCO phải tồn tại trong bảng TKSD cụ thể là trường SOTK. • Các mã CTNO và CTCO phải tồn tại trong trờng MADT của bảng DMUC Dó đó trong này chúng ta phải tiến hành lập quan hệ cho các bảng theo sơ đồ sau:

16

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Chương II . CÔNG CỤ TRUY VẤN CSDL KẾ TOÁN Trong một CSDL Access lớp Tables (bảng) làm nhiệm vụ chứa các bảng dữ liệu nguồn cơ sở do người sử dụng nhập vào chưa được khai thác, lớp Queries là nơi mà người sử dụng tạo ra các bảng hỏi (truy vấn, vấn tin) khai thác dữ liệu phục vụ cho nhiều mục đích khác nhau: Thống kê, tìm kiếm, cập nhật dữ liệu.v.v... Trong phần này chúng ta sẽ thực hiện thiết kế một số loại truy vấn cơ bản, để tạo ra các truy vấn chúng ta có thể sử dụng lưới QBE, hoặc là dùng trực tiếp các lệnh SQL để tạo các truy vấn.

I/ Phương pháp thiết kế truy vấn bằng Lưới QBE Để có thể nắm bắt được kỹ thuật thiết kế các truy vấn, nhanh nhất là chúng ta trực tiếp áp dụng trên cơ sở dữ liệu Kế toán đang sử dụng ở chương I, sử dụng các truy vấn để khai thác dữ liệu trên bảng T_CTPS. Sau đây là một số bản ghi trong bảng T_CTPS mẫu: SOCT NGAY

DGIAI

TKNO CTNO TKCO CTCO SOLG DONGIA PSNO

PN001 02/01/2003 Nguyễn văn 152 Hùng mua vật tư

141

NVH

PN001 02/01/2003 Thuế VAT 133 được khấu trừ

141

NVH

500000

PT001 02/01/2003 Hoàn ứng của 1111 NV Hùng

141

NVH

100000

331

BM

331

BM

PN002 03/01/2003 Nhập kho VLchính Da chưa tt

152

KD

DA

PN002 03/01/2003 Thuế VAT 133 được Khấu trừ PC001 03/01/2003 Tiền vận chuyển da

152

DA

PC001 03/01/2003 Thuế VAT 133 được Khấu trừ

2000

5400000

19000000

1900000

1111

1000000

1111

50000 40000000

GN001 03/01/2003 Trả cho công 331 ty Rạng Đông

RD

1121

PN003 04/01/2003 Mua xi măng 1561 chưa thanh toán

XM

331

BM

PN003 04/01/2003 Thuế VAT 133 được Khấu trừ

331

BM

PC002 04/01/2003 Tiền vận

1111

1562

1000

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

10000

71000000

7100000 2000000

17

Bài giảng Kế toán máy II

SOCT NGAY

DGIAI

TKNO CTNO TKCO CTCO SOLG DONGIA PSNO

chuyển Xi măng

1. Truy vấn tuyển chọn ( Select Query ) Trong phần này chúng tôi chỉ trình bày về thiết kế Query bằng phương pháp Design View, chúng ta thực hiện theo các bước như sau: Bước 1: Trong cửa sổ CSDL, chọn lớp Query, sau đó bấm vào nút New xuất hiện hộp thoại sau :

Chọn mục Design View, và OK xuất hiện hộp thoại Show Table Bước 2: Chúng ta sẽ chọn các bảng để đưa vào lưới QBE (nếu chọn phiếu Tables), hoặc các Query (nếu chọn phiếu Query), hoặc cả 2 loại (nếu chọn phiếu Both) Nếu không thấy hộp thoại này xuất hiện chúng ta bấm nút phải chuột và chọn lệnh Show Tables... Các Table, và Query sẽ vào phần trên của màn hình thiết kế, nếu các thiết lập quan hệ đã xác lập, thì nó cũng sẽ xuất hiện trong này (chúng ta cũng có thể xác lập lại các quan hệ mới nếu cần thiết) Mọi thao tác có liên quan đến các đối tượng trong phần trên của màn hình thiết kế đều được liệt kê trong menu ngắn khi chúng ta nhắp chuột phải trên đối tượng được chọn (xóa, sửa) Bước 3: Trong bước này chúng ta sẽ thiết kế Query theo yêu cầu truy vấn cụ thể, muốn vậy chúng ta phải tạo các vùng cần hỏi. Vùng cần hỏi là một biểu thức các thuộc tính. Nó bao gồm các phép tính số học với các toán tử, và các toán hạng (là các trường có sẵn trong các bảng, các vùng mới tạo, các hàm hệ thống, và các hàm người sử dụng tự định nghĩa) Chúng ta sẽ tạo các vùng cần hỏi trong lưới QBE. Các vùng cần hỏi được mô tả ở hàng Filed của lưới.  Muốn đưa một trường vào lưới QBE, chúng ta có thể chọn tên trường trong bảng và kéo thả nó vào lưới, hoặc bấm đúp chuột vào tên trường, nếu muốn đưa tất cả tên trường vào lưới chúng ta bấm đúp vào dấu * của bảng

18

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

 Muốn đặt tên lại cho một trường thì chúng ta gõ vào đầu tên trường (vùng) một tên mới tùy ý và bắt buộc theo sau là dấu : (Tên này sẽ xuất hiện ở chế độ Datasheet View) Muốn xóa một trường thì đưa chuột lên đầu cột chứa trường nhắp chuột để chọn cột (bôi đen toàn cột) và ấn nút Delete, hoặc gọi lệnh Edit/ Delete Columns, và để xóa tất cả các trường thì chọn lệnh Edit/ Clear Grid  Muốn chèn thêm một trường vào thì kéo trường đó vào vị trí của trường mà chúng ta muốn đẩy nó sang phải  Muốn di chuyển, sao chép một trường thì chọn cột chứa trường, sau đó nhắp chuột phải và chọn lệnh tương ứng (Cut, Copy, Paste) hoặc kéo thả chuột



Muốn định dạng lại thì nhắp chuột phải vào cột và chọn Properties (các định dạng này chỉ ảnh hưởng phiên làm việc trong Query, chứ không ảnh hưởng đến dữ liệu nguyên thủy trong bảng gốc)



Mặc định trường nào đưa vào lưới QBE thì sẽ xuất hiện trong kết quả Query (ô kiểm tra Show được chọn ), trong một số trường hợp chúng ta chỉ đưa trường vào để lập điều kiện truy vấn, nhưng không muốn cho trường xuất hiện trong kết quả truy vấn, lúc đó chúng ta phải tắt ô kiểm tra này.



Mặc định khi xem kết quả truy vấn trong chế độ Datasheet View thì dữ liệu các trường không được sắp xếp, nếu muốn sắp xếp thì nhắp chuột vào ô Sort chọn Ascending (Xếp tăng), Descending (Xếp giảm), Not Sorted (không sắp xếp) Bước 4: Lập tiêu chuẩn chọn lựa Khi thực hiện truy vấn, Access tác động lên dữ liệu và hiển thị các mẫu tin thỏa các điều kiện mà chúng ta đã đặt ra, nếu thiết kế đúng được điều kiện thì các mẫu tin rút trích sẽ thỏa đúng yêu cầu đưa ra. Lập biểu thức chọn Muốn lập các biểu thức chọn chúng ta có thể nhập thẳng vào vào mục Criteria trong lưới QBE, hoặc có thể dùng phương pháp xây dựng biểu thức bằng Expression Builder.  Dùng Expression Builder



 Nhắp chuột vào ô Criteria của trường (vùng) cần lập biểu thức  Nhắp chọn nút Builder trên thanh công cụ (nhắp chuột phải chọn lệnh Builder), hoặc ấn phím CTRL+F2, xuất hiện cửa sổ Expression Builder

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

19

Bài giảng Kế toán máy II

Nội dung biểu thức

Các thành phần của biểu thức (Khung 1)

Chi tiết của thành phần được chọn (Khung 2)

Các mục chi tiết của thành phần được chọn (Khung 3)

 Trong vùng nội dung biẻu thức chúng ta có thể nhập thẳng biểu thức vào, hoặc có thể chọn một mục nào đó ở khung 2, hoặc khung 3 bấm nút Paste để dán vào  Trong vùng giữa chúng ta có thể chọn một nút toán tử nào đó để đưa vào biểu thức  Trong khung 1 chúng ta có thể thấy :  Các lớp đối tượng của CSDL bao gồm các Tables, Query, Form, Report, các hàm hệ thống, các hàm người dùng, các hằng và các toán tử.  Trong khung 2 chứa các loại chi tiết của từng đối tượng được chọn ở khung 1  Trong khung 3 chứa các mục chi tiết của từng đối tượng được chọn trong khung 2

 Sau khi kết thúc việc thiết kế xong một biểu thức thì OK, nội dung biểu thức sẽ được đưa vào vùng Criteria  Nhập trực tiếp biểu thức:  Bấm chuột vào ô Criteria của trường cần lập biểu thức, nhập trực tiếp biểu thức vào, nếu biểu thức quá dài ấn nút Shift+F2 mở cửa sổ rộng hơn để dể quan sát Phương pháp đưa giá trị vào biểu thức Tùy thuộc vào kiểu dữ liệu chúng ta đưa vào biểu thức mà cách thức đưa giá trị vào biểu thức có khác nhau.  Giá trị kiểu số (Number, Currency, Auto Number): Đối với các trường thuộc kiểu này thì khi nhập chúng ta nhập thẳng số và dấu thập phân đã qui ước trong Control Panel  Giá trị kiểu ngày (Date/Time): Đối với kiểu ngày giờ, chúng ta cũng nhập theo qui định trong Control Panel, nếu muốn thể hiện trị nhập như một hằng thì phải có cặp dấu rào #..#. Ví dụ: >=#24/04/02# (điều kiện lớn hơn hoặc bằng ngày 24/04/2002  Giá trị kiểu văn bản (Text): Đối với kiểu văn bản thì chúng ta nhập vào bình thường, nếu muốn thể hiện nó dưới dạng hằng thì dùng cặp dấu rào “ “ 20

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Giá trị kiểu Logíc (Yes/No): Đói với kiểu này thì chúng ta có thể nhập vào Yes, True, On hoặc 1 cho các giá trị Đúng, và các giá trị No, False, Off, hoặc 0 cho giá trị Sai  Chọn các bản ghi thỏa điều kiện Để giới hạn chọn lọc các bản ghi thỏa một điều kiện nào đó, chúng ta có thể sử dụng các toán tử Between.. . And.. . hoặc các toán tử so sánh >,<=,.. Ví dụ: Between #04/02/02# And #15/02/02# , các ngày từ 04/02/02 đến 15/02/02 <180 , Chọn số nhỏ thua 180  Dùng các ký tự đại diện Hầu hết các phần mềm cùng trong máy tính đều có dùng 2 ký tự đại diện, trong đó dấu * đại diện cho nhiều ký tự, dấu ? đại diện cho một ký tự, đối với Access các ký tự này chỉ áp dụng cho trường hợp kiểu Text và Date/Time. Toán tử kèm theo thường dùng là Like Ví dụ: cv?.doc Có thể đại diện cho cv1.doc, cvf.doc H*ng Hung, Hiaung *me Tome, hame 12/*/02 Tất cả ngày tháng 12 Dùng kèm toán tử Like : Like "cv?.doc" hoặc Like "12/*/02"  Chọn các mẫu tin không phù hợp một giá trị nào đó Muốn chọn các bản ghi không phù hợp với một giá trị nào đó, chúng ta sử dụng toán tử NOT . Ví dụ: Để lọc các chứng từ ghi nợ không phải là 111, thì tại vùng Criteria của trường TKNO chúng ta có thể gõ Not [TKNO] = "111"  Phối hợp nhiều tiêu chuẩn trong một trường Muốn phối hợp nhiều tiêu chuẩn để chọn lọc các bản ghi trong một trường thì chúng ta phải dùng các toán tử Logic AND, OR Ví dụ: Để lọc các bản ghi Nhập nguyên vật liệu nằm trong khoản từ ngày 14/04/2004 đến ngày 16/04/2004 chúng ta nhập vào vùng điều kiện của trường NGAY như sau: (NGAY Between #14/04/2004# And #16/04/2004#) And TKNO="152" hoặc có thể gõ tách ra tại 2 trường :  Trường NGAY nhập: NGAY Between #14/04/2004# And #16/04/2004#  Trường TKNO chúng ta nhập: "152" Chú ý: Ngoài cách trên chúng ta có thể đặt điều kiện bằng cách  Đặt các điều kiện AND (và) trên các vùng Criteria tại các cột khác nhau  Đặt các điều kiện OR (hoặc) trên các vùng Or tại các cột khác nhau Bước 5: Thử nghiệm kết quả Query Để có thể xem được kết quả truy vấn chúng ta : 

Chọn lệnh View/ Datasheet View (hoặc bấm nút Datasheet View trên thanh công cụ) Bước 6: Lưu Query



Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

21

Bài giảng Kế toán máy II

Sau khi hoàn chỉnh Truy vấn chúng ta lưu truy vấn bằng cách bấm Ctrl+S hoặc bấm nút Save, Access xuất hiện hộp thoại Gõ tên mới vào ô Query name, và OK, trong trường hợp chưa lưu mà bạn đóng nút Close sẽ xuất hiện hộp thoại.

Hộp thoại này hỏi bạn có muốn lưu lại những sự thay đổi trên thiết kế truy vấn có tên Queryx chọn Yes để lưu, hoặc nếu bạn không lưu thì chọn No, nếu muốn tiếp tục thiết kế thì chọn Cancel.

2. Truy vấn tuyển chọn có tham số ( Parameter Query ) Để có thể tạo các truy vấn giúp người sử dụng chủ động lựa các bản ghi thỏa điều kiện nào đó được nhập vào lúc chạy Query, chúng ta cần thiết kế những truy vấn có tham số. Ví dụ: Tạo truy vấn để lọc ra các chứng từ ghi nợ cho 1 tài khoản nào đó. Để tạo được truy vấn này chúng ta cũng tạo một Select Query và cũng đưa các trường cần thiết vào QBE (đưa dấu * để đưa tất cả các trường vào, và đưa thêm trường TKNO, sau đó tại vùng Criteria của trường này nhập điều kiện [Chon tai khoan] Với [Chon tai khoan] là một tham số như cửa sổ dưới đây. Khi mở truy vấn để xem kết quả chúng ta sẽ thấy hộp thoại Enter Parameter Value với dòng chữ Chon tai khoan, chúng ta sẽ nhập tài khoản cần lọc vào.

Tóm lại, để tạo một tham số cho truy vấn, chúng ta chỉ cần đặt một tên tham số giữa cặp dấu móc vuông [...], tên tham số phải khác với tất cả các trường hiện có của CSDL đang dùng.

3.Truy vấn tuyển chọn có trường tính toán Trong một số Truy vấn có yêu cầu phải tạo thêm một số tính toán, muốn vậy chúng ta có thể chọn Update Query (Truy vấn cập nhật), hoặc là tạo thêm các trường 22

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

tính toán cho hiện thêm trong kết quả truy vấn. Các trường tính toán không có dữ liệu thực và không ảnh hưởng đến dữ liệu của bảng gốc . Ví dụ: Để tính THUE cho các chứng từ ghi thuế GTGT đầu vào bảng CTPS, được tính bằng công thức Thuế = Số lượng x Đơn giá x 0,1 trong dòng Field của một cột mới lưới QBE, chúng ta gõ biểu thức sau: THUE : SOLG * DONGIA * 0,1 trong đó THUE là trường tính toán mới chúng ta muốn hiển thị thêm, bắt buộc sau tên trường mới là dấu : sau đó là biểu thức tính toán của trường này

4. Truy vấn tuyển chọn thống kê số liệu Trong thực tế chúng ta thường có yêu cầu đặt ra về vấn đề tổng hợp số liệu, ví dụ như trong CSDL kế toán nói trên cần tính trị giá nhập kho hoặc xuất kho cho từng vật tư, tính trị giá hàng tồn kho....trong Access chúng ta có thể thực hiện thống kê bằng các phép toán như: Phép toán

Công dụng

Sum

Tổng các giá trị trên một trường

Avg

Giá trị trung bình của một trường

Max

Giá trị lớn nhất trong một trường

Min

Giá trị bé nhất trong một trường

Count

Đếm các giá trị có trong một trường (không rỗng)

First

Giá trị của bản ghi đầu tiên

Last

Giá trị của bản ghi cuối cùng

Group by

Kết nhóm các bản ghi của trường

 Các phép toán này được biểu diễn ở mục Totals của các trường ở cửa sổ thiết kế truy vấn. Để hiển thị mục Totals, tại cửa sổ thiết kế, chúng ta gọi lệnh View/ Totals hoặc bấm nút Σ trên thanh công cụ , hoặc bấm nút phải chuột vào lưới QBE và chọn lệnh Totals từ Menu ngắn Chú ý: Chúng ta không thể sửa được các kết quả của các trường Total ở chế độ Datasheet View  Để lập tiêu chuẩn chọn lựa các bản ghi tham gia vào tổng hợp chúng ta phải thêm cột có trường lập điều kiện, và trong dòng Totals chúng ta chọn mục Where và dòng Criteria nhập điều kiện lọc (cột này sẽ không hiển thị ở chế độ Datasheet View) Ví dụ: Cho biết trị giá nhập kho của từng nguyên vật liệu

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

23

Bài giảng Kế toán máy II

5.Truy vấn tham chiếu chéo (Crosstab Query) Để xử lý thông tin một cách cô đọng hơn Access còn cung cấp cho chúng ta loại Crosstab Query, loại truy vấn này giúp chúng ta nhanh chóng tạo ra những bảng truy xuất tham chiếu chéo với nhau, ví dụ như để tổng hợp được số phát sinh cho từng cặp tài khoản đối ứng, có thể làm như sau. Bước 1: Trong cửa sổ CSDL chúng ta chọn New, trong hộp thoại New Query chọn Crosstab Query Wizard bấm OK, xuất hiện hộp thoại tiếp theo chúng ta chọn các bảng hoặc các query để đưa vào tham gia truy vấn, trong ví dụ trên chúng ta chọn bảng T_CTPS, và bấm nút Next để sang bước tiếp theo Bước 2: xuất hiện hộp thoại Crosstab Query Wizard, trong khung Available Field (các trường khả dụng), chúng ta chọn trường làm tiêu đề cột đầu nhóm cho mỗi dòng (ví dụ này chúng ta chọn TKNO và bấm mủi tên để chọn trường này sang khung Selected Fields) Trong khung Sample chúng ta sẽ thấy cột tổng hợp là TKNO, tiếp tục bấm nút Next để sang bước tiếp Bước 3: Tại bước này chúng ta sẽ chọn trường làm tiêu đề nhóm cho mỗi cột, với ví dụ này chúng ta chọn TKCO, khung Sample sẽ xuất hiện TKCO1, TKCo2, TKCO3... sau đó chúng ta lại bấm nút Next để sang bước kế tiếp Bước 4: Bước này Access sẽ hỏi chúng ta chọn trường và hàm nào để tính toán tại giao điểm của mỗi dòng và cột, với ví dụ này chúng ta chọn trường PSNO và hàm Sum để tính toán, bấm Next để sang bước tiếp

24

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Bước 5: Đặt tên cho Query, và xem kết quả, lúc này hộp thoại xuất hiện yêu cầu chúng ta đặt tên . tại khung bên dưới dòng chữ What do you want to name your query? chúng ta nhập tên mới, nếu có yêu cầu thiết kế lại Query thì nhắp chuột vào mục chọn Modify the design, còn mặc định khi bấm nút Finish để kết thúc thì chúng ta sẽ xem kết quả của Query như hình dưới

6.Truy vấn hành động (Action Query) Truy vấn hành động bao gồm việc tạo các bảng hỏi phục vụ cho công tác bảo trì các CSDL như:  Tạo một bảng mới dùng để trích lưu số liệu từ một bảng khác  Xóa các dữ liệu trong một bảng  Thêm vào một bảng các bản ghi lấy từ một bảng khác  Cập nhật, tính toán các giá trị trên một hay nhiều trường của một số bảng ghi trong một bảng. Cụ thể có các loại truy vấn sau: 6.1 Update Query Trong qúa trình nhập số liệu vào các bảng, việc chỉnh sửa là một công việc không thể tránh khỏi, nhất là chỉnh sửa trên một số lượng lớn bản ghi, và chỉnh sửa theo một điều kiện nào đó thì buọc lòng chúng ta phải có một công cụ đó chính là Update Query, phương pháp thực hiện như sau: Ví dụ: Sửa lại các chứng từ thu tiền ở ngày 29/01/2003 có số tiền giảm 1000 đ, so với giá trị đã nhập Các bước tiến hành: Bước 1: Trong cửa sổ CSDL chọn lớp Query, chọn New hộp thoại New Query xuất hiện chọn tiếp Design View Bước 2: Cửa sổ Show Table xuất hiện, hãy thêm các bảng hoặc Query vào cửa sổ thiết kế (trong ví dụ này chúng ta thêm bảng T_CTPS vào QBE) Bước 3: Chọn lệnh Query /Update Query xuất hiện khung lưới thiết kế sau

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

25

Bài giảng Kế toán máy II

Chọn trường PSNO, trong dòng Update to nhập vào biểu thức: [PSNO] - 1000 Lập điều kiện cho trường TKNO là 1111, và trường NGAY là 29/01/2003 Tóm lại: ở bước này chúng ta chọn trường cần điều chỉnh và nhập biểu thức điều chỉnh vào dòng Update to, và nếu cần giới hạn các bản ghi tính toán thì thêm trường giới hạn vào lưới QBE và nhập biểu thức giới hạn vào dòng Criteria Bước 4: Chọn lệnh Query /Run hoặc chọn nút Run trên thanh công cụ để thử nghiệm kết quả, và sau đó lưu và đặt tên cho Truy vấn 6.2 Delete Query Do nhu cầu về quản lý CSDL, có thể trong quá trình nhập liệu bị sai, hoặc dữ liệu của các bản ghi đã cũ chúng ta vẫn có thể xóa những bản ghi đó để cập nhật dữ liệu, muốn vậy chúng ta sẽ sử dụng Delete Query Trình tự thực hiện giống như Update Query, chỉ khác trong bước 3 chúng ta phải chọn Query/ Delete Query. Ví dụ: Xóa các bản ghi ngày 15/04/2004 và cột TKNO trống, theo trình tự như trên, chúng ta có màn hình thiết kế như sau: Trong lưới QBE, tại dòng Delete của các trường mặc nhiên chúng ta để Where, trong dòng Criteria của trường NGAY nhập #15/04/2004#, và của trường TKNO chúng ta nhập Is Null (từ khóa của Access nghĩa là rổng, ngược lại là Is not Null) Lưu ý: khi chạy 2 loại Query trên (Update Query, Delete Query) đều có các hộp thoại xuất hiện yêu cầu xác định lại việc cập nhật (You are about to update n row(s)) hoặc xóa dữ liệu (You are about to delete n row(s) from the specified table ) chúng ta chọn Yes hoặc No 6.3 Make Table Query Trong thực tế sử dụng các hệ quản trị CSDL chúng ta thường có nhu cầu lưu trữ số liệu, ví dụ như các chứng từ phát sinh hằng ngày trong kế toán thông thường đến cuối một quí cần khóa sổ để tổng hợp, khi sang quí kế tiếp thì dữ liệu quí vừa thực hiện chúng ta nên sao lưu để lưu trữ, hoặc cần tạo ra mọt bảng mới chứa một phần dữ liệu của bảng gốc để xử lý, muốn thực hiện điều này chúng ta sử dụng Make Table Query, trình tự thực hiện cũng tiến hành như các loại Query trên nhưng trong bước 3 chúng ta chọn Query/ Make Table Query xuất hiện hộp thoại sau:  Trong khung Table Name chúng ta nhập tên của bảng kết quả vào, nếu bảng mới này đặt trong CSDL đang dùng thì nút chọn phải ở mục Current Database, còn nếu như đặt nó trong một CSDL khác thì chọn nút Another 26

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Database (lúc đó ô File name ở bên dưới sẽ sáng chúng ta nhập tên của tập tin CSDL khác), và OK  Bước kế tiếp chúng ta phải chọn các trường từ bảng gốc vào lưới QBE (các trường được chọn sẽ là các trường của Bảng kết quả)  Trong dòng Criteria chúng ta nhập các biểu thức điều kiện vào  Chọn lệnh Query /Run hoặc chọn nút Run trên thanh công cụ để thử nghiệm kết quả, và sau đó lưu và đặt tên cho Truy vấn 6.4 Append Query Thông thường số liệu trong các bảng thường có quan hệ với nhau, giả sử chúng ta có bảng A là bảng dữ liệu gốc, và bảng B là bảng cần phải lấy một số bảng ghi từ bảng A chuyển qua để tính toán một vấn đề gì đó, như vậy cần phải có việc chuyển số liệu qua lại giữa các bảng, để giải quyết vấn đề đó chúng ta sẽ sử dụng Append Query, các bước tiến hành như sau: Bước 1: Tạo mới bảng đích (bảng để lấy số liệu từ bảng nguồn Append sang), hoặc có thể sao chép cấu trúc từ bảng nguồn sang bằng cách chọn bảng nguồn (CTVT) từ phiếu Tables chọn lệnh Edit/ Copy sau đó chọn lệnh Edit/Paste sẽ xuất hiện hộp thoại sau: Chọn Structure only (Chỉ sao chép cấu trúc), và nhập tên mới của bảng đích vào, và OK để tạo ra bảng đích chưa có số liệu Bước 2: chọn lệnh New từ phiếu Query để tạo một Truy vấn mới (chọn cách thiết kế Design View) và cũng chọn bảng nguồn (CTVT) trong hộp thoại Show Tables Bước 3: chọn lệnh Query/ Append Query, lúc đó Access sẽ xuất hiện một hộp thoại mới Trong hộp thoại này chúng ta nhập tên của Bảng đích vào (CTVT LUU) và OK Bước 4: Trong lưới QBE của Append Query cũng có đầy đủ các nội dung như Select Query nhưng lại có thêm dòng Append to, chúng ta nhắp chọn tất cả các trường từ bảng nguồn (CTVT) để đưa vào lưới QBE ( Trong một số trường hợp chúng ta sẽ bỏ bớt một vài trường nếu như trong bảng đích không có các trường này ) sau đó lập điều kiện cho truy vấn tại dòng Criteria cho các trường. Bước 5: Chọn lệnh Query /Run hoặc chọn nút Run trên thanh công cụ để thử nghiệm kết quả, và sau đó lưu và đặt tên cho Truy vấn

7. Truy vấn trên nhiều Table, Query Trong thực tế đôi khi thiết kế các Truy vấn cũng cần sử dụng nhiều Table, hoặc các Query có quan hệ ràng buộc toàn vẹn để lấy ra các số liệu quản lý cao cấp hơn, ví dụ như chúng ta cần in ra các chứng từ xuất nhập vật tư có cả tên vật tư, tên kho, hoặc là cần tính tồn kho cuối kỳ cho từng vật tư trên cơ sở biết tồn kho đầu kỳ và số phát sinh nhập xuất trong kỳ, để giải quyết vấn đề này chúng ta cũng làm tương tự như các truy vấn trên nhưng chỉ khác là lúc đưa vào lưới QBE chúng ta sẽ đưa vào các bảng, hoặc các truy vấn có quan hệ (hoặc chưa có quan hệ và chúng ta sẽ thiết lập quan hệ cho chúng). Ví dụ: Thiết lập truy vấn cho kết quả là Bảng cân đối số phát sinh. Chúng ta sẽ đưa vào cửa sổ thiết kế các bảng, nếu trước đó trong phần thiết kế bảng đã có lập quan hệ thì phần trên cửa sổ thiết kế sẽ có xuất hiện 2 bảng và có đường kết nối mô tả quan hệ, nếu như chưa thiết lập quan hệ thì tại cửa sổ thiết kế này chúng ta vẫn có thể Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

27

Bài giảng Kế toán máy II

thiết lập quan hệ (Quan hệ được thiết lập tại đây chỉ có ảnh hưởng trong phiên làm việc của truy vấn hiện tại)  Sau khi đưa 2 bảng vào cửa sổ thiết kế, chúng ta sẽ thêm vào lưới QBE các trường cần thiết của các bảng ( ở đây chúng ta đưa vào các trường thể hiện nội dung bảng cân đối, và cần tạo thêm 2 trường tính toán số dư nợ và có cuối kỳ)  Chạy lệnh Run ( hoặc bấm nút để chạy truy vấn)

- Để thực hiện truy vấn này, chúng ta phải tạo trước 2 truy vấn tính phát sinh nợ từng tài khoản cấp 1 (Q_PSNO), và phát sinh có từng tài khoản (Q_PSCO) lấy nguồn là bảng T_CTPS, và bảng chứa số dư đầu kỳ từng tài khoản cấp 1 (Q_DUDK1) lấy nguồn là bảng T_TKSD. - Dau khi đưa vào lưới thiết kế QBE, chúng ta cần lập quan hệ giữa 3 Query này, theo sơ đồ trên, nhưng cần phải chỉnh lại kiểu liên kết dữ liệu (theo hướng dẫn dưới), chúng ta nên chọn bảng Q_DUDK1 làm bảng chính ưu tiên trong kết nối. Chú ý Trong trường hợp cần thiết lập lại các kiểu liên kết dữ liệu (Join Properties) giữa 2 bảng, chúng ta rê chuột đến đường nối quan hệ bấm chuột phải chọn lệnh Join Properties sẽ xuất hiện hộp thoại sau:

Mặc định trong hộp thoại này mục  sẽ được chọn kiểu liên kết này là Inner Join hoặc Equi - Join tức là liên kết chặt, nối bên trong (tương đương) là một kiểu liên kết giữa 2 bảng dữ liệu mà chúng ta đã thêm vào bảng truy vấn trong đó những bản ghi của 2 bảng dữ liệu chỉ được liên kết và 

28

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

đưa vào bảng kết quả truy vấn khi giá trị vùng (trường) liên kết thuộc những bản ghi của 2 bảng dữ liệu là bằng nhau  Nếu chúng ta chọn mục  kiểu liên kết này gọi là Left outer Join (nối ngoại trái) tức là liên kết không chặt về bên trái, nếu chọn kiểu liên kết này thì tất cả các bản ghi thuộc về bảng dữ liệu chính (bảng 1) đều xuất hiện trong kết quả truy vấn mặt dù nó không có trong bảng dữ liệu quan hệ (bảng nhiều)  Nếu chúng ta chọn mục  kiểu liên kết này gọi là Right outer Join (nối ngoại phải) tức là liên kết không chặt về bên phải, nếu chọn kiểu liên kết này thì tất cả các bản ghi thuộc về bảng dữ liệu quan hệ (bảng nhiều) đều xuất hiện trong kết quả truy vấn.

II/ Phương pháp thiết kế truy vấn bằng Lệnh SQL Trong khi sử dụng Access để lập trình quản lý chúng ta sẽ sử dụng rất nhiều câu lệnh SQL để thực hiện nhiều tác vụ để xử lý CSDL, nhất là các tác vụ truy vấn, trong phần này chúng tôi sẽ trình bày một số nét cơ bản trong SQL để giúp chúng ta có thể vận dụng một cách nhanh chóng để tạo ra các truy vấn ngoài phương pháp sử dụng lưới QBE để thiết kế, sau đây chúng tôi sẽ giới thiệu một số câu lệnh SQL cơ bản.

Lệnh SELECT.... 1. Cú pháp của câu lệnh SELECT SELECT FROM [WHERE ] [GROUP BY , ,...] [HAVING ] [ORDER BY [ASC/DESC] , [ASC/DESC] ,...]; Trong đó: 1.1 SELECT Là danh sách tên các trường của các bảng được chỉ định trong mệnh đề FROM , các trường được chọn sẽ xuất hiện trong kết quả truy vấn  Tên các trường phải được đặt trong dấu ngoặc vuông [..] (Trong trường hợp tên trường không có khoảng trắng thì có thể không cần cặp dấu [])  Có thể sử dụng biểu thức (các hàm) trong danh sách.  Có thể thay thế tên trường hoặc biểu thức bằng 1 bí danh đặt sau từ khóa AS  Trong trường hợp sử dụng nhiều hơn một bảng thì trước tên trường phải có tên bảng, giữa tên bảng và tên trường cách nhau bằng một dấu chấm .  Giữa các trường cách nhau bằng dấu phảy ,  Trong trường hợp muốn chọn tất cả các trường chúng ta dùng SELECT * 1.2 FROM Mệnh đề này chỉ ra nguồn dữ liệu để truy vấn, nó có thể là các bảng dữ liệu hoặc bảng truy vấn có sẵn, giữa các bảng cách nhau bằng dấu phảy , 1.3 WHERE Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

29

Bài giảng Kế toán máy II

Mệnh đề này sẽ báo cho bộ máy CSDL về sự giới hạn các bản ghi lấy về theo một hay nhiều điều kiện nào đó ( là một biểu thức Logic trả về giá trị True hoặc False) 1.4 ORDER BY [ASC/DESC] , [ASC/DESC] ,... Để sắp xếp chúng ta dùng mệnh đề ORDER BY. Sau mệnh đề ORDER BY là các trường rồi đến chiều sắp xếp tăng hoặc giảm (ASC hoặc DESC). Có thể sắp xếp theo nhiều trường (cột) theo mức ưu tiên sắp xếp và các trường cách nhau bằng dấu phảy. Nếu không chỉ ra chiều sắp xếp thì hệ thống ngầm định là ASC (xếp tăng dần), mệnh đề này thường đặt ở cuối một lệnh SQL 1.5 GROUP BY , ,... Trong câu lệnh SELECT nếu gặp mệnh đề GROUP BY nó sẽ gộp nhóm theo yêu cầu gộp nhóm theo trường nào mà chúng ta đã ghi sau GROUP BY 1.6 HAVING Mệnh đề này thường được sử dụng cùng với mệnh đề GROUP BY, sau HAVING là một biểu thức Logic. Biểu thức này không tác động vào toàn Table được chỉ ra ở mệnh đề FROM mà chỉ tác động lần lượt từng nhóm các bản ghi đã chỉ ra ở mệnh đề GROUP BY

2. Ví dụ minh họa 2.1 Truy vấn tuyển chọn Trong phần này chúng ta sẽ thực hiện một số ví dụ mẫu như sau: a) Cho xem các phiếu thu tiền mặt phát sinh trong kỳ Select SOCT, NGAY, TKNO, TKCO, PSNO from T_CTPS Where TKNO="111" - Với ví dụ này chúng ta chỉ xem được 5 trường chỉ ra ở sau mệnh đề Select, nếu thay bằng dấu * chúng ta sẽ xem được tất cả các trường, (các từ khóa được gõ bằng chữ nghiêng đậm) Select * from T_CTPS Where TKNO="111" b) Cho xem các chứng từ xuất kho nguyên vật liệu có mã M1, theo chiều tăng dẫn của ngày lập chứng từ Select * from T_CTPS Where TKCO="152" and CTCO="M1" Order by NGAY c) Xem các chứng từ khách hàng trả nợ bằng tiền gửi ngân hàng trong quí 1, theo chiều tăng dần của ngày lập và giảm dần mã khách hàng. Select * from T_CTPS Where TKCO="112" and TKCO="131" and month(NGAY) <=3 Order by NGAY, CTCO Desc d) Liệt kê danh mục các mã đối tượng, và tên đối tượng của các khách mua trong bảng DMUC Select MADT, TENDT from T_DMUC Where MATK="131" e) Lọc danh mục các tài khoản cấp 1, trong bảng TKSD Select * from T_TKSD Where CAPTK="1" 2.2 Truy vấn tuyển chọn có tham số Cho xem các chứng từ ghi nợ một tài khoản bất kỳ truyền từ một form Select * from T_CTPS Where TKNO= Forms!F_SH!TK 30

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

- Trong đó TK là một ô điều khiển Textbox, nằm trên Form mang tên F_SH a) Xem các chứng từ nhập kho một loại hàng hóa bất kỳ, trong một tháng bất kỳ Select * from T_CTPS Where TKNO= "1561" and CTNO=[Cho biet ma hang] And month(NGAY)=[Chon thang] b) Cho xem các phiếu chi trong một khoảng thời gian Select * from T_CTPS Where TKCO= "111" and NGAY Between [Tu ngay] and [Den ngay] 2.3 Truy vấn tuyển chọn thống kê a) Cho xem tổng số tiền mặt đã thu trong kỳ Select Sum(PSNO) As [Tong thu] from T_CTPS Where TKNO= "111" b) Cho xem Tổng số lượng nguyên vật liệu có mã DA đã nhập kho trong kỳ Select TKCO, CTCO, Sum(SOLG) AS [Tong luong] From T_CTPS Group by TKCO,CTCO Having TKCO="152" AND CTCO="DA" Hoặc có thể viết đơn giản hơn Select Sum(SOLG) AS [Tong luong] From T_CTPS Where TKCO="152" AND CTCO="DA" Cách viết 1 bạn viết điều kiện sau Having, và phải dùng Group by đủ các trường như đã viết trong Having, cách viết này thông tin kết quả dể nhìn hơn. c) Có bao nhiêu phiếu chi trong này 02/04/2004 Select Count(SOCT) AS [Tong so] From T_CTPS Where TKCO="1111" AND NGAY=#02/04/2004# Chúng ta cần chú ý, trong lệnh SQL chỉ dùng các ký hiệu thuộc hệ thống đo lường U.S d) Cho biết số lượng nhập kho hàng hóa có mã XM, cao nhất trong kỳ Select Max(SOLG) AS [Luong lon nhat] From T_CTPS Where TKNO="1561" and CTNO="XM" 2.4 Truy vấn tính tổng theo nhóm a) Cho xem số phát sinh nợ của từng tài khoản Select TKNO,Sum(PSNO) As [Tong thu] from T_CTPS Group by TKNO b) Cho xem số phát sinh nợ của từng tài khoản cấp 1 Select Left(TKNO,3) As [Tai khoan], Sum(PSNO) As [Tong thu] from T_CTPS Group by Left(TKNO,3) c) Cho xem số tiền phải trả cho từng người bán Select CTCO, Sum(PSNO) As [Tri gia] from T_CTPS Where TKCO="331" Group by CTCO

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

31

Bài giảng Kế toán máy II

Chương III. XÂY DỰNG BIỂU MẪU CHO CSDL KẾ TOÁN I/ Các vấn đề cơ bản về thiết kế Form Trong khi chúng ta nhìn dữ liệu dưới hình thức Table hay Query rất khô khan (trong chế độ Datasheet View), giả sử một chứng từ kế toán chẳng hạn một phiếu thu, thì nó thể hiện dưới dạng một bản ghi, dưới hình thức này chỉ có những người dùng có trình độ tin học tương đối khá thì có hiểu, nhưng chúng ta cũng có thể có cách để thể hiện các chứng từ đó dưới hình thức một phiếu thu như trong thực tế, muốn làm được điều này chúng ta phải sử dụng đến một công cụ trong Access, đó là Form. Chúng ta có thể sử dụng Form dùng vào nhiều mục đích như:  Dùng làm biểu mẫu nhập liệu cho các Table  Dùng làm màn hình điều khiển chọn công việc (menu Switchboard) Dùng tạo các hộp thoại để nhận chỉ thị từ người sử dụng  Trình tự thiết kế một Form như sau:  Xác định mục đích của Form để làm gì (Nhập liệu, màn hình điều khiển, hộp thoại...), hiển thị dữ liệu nào, có những chức năng nào  Giao diện của Form (mẫu thực tế phải thực hiện, cần phát họa trước trên giấy)  Thực hiện tạo Form  Dựa vào phát họa, đặt các Control lên Form  Xác lập các thuộc tính cần thiết cho Form và các điều khiển  Viết các thủ tục đáp ứng các sự kiện cho từng Control và Form cần thiết  Chạy thử và kiểm tra

1. Thiết kế Form 1.1 Phương pháp thiết kế Form bằng Wizard Phương pháp tạo biểu mẫu bằng Form Wizard là phương pháp đơn giản được Access hướng dẫn từng bước như sau: Bước 1: Trong cửa sổ DataBase chọn lớp Form, bấm nút New xuất hiện hộp thoại New Form. Các phương pháp tạo Form

Chọn Table hoặc Query trong CSDL đang mở để làm nguồn dữ liệu cho Form

32

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Bước 2: Chọn phương pháp Form Wizard, chọn Table hoặc Query làm nguồn dữ liệu cho Form (trong ví dụ này chúng ta chọn bảng CTPS), bấm OK xuất hiện hộp thoại Form Wizard

Chọn 1 trường

Danh sách các trường thuộc nguồn Dữ liệu đang chọn

Danh sách các trường được chọn cho thiết kế Chọn nhiều trường

Trả lại 1 trường Trả lại nhiều trường

Trong cửa sổ này xuất hiện hộp thoại yêu cầu Which fields do you want on your form? (Những trường nào bạn muốn đưa vào trên form của bạn?) Chúng ta chọn các trường cần đưa vào thiết kế bằng cách lần lượt chọn các trường ở khung Available Fields và bấm nút Chọn 1 trường hoặc nếu muốn đưa tất cả các trường vào chúng ta bấm nút Chọn nhiều trường sang khung Selected Fiels, (nếu nhỡ chọn một trường sang để trả lại chúng ta bấm nút Trả lại một trường ) Bấm nút Next để sang bước kế tiếp Bước 3: Trong bước này layout would you like for your form (Bạn thích chọn kiểu bố trí nào cho form của bạn?) chúng ta chọn kiểu bố trí các điều khiển trên

Form, chúng ta chọn thử một kiểu Thông thường chúng ta nên chọn một trong 2 kiểu bố trí:

• Columnar: Bố trí các điều khiển theo dạng cột • Tabular: Bố trí các điều khiển theo dạng dòng Bấm nút Next để sang bước tiếp theo Bước 4: Trong bước này Access yêu cầu chúng ta chọn hình thức trình bày các điều khiển trên Form (mẫu nền, kiểu dáng điều khiển, Font chữ..), sau đó bấm nút Next sang bước tiếp theo Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

33

Bài giảng Kế toán máy II

Chọn kiểu thể hiện

Bước 5: Trong bước cuối cùng Access yêu cầu chúng ta đặt tên cho Form, và Bấm nút Finish để kết thúc Thông thường khi chúng ta thiết kế bằng Form Wizard thì kết quả đạt được không như mong muốn, bởi vì nó chỉ cho chúng ta một mô hình chung và chưa có thể theo ý muốn, để đạt những Form đẹp và sử dụng tốt cho nhập liệu hoặc điều khiển thì chúng ta sẽ kết hợp cả việc thiết kế bằng Form Wizard, và tự thiết kế lại để bổ sung những thiếu sót mà phương pháp này chưa thể đáp ứng, trong hộp thoại này có 2 tùy chọn :  Open the Form to view or enter information ( Mở Form để xem hoặc nhập liệu vào)  Modify the Form's design ( Sửa lại thiết kế của Form)

1.2 Phương pháp thiết kế Form bằng Design View Để có thể thiết kế các Form theo ý muốn, chúng ta sẽ sử dụng phương pháp thiết kế bằng Design View. ở đây chúng ta sẽ làm quen với các công cụ thiết kế một Form 1.2.1 Các thành phần trong một Form Trong vùng thiết kế, một Form có thể chia làm nhiều phần (Section), trong đó:

• Phần Detail là phần quan trọng nhất, bắt buộc phải có 34

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

• Phần Page Header và Page Footer phần này có thể không cần thiết, chỉ có tác dụng làm hiện lên khi xem trong chế độ xem trước khi in (Print Preview)

• Phần Form Header và Form Footer có tác dụng luôn hiển thị ở đỉnh đầu và

chân của Form. Mục này cần thiết khi chúng ta thiết kế Form có nhiều điều khiển chiếm quá diện tích của Form mà vẫn muốn có các khoản mục luôn hiển thị ở phần đầu và chân biểu mẫu (như tiêu đề, các nút lệnh...), còn các điều khiển trong phần Detail nếu vượt quá diện tích còn lại thì Form sẽ tự động xuất hiện thêm các thanh trượt để xem các phần bị khuất. Chú ý:

• Trong màn hình Form có 2 cây thước, chúng có thể được tắt mở bằng lệnh View/Ruler

• Phần trống dưới Form Header và Form Footer chứa các điều khiển cần thiết

cho phần đầu và phần chân Form. Bật tắt 2 vùng này bằng lệnh View/ Form Header Footer

• Phần trống dưới Page Header và Page Footer chứa các điều khiển cần thiết cho phần đầu và phần chân Form khi in ra giấy (mục này chỉ có tác dụng khi in ra giấy). Bật tắt 2 vùng này bằng lệnh View/ Page Header Footer

• Phần trống dưới Detail là phần luôn có trong Form, chứa các điều khiển thuộc

chi tiết của Form 1.2.2 Các mục điều khiển (Control) trong một Form Một biểu mẫu được thiết kế bởi một tổ hợp các mục điều khiển (Control), khi thiết kế một điều khiển cần xác định nó lấy dữ liệu từ nguồn nào (Table hay Query) Ví dụ: Tạo một ô Text box để hiển thị mã của một tài khoản, lúc đó chúng ta có thể lấy dữ liệu từ trường TKNO bảng CTPS. Khi đó điều khiển đó được gọi là một điều khiển bị buộc với trường TKNO. Các mục điều khiển này bao gồm các loại sau:



Điều khiển bị buộc (Bound Control): Là các ô điều khiển mà nguồn dữ liệu của nó lấy từ các bảng hay các truy vấn đã tạo ra và gắn với biểu mẫu, trong biểu mẫu các điều khiển bị buộc có thể hiển thị, cập nhật dữ liệu của trường được gắn vào (Text box là loại phổ biến nhất)



Điều khiển không bị buộc (Unbound control): Là các ô điều khiển loại không mang dữ liệu của các bảng hay truy vấn hoặc bất kỳ một nguồn dữ liệu nào. Loại này dùng để trình bày (Label là loại thông dụng nhất).



Điều khiển tính toán (Caculated control): Là một ô điều khiển chứa biểu thức tính toán trên giá trị của các trường thuộc các bảng hay truy vấn. Biểu thức hay công thức là một tổ hợp của các tên trường, hàm, hằng số và các toán tử, kết quả của biểu thức là duy nhất và được hiển thị trong ô điều khiển. Ví dụ: Khi thiết kế một biểu mẫu để nhập các hóa đơn bán hàng có VAT ta có thể tạo một ô điều khiển với nguồn dữ liệu như sau : = [PSNO]*10/100

Các loại điều khiển Trong màn hình thiết kế ở chế độ Design View hộp công cụ ToolBox chứa các loại điều khiển sau : Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

35

Bài giảng Kế toán máy II

Con trỏ chuột (Pointer) Nhãn (Label)

Bật tắt (Control Wizard) Hộp văn bản (Text Box) Nút tắt mở (Toggle button)

Nhóm chọn nút (Option group) Nút Chọn (Option button)

Hộp kiểm tra (Check Box) Hộp danh sách (List Box) Chèn hình (Image)

Hộp chọn (Combo Box) Nút lệnh (Command Button) Khung hình (Unbound Object Frame)

Khung Đối tượng buộc Điều khiển nhiều lớp (Tab Control) Đoạn thẳng (Line)

Ngắt trang (Page Break) Form, Report con (SubForm/ SubReport) Hình chữ nhật (Rectangle)

Nhãn (Label) Là mục điều khiển không bị buộc thường dùng tiêu đề cho một biểu mẫu trong phần Form Header, hoặc làm tựa cho cho một mục điều khiển bị buộc trong phần Detail. Để tạo nhãn, chọn nút Label trên hộp công cụ sau đó bấm chuột tại vị trí cần thiết và nhập vào chuỗi ký tự cần hiển thị. Chúng ta có thể định dạng lại cho nhãn (Chọn Font, size....) bằng cách chọn nhãn, và bấm nút phải chuột chọn lệnh Properties trong menu ngắn sẽ xuất hiện hộp thoại Properties và thực hiện các thay đổi định dạng

Hộp văn bản (Text Box) Có 2 loại

♦ Hộp văn bản bị buộc, thường dùng để nhập liệu cho một trường của bảng nguồn.

Để tạo nó, chỉ cần kéo trường liên kết từ danh sách trường vào vị trí muốn đặt trên biểu mẫu. Để xuất hiện danh sách trường chọn lệnh View/ Field List, hoặc bấm nút Field List trên thanh công cụ (hộp văn bản luôn xuất hiện cùng một cặp với nhãn của nó)

Nhãn

Hộp văn bản

♦ Hộp văn bản không bị buộc, thường dùng để thực hiện một biểu thức. Để tạo nó, chọn nút Text box trên hộp công cụ, rồi bấm chuột ở một vị trí xác định. Để thực hiện một biểu thức, chúng ta nhập trực tiếp vào hộp văn bản biểu thức đó đi sau dấu = hoặc là nhập vào dòng Control source trong bảng thuộc tính của nó. 36

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Chúng ta có thể dùng cửa sổ Expression Builder để xây dựng biểu thức bằng cách bấm vào nút ... trên dòng Control source

Nút chọn (option button), hộp kiểm (Check box) Nút tắt mở (toggle button) Các loại này,trong trường hợp được sử dụng như mục điều khiển bị buộc thì nó được dùng để mô tả giá trị của vùng dữ liệu kiểu Logic (Yes/No) bằng cách chọn hoặc không. Để tạo, chúng ta chọn nút tương ứng trên hộp công cụ, rồi chọn trường liên kết trong danh sách trường rồi kéo vào vị trí xác định. Nó luôn xuất hiện một cặp cùng với nhãn của nó để chứa tựa cho mục chọn. Riêng nút tắt mở thì xuất hiện một mình, vì vậy tựa của nó sẽ được nhập trực tiếp hoặc gõ vào dòng Caption trong bảng thuộc tính của mục chọn

Nhóm chọn (option group) Nhóm chọn được sử dụng như một mục điều khiển bị buộc, được dùng để nhập giá trị là một số nguyên 1, 2,.. cho một trường của bảng nguồn. Để tạo nó, chọn nút Option Group trên hộp công cụ rồi chọn trường liên kết với nó trong danh sách trường và kéo vào vùng xác định. Các bước còn lại làm theo đồ thuật hướng dẫn (Wizard) của Access, hoặc tự thiết kế như sau: Chọn hình thức mong muốn (nút chọn, hộp kiểm, nút tắt mở), rồi bấm chuột vào vị trí xác định trong nhóm chọn. Mở bảng thuộc tính của mục kiểm tra hàng Option value có mang giá trị đúng ý không, đồng thời xác định dáng cho mục. Trong mục nhãn, nhập tựa tương ứng với giá trị của trường. Ví dụ: Để làm nhóm chọn để chọn mã sản phẩm nhập xuất cho CSDL Vật tư ta có hình thức như sau:

Khi chọn một trong các nút trên, vùng mã sản phẩm sẽ nhận một trong các giá trị tương ứng lấy từ Option value của mục chọn. Sub form/ sub report Là khung dùng để nhúng biểu mẫu con hoặc báo biểu con Object frame (khung hình) Là đối tượng không bị buộc, dùng để tạo các khung chứa các đối tượng như hình vẽ Bound object frame (khung hình buộc) Là đối tượng buộc, dùng để hiển thị và cập nhật một trường kiểu OLE (đối tượng nhúng) Image Là đối tượng dùng để chèn hình ảnh Tab control Dùng để tạo các lớp cho các biểu mẫu có nhiều trang, mỗi trang chứa các đối tượng điều khiển khác nhau Chart (biểu đồ) Là đối tượng dùng để biểu diễn số liệu tổng hợp dưới dạng biểu đồ Command button (nút lệnh) dùng để tạo các nút lệnh thi hành một công việc Line (đường thẳng), rectangle (hình chữ nhật) Dùng để tạo các đối tượng đồ họa như đường thẳng, hình khung chữ nhật trong mẫu. Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

37

Bài giảng Kế toán máy II

1.2.3 Định dạng biểu mẫu Định dạng biểu mẫu tức là làm thay đổi hình dạng, vị trí, kích thước, và các thuộc tính khác của các điều khiển trong biểu mẫu, sau đây là một số thao tác thường dùng trong lúc định dạng. a) Chọn điều khiển  Chọn 1 điều khiển ta nhắp chuột vào điều khiển cần chọn, điều khiển được chọn sẽ có 8 nút bọc quanh. Đối với một số điều khiển như Text box, Commbo box, Check box... luôn có nhãn đi kèm thì khi chọn chúng ta có thể chọn một trong hai, hoặc cả hai. Khi chọn một trong hai thì phần kia cũng xuất hiện một nút đen để di chuyển. Chúng ta có thể dùng phím Tab để di chuyển chọn giữa các điều khiển. Để chọn được nhiều điều khiển chúng ta có thể dùng chuột kéo qua các điều khiển để chọn, hoặc giữ phím Shift và dùng chuột để chọn nhiều điều khiển, muốn chọn tất cả các điều khiển của biểu mẫu bấm Ctrl+A b) Hủy chọn một điều khiển Chúng ta có thể hủy bỏ chọn cho một điều khiển trong số các điều khiển đã được chọn bằng cách bấm giữ phím Shift trong khi nhắp chuột vào một điều khiển c) Di chuyển điều khiển Sau khi chúng ta đã đưa các điều khiển vào biểu mẫu thì để cho biểu mẫu có bố trí thích hợp cho các điều khiển chúng ta cần phải di chuyển các điều khiển vào các vị trí cần thiết



Nút di chuyển từng đối tượng

Nút thay đổi kích thước

- Các điều khiển có nhãn (như hình trên) Sau khi chọn đối tượng thì sẽ xuất hiện các dấu chọn xung quanh. Để di chuyển cả điều khiển và cả nhãn chúng ta rê chuột đến điều khiển cho đến khi xuất hiện bàn tay phải xòe thì kéo điều khiển đi, hoặc chúng ta co thể dùng kèm phím Ctrl cùng với các phím mủi tên để di chuyển - Các điều khiển đơn lẽ thì chúng ta rê chuột vào nút di chuyển từng đối tượng khi xuất hiện bàn tay phải chỉ vào nút di chuyển thì kéo điều khiển đi d) Thay đổi kích thước C1/ Chọn điều khiển rê chuột vào các nút thay đổi kích thước đến khi xuất hiện mủi tên đen 2 chiều thì kéo và thả chuột đến kích thước vừa ý C2/ Có thể thay đổi nhanh kích thước cho một số điều khiển có liên quan đến loại Font và kích cỡ Font, bằng cách rê chuột vào các nút thay đổi kích thước đến khi xuất hiện mủi tên 2 đầu và bấm đúp chuột hoặc chọn lệnh Format/ Size / To fix C3/ Muốn điều chỉnh kích thước các điều khiển đã được chọn, chọn lệnh Format / Size và sau đó có thể chọn các mục sau :

 To Tallest (điều chỉnh cho tất cả các điều khiển có cùng chiều cao với điều khiển có chiều cao nhất)

 To Shortest (điều chỉnh cho tất cả các điều khiển có cùng chiều cao với điều khiển có chiều cao thấp nhất) 38

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

 To Widest (điều chỉnh cho tất cả các điều khiển có cùng chiều dài với điều khiển có chiều dài nhất)

 To Narrowest (điều chỉnh cho tất cả các điều khiển có cùng chiều dài với điều khiển có chiều dài ngắn nhất) e) Sao chép, cắt, dán, xóa tương tự như các ứng dụng khác trong windows Chú ý  Chúng ta có thể thay đổi nhanh định dạng cho các điều khiển bằng cách chọn Form trong chế độ Design View, sau đó chọn điều khiển và dùng thanh công cụ Formatting (Form/Report) như sau:

 Sau khi thiết kế xong một Form thì chúng ta sẽ chạy thử khi nhập liệu vào Form để có thể di chuyển sự chiếu đến giữa các điều khiển ngoài cách nhắp chuột vào từng điều khiển để nhập, thì chúng ta còn có thể dùng phím Tab để di chuyển qua lại thì các điều khiển sẽ lần lượt nhảy đến một thứ tự mặc định, nếu muốn tùy chọn việc thay đổi thứ tự này chúng ta thực hiện bằng cách chọn lệnh: View / Tab Order (trong chế độ Design View) xuất hiện hộp thoại.

Bấm chuột vào nút và giữ rê để thay đổi vị trí Tab

1.2.4 Đưa các trường của bảng nguồn vào biểu mẫu Khi thiết kế các biểu mẫu nhập liệu, để đưa các trường của bảng nguồn vào biểu mẫu, chúng ta theo các bước sau Bước 1 Mở CSDL, chọn lớp Form, bấm nút New, chọn phương pháp thiết kế biểu mẫu Design View và chọn nguồn dữ liệu để đưa vào thiết kế (chọn bảng nguồn), cho hiển thị danh sách các trường của dữ liệu nguồn đã gắn vào Form bằng cách bấm

nút

hoặc chọn lệnh View/ Field list Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

39

Bài giảng Kế toán máy II

Bước 2 Trong hộp danh sách chọn các trường cần đưa vào thiết kế và kéo thả vào biểu mẫu (Để lấy nhiều trường khi chọn giữ kèm với phím Ctrl hoặc Shift)

Bước 3 Bấm nút Save để lưu và đặt tên cho biểu mẫu

Để thử nghiệm biểu mẫu làm việc chúng ta chọn tên biểu mẫu trong lớp Form và ấn nút Open hoặc Enter để nhập liệu 1.2.5 Qui định thuộc tính trên các đối tượng điều khiển Trong mỗi thiết kế biểu mẫu, để có thể đáp ứng được các yêu cầu tùy chọn thì ngoài việc đưa các trường của bảng nguồn vào biểu mẫu còn phải thiết lập các thuộc tính cho các đối tượng điều khiển. Trong cửa sổ thiết kế chúng ta chọn điều khiển và chọn lệnh View/ Properties, hoặc bấm nút Properties, hoặc bấm chuột phải vào điều khiển và chọn lệnh

Properties trong menu ngắn. Và chúng ta cũng có thể mở hộp thoại thuộc tính trước rồi chọn điều khiển sau Trong đó có các lớp 40

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

 Data: Các thuộc tính này xuất hiện trên các điều khiển bị buộc (Bound), các thuộc tính này ảnh hưởng đến dữ liệu được hiển thị trong điều khiển, lớp này bao gồm các thuộc tính Thuộc tính

Nội dung

Record Source

Đây là thuộc tính nguồn dữ liệu của các đối tượng như Form, Report, Combo Box, List Box. Nguồn có thể là một Table, Query, hoặc là một câu lệnh SQL

Filter

(Có trên đối tượng Form) biểu thức cho biết dữ liệu hiển thị trên Form có được lọc không (biểu thức Logic SQL)

Order By

(Có trên đối tượng Form) cho biết dữ liệu có được sắp xếp hay không. Nếu có các tên trường cần sắp xếp được viết liệt kê cách nhau bởi dấu phảy

AllowEdit/ Cho phép hay không cho phép cập nhật/ Xóa/ thêm bản ghi Deletions/ Addtions (chỉ có trên Form) Data Empty

Nếu là No thì mọi bản ghi sẽ được hiển thị trong Form, ngược lại Yes thì trên Form khong hiển thị bản ghi nào cả, chỉ có 1 bản ghi trống được hiển thị để nhập mới

Record locks

Cho hay không cho khóa các bản ghi (chỉ có tác dụng khi chương trình cahỵ trên mạng) khi đang sửa bản ghi nếu đặt là No Locks thì không khóa, All Records thì khóa tất cả các bản ghi thuộc bảng dữ liệu đang sử dụng trong Form này, Edited Record thì chỉ khóa bản ghi đang sửa

Control Source

Đây là thuộc tính của các điều khiển bị buộc. Nguồn dữ liệu mà đối tượng sẽ điều khiển. Thông thường là tên một trường (thuộc nguồn dữ liệu Form đang sử dụng) hoặc một biểu thức tính toán (biểu thức sử dụng có thể là một trường hoặc một hàm)

Enable

Cho hoặc không cho truy cập dữ liệu trên điều khiển

Locked

Cho hoặc không cho sửa dữ liệu trên điều khiển

Default Value

Giá trị mặc định trên điều khiển

Validation Rule

Biểu thức buộc phải hợp lệ khi nhập dữ liệu

Validation Text

Chuỗi văn bản thông báo khi dữ liệu nhập vào không hợp lệ trong biểu thức Validation Text

 format: Các thuộc tính này có trên Form và các điều khiển, các thuộc tính này có tác dụng định dạng dữ liệu hiển thị trên Form

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

41

Bài giảng Kế toán máy II

Thuộc tính

Nội dung

Caption

Thuộc tính có trên Form và Label, là nội dung tiêu đề cho cửa sổ Form và nội dung của Label

Default View

(dùng cho Form) kiểu mặc định mà Form sẽ hiển thị khi Open. Các kiểu có thể sử dụng là Singlr Forms (hiển thị mỗi lúc một bản ghi), Continuous Forms (hiển hị cùng lúc nhiều bản ghi), Datasheet (hiển thị dạng hàng cột)

Scroll bar

(có trên Form vàText box) gồm các tùy chọn cho các thanh trượt trên cửa sổ

Record Selectors

(Có trên Form) tùy chọn có các nút chọn bản ghi

Navigation buttons

(Có trên Form) tùy chọn có các nút chọn di chuyển bản ghi qua lại

Dividing lines

(Có trên Form) tùy chọn có các đường thẳng làm ranh giới giữa các vùng

Format

Dùng các mã định dạng cho dữ liệu hiển thị trên các điều khiển bị buộc

Fore color

Màu chữ

Font name

Tên Font

Font size

Cỡ chữ

Back color

Màu nền

Border color

Màu khung của điều khiển

 event: Các thuộc tính này có trên Form và các điều khiển, các thuộc tính này có tác dụng qui định các tác vụ mà Access phải thực hiện trên các đièu khiển của Form Thuộc tính

Nội dung

Before Update

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành trước khi ô điều khiển hiện hành được cập nhật dữ liệu

After Update

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành sau khi ô điều khiển hiện hành được cập nhật dữ liệu

On Enter

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi ô điều khiển hiện hành được chọn lần đầu tiên gọi là tình trạng Get Focus event FOCUS là thuật ngữ dùng để biểu thị khả năng nhận dữ liệu nhập vào của người dùng thông qua bàn phím và Mouse. mỗi lúc chỉ có một đối tượng có khả năng này. Ví dụ như khi bạn bấm vào một chuỗi ký tự thì chuỗi này sẽ hiện ra trong ô hay vị trí đang được chọn mà thôi. Lúc đó ta

42

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

nói rằng ô hay vị trí đó đang có FOCUS On Change

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi đang cập nhật dữ liệu ô điều khiển hiện hành

On Exit

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi ô điều khiển hiện hành có qui định tính chất này bị mất Focus (thoát ra), còn gọi là tình trạng Lost Focus Event

On Got Focus

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi ô điều khiển hiện hành đang được chọn (nghĩa là có Focus)

On Lot Focus

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi ô điều khiển hiện hành thôi được chọn (nghĩa là mất Focus)

On Click

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng bấm chuột một lần tại ô điều khiển

On Dbl Click

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng bấm đúp chuột tại ô điều khiển

On Mouse Down

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng ấn chuột (không buông nút mouse) tại ô điều khiển

On Mouse Up

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng buông nút mouse tại ô điều khiển

On Mouse Move

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng di chuyển chuột tại ô điều khiển

On Key Down

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng bắt đầu bấm một phím tại ô điều khiển

On Key Up

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng đã buông một phím tại ô điều khiển

On Key Press

Chọn mục này để qui định lệnh Macro hay tự soạn một thủ tục (Procedure) phải thi hành khi người sử dụng đã bấm một phím và không buông tay tại ô điều khiển

 other: Các thuộc tính này có trên Form và các điều khiển Thuộc tính

Nội dung Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

43

Bài giảng Kế toán máy II

Name

Tên của điều khiển

Menu bar

Có trên Form, chứa tên Menu mà Form sẽ sử dụng, nếu để trống Access sẽ sử dụng tên mặc định

Toolbar

Có trên Form, chứa tên Toolbar mà Form sẽ sử dụng, nếu để trống Access sẽ sử dụng tên mặc định

Status Bar Text

Có trên các điều khiển bị buộc, là chuỗi văn bản sẽ hiển thị trên thanh trạng thái khi bạn chiếu đến điều khiển trong lúc Form đang chạy

Tab Index

Có trên các điều khiển bị buộc, là số thứ tự chỉ vị trí trỏ chiếu đến sẽ nhảy khi ấn phím Tab trên các điều khiển

Trên đây là một số thuộc tính thường dùng nhất trên các Form, còn một số thuộc tính khác chúng ta sẽ nghiên cứu sau. 1.2.6 Tạo các nút lệnh (command button) Sau khi chúng ta tạo xong Form, thì mặc định phần dưới của biểu mẫu sẽ có một dàn nút điều khiển cho chúng ta tới, lui, và nhập các bản ghi, nhưng nếu sử dụng hệ thống đó thì không được đẹp mắt muốn vậy chúng ta có thể tự tạo ra một dàn nút lệnh mới đáp ứng được nhiều yêu cầu hơn. Để tạo nút lệnh chúng ta có thể tự thiết kế hoặc có thể dùng trình Control Wizard để tạo. Các bước tiến hành như sau: Bước 1 Tại cửa sổ thiết kế Form, mở hộp thoại Toolbox, và bật nút Control Wizard (khi bật nút này bị lún xuống), sau đó bấm nút Command button và đưa chuột ra Form và kẻ nút lệnh Bước 2 Xuất hiện hộp thoại Command Button Wizard, Access hỏi bạn Hành

động nào mà bạn muốn xảy ra khi nút lệnh được ấn xuống ? Lúc này bạn chọn trong khung Categories một nhóm lệnh, kế đến bạn chọn tiếp bên khung Actions một hành động, và bấm nút Next để sang bước tiếp

44

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Bước 3 Tiếp tục hộp thoại Command Button Wizard hỏi bạn

Bạn muốn chọn văn bản hay hình ảnh hiện ra trên nút lệnh? Nếu chọn Text thì bạn gõ nhãn nút lệnh vào, nếu muốn làm hotkey thì thêm dấu & phía trước, nếu chọn Picture thì chọn các hình trong danh sách hoặc ấn nút Browse để tìm Bước 4 Bạn hãy nhập tên cho nút và ấn nút Finish để kết thúc Bước 5 Nếu cần thiết tinh chỉnh lại nút lệnh thì hãy chọn Properties để điều chỉnh các định dạng (Font, Size,...)

 Các nhóm và hành động trong từng nhóm Categories

Record Navigation

Record Operations

Actions

Nội dung

Find Next Find Record Go to First Record Go to Last Record Go to Next Record Go to Previous Record

Tìm tiếp với lần tìm bản ghi gần nhất Mở hộp thoại tìm bản ghi Di chuyển con trỏ về bản ghi đầu Di chuyển con trỏ về bản ghi cuối Di chuyển con trỏ về bản ghi tiếp theo Di chuyển con trỏ về bản ghi trước đó

Add New Record Delete Record Duplicate Record

Thêm bản ghi mới Xóa bản ghi hiện hành Tạo thêm một bản ghi giống bản ghi hiện

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

45

Bài giảng Kế toán máy II

Print Record Save Record Undo Record

tại In bản ghi hiện hành Lưu bản ghi đang sửa Phục hồi bản ghi vừa sửa

Form Operations

Apply Form Filter Edit Form Filter Close Form Open Form Print Form Print Current Form Refresh Form Data

áp dụng lọc với tiêu chuẩn lọc bản ghi vừa tạo Tạo tiêu chuẩn lọc bản ghi Đóng Form đang hoạt động Mở Form In Form In Form đang kích hoạt Làm tươi lại dữ liệu trong Form

Report Operation

Preview Report Print Report

Xem trước khi in Báo biểu In Báo biểu

Application

Chạy các ứng dụng

Micellaneous

Chạy các kích hoạt linh tinh khác

2. Các Tùy biến biểu mẫu 2.1 Thay đổi các thuộc tính cơ bản của Form Để tăng tính thiết kế chuyên nghiệp cho các Form đã thiết kế chúng ta có thể sử dụng một số tinh chỉnh bằng cách: • Bấm chuột phải vào nút chọn Form, chọn lệnh Properties • Chọn lớp Format, và hiệu chỉnh một số mục như sau: - Caption : Tiêu đề Form - Default View: Chế độ hiển thị Form, chọn Single Form (Chỉ hiện 1 bản ghi), Continuous Forms (hiện nhiều bản ghi) - Scroll bars: Chọn Neither nếu bạn không muốn tất cả thanh cuộn xuất hiện - Record selectors: Chọn No nếu bạn không cho xuất hiện nút chọn bản ghi hiện hành. - Dividing lines : Chọn No sẽ làm mất các đường thẳng phân chia các khu vực - Navigation Buttons: Chọn No sẽ không xuất hiện hệ thống nút điều khiển bản ghi - Min Max Buttons: Chọn None để tắt 2 nút Min, Max - Close Button : Chọn No để tắt nút đóng Form - Control Box: chọn No tắt hộp điều khiển menu 2.2 Thay đổi thứ tự các điều khiển trên biểu mẫu Trong quá trình thiết kế các Form, có thể các ô điều khiển đưa vào màn hình thiết kế không đúng theo trật tự mong muốn, muốn hiệu chỉnh lại thứ tự này chúng ta thực hiện như sau:

46

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

- Bấm chuột phải vào nút chọn Form, chọn lệnh Tab Order..., sau đó dùng chuột chọn điều khiển cần thay đổi thứ tự và giữ chuột trong khi đẩy điều khiển đến vị trí cần thiết. 2.3 Thay đổi nội dung nút lệnh được tạo bằng Wizard Trong khi tạo các nút lệnh ( hoặc các điều khiển) bằng Wizard máy tính sẽ tạo cho điều khiển đó một đoạn lệnh được gọi là các Event Procedure (Thủ tục sự kiện), chúng ta có thể tinh chỉnh lại các lệnh này bằng cách: - Bấm chuột phải vào nút lệnh (ô điều khiển) - Chọn lệnh Properties, chọn lớp Event - Nhắp chuột vào dòng Event Procedure, bấm nút ... để mở cửa sổ lệnh sau đó hiệu chỉnh lại các lệnh.

II/ Xây dựng hệ thống biểu mẫu cho ứng dụng kế toán Toàn bộ ứng dụng Kế toán của chúng ta có thể chia làm nhiều phân hệ, do đó về phần nhập liệu cũng sẽ có nhiều biểu mẫu cho phần này, có một số phần mềm chỉ sử dụng một biểu mẫu để nhập dữ liệu chứng từ phát sinh cho toàn bộ hệ thống, ở đây để có thể dể hiểu cho người sử dụng chúng ta chia thành nhiều phân hệ. • Phân hệ vốn bằng tiền: Phiếu Thu, Phiếu chi, Giấy Báo nợ, Báo có (tiền gửi, tiền vay ngắn hạn) • Phân hệ kế toán nguyên vật liệu, cộng cụ dụng cụ: Phiếu Nhập, Phiếu xuất • Phân hệ kế toán hàng hóa: Phiếu nhập, Phiếu xuất, Hóa đơn • Phân hệ kế toán thành phẩm: Phiếu nhập, phiếu xuất • Kế toán khác: phần này dùng để nhập tất cả các chứng từ khác còn lại. - Các dữ liệu khi nhập vào các phân hệ trên được thực hiện hàng ngày, ngoài ra chúng ta còn phải nhập các dữ liệu hệ thống cơ bản lần đầu tiên bao gồm: Hệ thống tài khoản sử dụng và số dư đầu kỳ của các tài khoản, Danh mục các mã đối tượng chi tiết (mã nguyên vật liệu, hàng hóa, thành phẩm, khách hàng, nhà cung cấp, kho, ...) Trong bài giảng chúng tôi chỉ đề cập đến những biểu mẫu chính, phần còn lại học sinh có thể tự thiết kế dựa trên các biểu mẫu này.

1. Form F_PHIEUTHU Form này dùng để nhập các phiếu thu, nguồn là bảng T_CTPS, dựa theo mẫu sau đây

Yêu cầu: Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

47

Bài giảng Kế toán máy II

1. Số chứng từ nhập vào có 5 ký tự, trong đó 2 ký tự chữ in hoa, và tiếp theo là 3 ký số chỉ thứ tự của chứng từ. 2. Ngày lập được nhập theo kiểu Việt nam 3. Tài khoản nợ mặc định là 1111 4. Có combo box cho 2 trường CTNO, CTCO khi nhập vào mã ghi nợ, hoặc mã ghi có và các mã này sẽ được tự động thay đổi cho phù hợp khi người dùng nhập vào các tài khoản nợ có tương ứng. 5. Số tiền bên có tự động cập nhật bằng giá trị của số tiền bên nợ Hướng dẫn: 1. Chúng ta có thể nạp Input mask cho trường SOCT là >LL000 2. Input mask của trường NGAY là 00/00/000, và nên chỉnh trong Control panel các thông số cho phù hợp kiểu ngày Việt. 3. Chọn Default Value cho trường TKNO là 1111 4. * Chúng ta có thể tạo combo box cho 2 trường CTNO, CTCO bằng 1 trong 2 cách: • Có thể chọn công cụ Combo box trên hộp Toolbox, sau đó vẽ vào Form 1 combo box (không chạy Wizard) sau đó nạp Control source là trường CTNO, hoặc CTCO • Có thể chuyển đổi Textbox CTNO, hoặc CTCO sang Combo box, bằng cách bấm chuột phải vào các Textboxx này chọn lệnh Change To / Combo box. * Sau đó chúng ta nạp dữ liệu nguồn cho Combo box bằng câu lệnh SQL sau: Select MADT, TENDT From T_DMUC Where MATK=TKNO (nếu Combo CTNO) Select MADT, TENDT From T_DMUC Where MATK=TKCO (nếu Combo CTCO) * Làm tươi dữ liệu cho các Combo box, chúng ta chọn sự kiện After Update cho các ô TKNO, TKCO và thực hiện thao tác Requery cho các câu SQL trong 2 combo box này * Bấm chuột phải vào các Combo box , chọn lệnh Properties, chọn lớp Forrmat và hiệu chỉnh thêm một số thông số sau: • Caption: Cong ty TNHH An Vinh • Scrolls bar: Neither • Record selectors: No • Navigation buttons: No • Dividing Lines: No • Control Box: No • Min Max buttons: None • Close button: No 5. Chọn sự kiện After Update cho ô PSNO, và viết thủ tục sự kiện PSCO=PSNO 6. Mã lệnh VBA của toàn bộ Form Option Compare Database 48

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

===================================== Private Sub Form_Load() DoCmd.GoToRecord , , acNewRec End Sub ===================================== Private Sub PSNO_AfterUpdate() PSCO = PSNO End Sub ===================================== Private Sub Tiep3_Click() On Error GoTo Err_Tiep3_Click DoCmd.GoToRecord , , acNext Exit_Tiep3_Click: Exit Sub Err_Tiep3_Click: MsgBox Err.Description Resume Exit_Tiep3_Click End Sub ===================================== Private Sub Lui3_Click() On Error GoTo Err_Lui3_Click DoCmd.GoToRecord , , acPrevious Exit_Lui3_Click: Exit Sub Err_Lui3_Click: MsgBox Err.Description Resume Exit_Lui3_Click End Sub ===================================== Private Sub nhap3_Click() On Error GoTo Err_nhap3_Click SOCT.SetFocus DoCmd.GoToRecord , , acNewRec Exit_nhap3_Click: Exit Sub Err_nhap3_Click: MsgBox Err.Description Resume Exit_nhap3_Click End Sub ===================================== Private Sub luu3_Click() Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

49

Bài giảng Kế toán máy II

On Error GoTo Err_luu3_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_luu3_Click: Exit Sub Err_luu3_Click: MsgBox Err.Description Resume Exit_luu3_Click End Sub ===================================== Private Sub TKCO_AfterUpdate() CTCO.Requery End Sub ===================================== Private Sub TKNO_AfterUpdate() CTNO. Requery End Sub ===================================== Private Sub xoa3_Click() On Error GoTo Err_xoa3_Click Dim traloi traloi = MsgBox("Ban muon xoa Chung tu nay ?", 48 + 4, "Thong Bao") If traloi = 6 Then DoCmd.SetWarnings False DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.GoToRecord , , acFirst DoCmd.SetWarnings True End If Exit_xoa3_Click: Exit Sub Err_xoa3_Click: MsgBox Err.Description Resume Exit_xoa3_Click End Sub ===================================== Private Sub thoat3_Click() On Error GoTo Err_thoat3_Click DoCmd.Close Exit_thoat3_Click: Exit Sub Err_thoat3_Click: 50

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

MsgBox Err.Description Resume Exit_thoat3_Click End Sub Chú ý Chúng ta khi nhập liệu vào Form này có thể sẽ thấy các chứng từ được nhập ở các Form khác, bởi vì chúng ta chọn nguồn cho Form này là bảng T_CTPS, nếu chỉ muốn xuất hiện các chứng từ nhập trên form này, tức là các phiếu thu, thì chúng ta phải tạo 1 query lọc các phiếu thu từ T_CTPS để làm nguồn cho form ( có thể dùng câu SQL sau select * from ctps where left(tkno,3)="111" ) hoặc áp dụng các phương thức lọc mỗi khi mở form này.

2. Form F_PHIEUCHI Form này dùng để nhập các phiếu chi, nguồn là bảng T_CTPS, dựa theo mẫu sau đây

Form này phương pháp thiết kế hoàn toàn như F_PHIEUTHU, chỉ có khác là mục Default Value của trường TKCO là 1111. Tương tự như phần chú ý của Form F_PHIEUTHU, nếu khi nhập chỉ muốn thấy các chứng từ của Form F_PHIEUCHI thì chúng ta phải tạo 1 query lọc các phiếu chi từ T_CTPS để làm nguồn cho form ( có thể dùng câu SQL sau select * from ctps where left(tkco,3)="111" ) hoặc áp dụng các phương thức lọc mỗi khi mở form này.

3. Form F_BNOG Form này dùng để nhập các giấy báo nợ tiền gửi ngân hàng, nguồn là bảng T_CTPS, dựa theo mẫu sau đây

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

51

Bài giảng Kế toán máy II

Form này phương pháp thiết kế hoàn toàn như F_PHIEUTHU, chỉ có khác là mục Default Value của trường TKCO là 1121. Nếu khi nhập chỉ muốn thấy các chứng từ của Form F_BNOG thì chúng ta phải tạo 1 query lọc các giấy báo nợ từ T_CTPS để làm nguồn cho form ( có thể dùng câu SQL sau select * from ctps where left(tkco,3)="112" ) hoặc áp dụng các phương thức lọc mỗi khi mở form này.

4. Form F_BCOG Form này dùng để nhập các giấy báo có tiền gửi ngân hàng, nguồn là bảng T_CTPS, dựa theo mẫu sau đây

Form này phương pháp thiết kế hoàn toàn như F_BNOG, chỉ có khác là mục Default Value của trường TKNO là 1121. Nếu khi nhập chỉ muốn thấy các chứng từ của Form F_BCOG thì chúng ta phải tạo 1 query lọc các giấy báo có từ T_CTPS để làm nguồn cho form ( có thể dùng câu SQL sau select * from ctps where left(tkno,3)="112" ) hoặc áp dụng các phương thức lọc mỗi khi mở form này.

5. Các form F_BCOV, F_BNOV Các form này dùng để nhập các giấy báo nợ, báo có tiền vay ngắn hạn ngân hàng, nguồn là bảng T_CTPS, cách thiết kế tương tự như F_BNOG, và F_BCOG, chỉ khác trong phần Default value các tài khoản là 311

6. Form F_NHAP1 Form này dùng để nhập các phiếu nhập kho nguyên vật liệu, công cụ dụng cụ, nguồn là bảng T_CTPS, đặc trưng của Form này là đối với các đơn vị nộp thuế giá trị gia tăng khấu trừ, sau khi nhập chứng từ nhập kho chưa thuế, máy tính có thể tự động tạo ra chứng từ thuế GTGT đầu vào, với tỉ suất thuế mặc định 10%, và người sử dụng cũng có thể tự hiệu chỉnh lại giá trị thuế này nếu như dưa trên tỉ suất thuế khác, dựa theo mẫu sau đây:

52

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Trong form này hoàn toàn tương tự như các form trước chỉ khác ở điểm, sau khi kế toán viên nhập số lượng và đơn giá nhập kho chưa thuế thì máy tính tự động cập nhật phát sinh nợ và phát sinh có, sau đó nếu bấm nút Thuế thì máy tự động sinh ra bản ghi chứng từ thuế. Hướng dẫn: • Để có thể tự động tính số tiền nợ có, chúng ta chọn Textbox DONGIA để lập trình chọn sự kiện After Update cho ô này và viết các lệnh PSNO=SOLG * DONGIA PSCO=SOLG * DONGIA • Để cài đặt Tài khoản bên nợ là 152, chúng ta chọn ô TKNO, và chọn Default value là 152

• Để tự động tính Thuế, chúng ta tạo Command button Thuế (không dùng

wizard), sau đó chọn sự kiện On Click, và viết đoạn thủ tục sự kiện sau. Private Sub Thue_Click() Dim Dl As Database Dim Bg As Recordset Dim SCT, NGAYCT, TCO, CCO, VAT SCT=SOCT NGAYCT= NGAY TCO= TKCO CCO= CTCO VAT=SOLG* DONGIA * 0,1 DoCmd.GoToRecord , , acNewRec Me.SOCT = SCT Me.NGAY = NGAYCT Me.DGIAI = "Thuế GTGT" Me.TKNO = "133" Me.TKCO = TCO Me.CTCO = CCO Me.PSNO = VAT Me.PSCO = VAT End Sub Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

53

Bài giảng Kế toán máy II

• Mã lệnh VBA của toàn bộ Form Option Compare Database ========================================== Private Sub Form_Load() DoCmd.GoToRecord , , acNewRec End Sub Private Sub PSNO_AfterUpdate() PSCO = PSNO End Sub ========================================== Private Sub Thue_Click() Dim Dl As Database Dim Bg As Recordset Dim SCT, NGAYCT, TCO, CCO, VAT SCT=SOCT NGAYCT= NGAY TCO= TKCO CCO= CTCO VAT=SOLG* DONGIA * 0,1 DoCmd.GoToRecord , , acNewRec Me.SOCT = SCT Me.NGAY = NGAYCT Me.DGIAI = "Thuế GTGT" Me.TKNO = "133" Me.TKCO = TCO Me.CTCO = CCO Me.PSNO = VAT Me.PSCO = VAT End Sub ========================================== Private Sub Tiep3_Click() On Error GoTo Err_Tiep3_Click DoCmd.GoToRecord , , acNext Exit_Tiep3_Click: Exit Sub Err_Tiep3_Click: MsgBox Err.Description Resume Exit_Tiep3_Click End Sub ========================================== 54

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Private Sub Lui3_Click() On Error GoTo Err_Lui3_Click DoCmd.GoToRecord , , acPrevious Exit_Lui3_Click: Exit Sub Err_Lui3_Click: MsgBox Err.Description Resume Exit_Lui3_Click End Sub ========================================== Private Sub nhap3_Click() On Error GoTo Err_nhap3_Click SOCT.SetFocus DoCmd.GoToRecord , , acNewRec Exit_nhap3_Click: Exit Sub Err_nhap3_Click: MsgBox Err.Description Resume Exit_nhap3_Click End Sub ========================================== Private Sub luu3_Click() On Error GoTo Err_luu3_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 DoCmd.GoToRecord , , acNewRec Exit_luu3_Click: Exit Sub Err_luu3_Click: MsgBox Err.Description Resume Exit_luu3_Click End Sub ========================================== Private Sub TKCO_AfterUpdate() CTCO.Requery End Sub ========================================== Private Sub TKNO_AfterUpdate() 'DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 lenh nay cung lam tuoi CTNO.Requery Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

55

Bài giảng Kế toán máy II

End Sub ========================================== Private Sub xoa3_Click() On Error GoTo Err_xoa3_Click Dim traloi traloi = MsgBox("Ban muon xoa Chung tu nay ?", 48 + 4, "Thong Bao") If traloi = 6 Then DoCmd.SetWarnings False DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.GoToRecord , , acFirst DoCmd.SetWarnings True End If Exit_xoa3_Click: Exit Sub Err_xoa3_Click: MsgBox Err.Description Resume Exit_xoa3_Click End Sub Private Sub thoat3_Click() On Error GoTo Err_thoat3_Click DoCmd.Close Exit_thoat3_Click: Exit Sub Err_thoat3_Click: MsgBox Err.Description Resume Exit_thoat3_Click End Sub

7. Form F_XUAT1 Form này dùng để nhập các phiếu xuất kho nguyên vật liệu, công cụ dụng cụ, nguồn là bảng T_CTPS, trong mẫu này chúng ta chỉ thiết lập Tài khoản có mặc định là 152,dựa theo mẫu sau

56

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

8. Form F_NHAP2 Form này dùng để nhập các phiếu nhập kho hàng hóa, nguồn là bảng T_CTPS, trong mẫu này chúng ta chỉ thiết lập Tài khoản nợ mặc định là 1561 (tương tự như F_NHAP1)

9. Form F_XUAT2 Form này dùng để nhập các phiếu xuất kho hàng hóa, thành phẩm, nguồn là bảng T_CTPS, trong mẫu này chúng ta chỉ thiết lập Tài khoản có mặc định là 1561, form này tương tự như form F_XUAT1, nhưng chúng ta tạo thêm nút Doanh Thu, khi bấm vào nút này trong trường hợp xuất bán hàng hóa, hoặc thành phẩm có ghi doanh thu, thì nó sẽ gọi form F_DOANHTHU để thực hiện.

10. Form F_DOANHTHU Form này dùng để nhập các chứng từ ghi doanh thu, với nguồn là bảng T_CTPS, trong mẫu này chúng ta chỉ thiết lập Tài khoản có mặc định là 511, trên form này chúng ta cũng tạo một nút thuế, để mỗi khi nhập xong doanh thu chưa thuế, bấm vào nút này máy tính sẽ tự động tạo ra một chứng từ ghi thuế GTGT, cách thực hiện tương tự như Form F_NHAP1, trong đó bạn tạo ra nút Thuế, với đoạn mã lệnh VBA như sau: Private Sub Thue_Click() Dim Dl As Database Dim Bg As Recordset Dim SCT, NGAYCT, TNO, CNO, VAT SCT=SOCT NGAYCT= NGAY TNO= TKNO CNO= CTNO VAT=SOLG* DONGIA * 0,1 DoCmd.GoToRecord , , acNewRec Me.SOCT = SCT Me.NGAY = NGAYCT Me.DGIAI = "Thuế GTGT" Me.TKNO = TNO Me.CTNO= CNO Me.TKCO = "3331" Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

57

Bài giảng Kế toán máy II

Me.PSNO = VAT Me.PSCO = VAT End Sub

58

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Chương IV . SỔ SÁCH VÀ BÁO CÁO KẾ TOÁN I/ Các vấn đề cơ bản về thiết kế Report Trong Quản lý CSDL công việc cuối cùng và cần thiết nhất đó là cung cấp các thông tin cô đọng phục vụ cho quản lý dưới dạng giấy tờ, trong Access để thực hiện công việc này chúng ta sẽ sử dụng công cụ Report. Report có hình thức giống như các tờ biểu mẫu trong thực tế, nó được dùng để hiển thị và in ấn các số liệu với nguồn dữ liệu là các Table hoặc các Query, thông thường là số liệu đã được tổng hợp dưới dạng các Query. Trong một báo biểu chúng ta có thể tổ chức thông tin, qui định dạng thức in ấn sao cho phù hợp với yêu cầu về thông tin và mỹ quan. Khi sử dụng Access chúng ta có thể thiết kế những báo biểu để trình bày những dữ liệu theo ý chúng ta muốn. Chúng ta có thể dùng nhiều thành phần thông tin khác nhau để thiết kế báo biểu của mình, chẳng hạn như: Chữ, số, hình ảnh, đồ thị và các trang trí khác. Khi sử dụng Access chúng ta có thể tạo các báo biểu để: Tổ chức trình bày dữ liệu theo từng nhóm Tính toán cộng từng nhóm hoặc tổng cộng và các tính toán khác Bao hàm các mẫu biểu, báo biểu con, đồ thị trong báo biểu Trong một báo biểu, có thể gồm các thông tin sau:  Dữ liệu lấy từ các bảng (Table) hoặc các bảng truy vấn (Query)  Tạo ra từ những qui định tính toán đã định khi thiết kế báo biểu  Những hình ảnh, dòng tiêu đề thiết kế sẵn trong báo biểu Chúng ta có thể thiết kế Report dưới nhiều hình thức khác nhau, dựa vào kiểu trình bày người ta chia ra các loại như sau:  Columnar Report (Báo biểu dạng cột): Là kiểu báo biểu mà cách bố trí các trường (cột) của bảng dữ liệu kết xuất được bố trí theo dạng cột. Dạng báo biểu này thích hợp để lập : - Các Thẻ kho, Phiếu chứng từ, Phiếu Lý lịch cá nhân..v.v... Loại này thường ít được sử dụng vì chiếm nhiều giấy in Thẻ Kho STT Mã Số vật tư Đơn vị tính Nước SX Ngày ĐK

 Tabular Report (Báo biểu dạng bảng): Là kiểu báo biểu mà các bản ghi được bố trí thành một dòng ngang, các trường được xếp thẳng thành từng cột. Tiêu đề cột ở trên cùng. Dạng báo biểu này thích hợp để lập: - Các bảng kê, các bảng tập hợp số liệu.... Loại này thường được dùng một cách phổ biến trong quản lý Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

59

Bài giảng Kế toán máy II

Bảng Kê chứng từ SOCT

NGAY

TKNO

1

10/05/2002

2

12/05/2002

3

12/05/2002

CTNO

TKCO

CTCO

PSNO

PSCO

 Groups / Totals (Báo biểu kết nhóm / Tổng cộng) : Là loại báo biểu cần tạo ra các dòng số liệu được tính tổng theo nhóm dựa vào một tiêu thức nào đó, đồng thời có in cả các bản ghi chi tiết - Ví dụ : Tạo ra một bảng kê chi tiết cho biết được số tiền phải trả cho từng khách hàng Bảng Tổng hợp công nợ phải trả SOCT

NGAY

TKNO

CTNO

TKCO

CTCO

PSNO

PSCO

1

10/05/2002

152

CDTR

331

CTDQN

100

100

2

12/05/2002

152

P1LV

331

CTDQN

150

150

3

12/05/2002

152

P1LN

331

CTDQN

200

200

CTDQN

450

450

Tổng cộng 4

11/05/2002

152

331

XN387

140

140

5

12/05/2002

152

331

XN387

120

120

12

15/05/2002

152

331

XN387

200

200

XN387

460

460

Tổng cộng

 Summary (Báo biểu Tóm lược) : Là loại báo biểu cần tạo ra các dòng số liệu được tính tổng theo nhóm dựa vào một tiêu thức nào đó. - Ví dụ : Dựa vào Nhật ký chung trên bảng CTPS, tạo ra Report có số phát sinh bên nợ hoặc bên có cho từng tài khoản Bảng Tổng hợp phát sinh nợ Số TK

Phát Sinh Nợ

111

7665000

112

560000

152

4600000

141

150000

 Ngoài ra chúng ta còn có một số loại biểu mẫu khác như : Mailing Label (Báo biểu dạng nhãn), Chart (Đồ thị), Main Report & Sub Report (Báo biểu chính và phụ) 60

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

1. Phương pháp tạo và sử dụng Report tổng quát Chúng ta có thể tạo Report bằng nhiều cách khác nhau, sau đây là các bước cơ bản: Bước 1: Trong cửa sổ DataBase chọn lớp Report, bấm nút New (hoặc bấm nút New Object trên thanh công cụ DataBase, chọn Report ) xuất hiện hộp thoại New Report. Bước 2: Trong hộp thoại này chúng ta chọn phương pháp tạo Report tương tự như Form, và có thể hoặc không chọn nguồn dữ liệu cho Report trong khung Choose the Table or query where the object's data comes from Tùy theo phương pháp tạo Report mà chúng ta lựa Access sẽ bắt chúng ta theo các bước kế tiếp

Bước 3: Sau khi tạo xong Report chúng ta thực hiện lưu lại, và đặt tên cho Report bằng cách bấm Ctrl+S hoặc bấm vào nút Save Muốn xem hoặc in Report, chọn tên Report và bấm nút Preview, muốn thiết kế lại thì bấm nút Design, muốn tạo mới một Report bấm nút New

2. Phương pháp tạo Report bằng Report Wizard Tương tự như Form, để tạo Report chúng ta có thể có nhiều cách, để có thể tạo nhanh một report với mức độ thẩm mỹ tương đối thì chúng ta có thể dùng trình Report wizard của Access thực hiện. Để minh họa chúng ta lấy ví dụ: tạo Report lập Bảng tổng hợp Phát sinh nợ cho từng tài khoản, lấy dữ liệu gốc từ bảng T_CTPS, các bước tiến hành như sau: Bước 1: Trong cửa sổ DataBase chọn lớp Report, bấm nút New (hoặc bấm nút New Object trên thanh công cụ DataBase, chọn Report ) xuất hiện hộp thoại New Report. Bước 2: Trong hộp thoại này chúng ta chọn phương pháp tạo Report là Report Wizard, chọn nguồn dữ liệu cho Report trong khung Choose the Table or query where the object's data comes from, ở đây chúng ta chọn bảng CTPS và OK

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

61

Bài giảng Kế toán máy II

Bước 3: Xuất hiện hộp thoại Report Wizard

Trong hộp thoại này chúng ta tiến hành chọn các trường để đưa vào Report (nếu muốn đưa thêm các trường thuộc các bảng hoặc truy vấn khác chúng ta có thể bấm chọn mục Table/Query để chọn tiếp bảng khác) sau đó kích nút Next để sang bước tiếp. Bước 4: Xuất hiện hộp thoại Report Wizard tiếp theo Trong hộp thoại này nếu muốn kết nhóm theo một tiêu thức nào đó, chúng ta chọn và bấm nút > để chọn, trong trường hợp này vì chúng ta muốn in ra số phát sinh nợ cho từng tài khoản cho nên chúng ta chọn trường TKNO làm tiêu thức kết nhóm. Trong trường hợp muốn tính số PSNO cho tài khoản cấp 1 chúng ta bấm tiếp nút Groupings Option Xuất hiện tiếp hộp thoại sau và chúng ta chọn mục 3 Initial Letters Tùy thuộc vào kiểu dữ liệu của trường chọn làm tiêu thức kết nhóm mà hộp thoại trên có thể khác nhau (nếu chúng ta tạo các Report không có kết nhóm thì không cần bấm vào nút Groupings Option) sau đó bấm nút Next để sang bước tiếp Bước 5: Xuất hiện hộp thoại Chọn trường làm khóa sắp xếp

Nếu chúng ta muốn Report lúc in ra được sắp xếp theo một trường nào đó thì tiếp tục chọn các trường đó tại các mục 1, 2, 3, 4 Để tổ chức được phương pháp tổng hợp chúng ta bấm nút Summary Options... để chọn các tùy chọn thích hợp cho việc tổng kết (nếu một Report bình thường không có kết nhóm số liệu thì chúng ta không bấm vào nút này) sẽ xuất hiện hộp thoại trong hộp thoại này chỉ dùng khi tạo các báo biểu có kết nhóm, ví dụ như để tính phát sinh 62

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

nợ cho từng tài khoản thì trường sẽ được tính là PSNO, và vì tính tổng nên chúng ta chọn hàm SUM, trong mục Show nếu chọn :  Detail and Summary : thì trong báo biểu sẽ hiện cả các bản ghi chi tiết lẫn dòng tổng cộng cho từng Tài khoản ghi nợ  Summary only : thì báo biểu chỉ có hiện dòng tổng cộng phát sinh nợ của từng tài khoản  Calculate percent of total for sums : nếu chúng ta chọn ô kiểm tra này thì báo biểu sẽ có thêm dòng phần trăm của phát sinh nợ của từng tài khoản trên phát sinh nợ của tất cả các tài khoản Sau khi chọn xong những tùy chọn này OK để quay về hộp thoại chính và bấm Next để qua bước kế tiếp Bước 6: Xuất hiện hộp thoại

Trong hộp thoại này Access sẽ hỏi chúng ta cách bố trí dàn trang khi in báo biểu có một số tùy chọn sau:  Layout : chọn kiểu dàn trang, Access sẽ có nhiều kiểu để cho chúng ta chọn bằng cách ấn nút chọn  Orientation : chọn hướng in, nếu chọn Portrait là in theo hướng dọc, Landscape chọn in theo hướng in ngang của giấy Cuối cùng bấm nút Next để sang bước tiếp Bước 6: Xuất hiện hộp thoại

Bước này chúng ta chọn mẫu Report theo đề nghị của Access, và bấm Next xuất hiện hộp thoại đề nghị chúng ta đặt tên cho biểu mẫu, và bấm nút Finish để kết thúc Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

63

Bài giảng Kế toán máy II

3. Phương pháp tạo Report bằng cách tự thiết kế (Design View) Với phương pháp như trên thì thật là nhanh chóng, nhưng nhiều khi không đạt được tính thẩm mỹ và một số yêu cầu tính toán cao cấp hơn, muốn thế chúng ta có thể tạo nhanh một Report bằng Report Wizard sau đó chúng ta sẽ Design lại, hoặc chúng ta phải tự bắt tay vào thiết kế ngay từ đầu, để làm được một báo biểu tự thiết kế trước tiên chúng ta cần nắm bắt được một số yêu cầu :  Nguồn dữ liệu đưa vào báo biểu là từ đâu? nó có thể là một hoặc nhiều Table, nhưng thông thường là từ các Query, như vậy chúng ta nên tạo ra các Query trước và nên qui định mối quan hệ giữa chúng trước để đảm bảo tính toàn vẹn dữ liệu. Ví dụ: Để tạo ra báo biểu chứa số liệu Bảng cân đối tài khoản, thì có thể có một phương án làm như sau: - Từ bảng T_CTPS bạn hãy tạo ra 2 Query chứa Số phát sinh nợ từng tài khoản và Số phát sinh có từng tài khoản, trong đó bạn phải chọn 2 bảng CTPS, và TKSD để đưa vào Query - Từ bảng DUDK và bảng TKSD bạn tạo ra Query chứa Số dư đầu kỳ của từng tài khoản - Từ các Query Số phát sinh nợ từng tài khoản, Số phát sinh có từng tài khoản, Số dư đầu kỳ của từng tài khoản, tạo ra Query Bảng cân đối tài khoản - Cuối cùng tạo ra Report trên cơ sở Query Bảng cân đối tài khoản  Nắm vững được kết cấu thành phần của một Report, để dựa vào yêu cầu thiết kế Report mà thêm hoặc bớt các thành phần đó Sau đây là các nội dung cụ thể: 3.1 Các thành phần trên cửa sổ thiết kế Report Trong ví dụ này chúng tôi đưa ra màn hình thiết kế của Report Số phát sinh nợ của từng tài khoản (Report có liệt kê các chứng từ phát sinh của từng tài khoản phân thành từng loại, và cuối mỗi loại có dòng tổng cộng cho số phát sinh nợ của tài khoản đó, và cuối báo biểu có dòng tổng cộng số phát sinh nợ cho tất cả các tài khoản)

Phần đầu báo biểu Phần đầu một trang in Phần đầu nhóm TKNO Phần chi tiết các bản ghi Phần chân nhóm TKNO Phần chân một trang in Phần chân báo biểu

Sau đây là các thành phần trong cửa sổ thiết kế : 64

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Report Header: Là phần nội dung một lần trên đầu trang 1, thường dùng để in tiêu đề Logo công ty hoặc tiêu đề báo biểu  Page Header : Là phần nội dung thể hiện trên đầu mỗi trang, thường dùng để thiết kế tiêu đề của các bảng trên từng trang.  Group Header (Tên nhóm mang tên trường được chọn làm nhóm) : Là phần nội dung đầu tiên mà chúng ta muốn kết nhóm, nó sẽ xuất hiện trên đầu từng nhóm. Ví dụ: Trong ví dụ trên phần này là TKNO, phần nó sẽ xuất hiện là dòng chữ số hiệu tài khoản (nằm trong một Label), và TKNO (nằm trong một Text Box). Vùng này xuất hiện trong quá trình tạo Report bằng Wizard có chọn kết nhóm, hoặc tại cửa sổ thiết kế chúng ta chọn tên trường kết nhóm bằng lệnh View/ Sorting and Grouping . Chú ý: Trong một báo biểu chúng ta có thể kết nhóm nhiều trường phân cấp nhau theo thứ tự ưu tiên từ trên xuống.  Detail: Là phần chi tiết, thể hiện dữ liệu chính của Report, thường là các bản ghi, số lượng bản ghi càng nhiều thì vùng này tự động mở rộng ra và có thể sang trang khi chạy, nếu có kết nhóm thì trong vùng này các bản ghi sẽ thể hiện theo từng nhóm dựa vào tiêu thức trường mà chúng ta chọn làm kết nhóm.  Group Footer (Tên nhóm mang tên trường được chọn làm nhóm): Là phần được tạo ra ở chân của từng nhóm tương ứng, thường phần này chứa các số liệu tổng hợp như tính các giá trị tổng, trung bình, lớn nhất, nhỏ nhất của các trường số hoặc tổng số bản ghi trong một nhóm. Tại đây chúng ta có thể sử dụng các hàm số (Sum, Count, Max, Min...)  Page Footer: Là phần chân của mỗi trang, thường được thiết kế một Text Box nhằm đánh số trang trong đó có sử dụng các trường [Page] để ghi số trang, [Pages] để ghi tổng số trang, nhằm đánh số trang tự động trên báo biểu.  Report Footer: Là nội dung chỉ thể hiện ở cuối báo biểu (Nằm ở trang cuối), thường phần này chúng ta sẽ sử dụng các hàm tổng hợp số liệu để đưa ra các kết quả tổng hợp cho toàn báo biểu (ví dụ Tổng số phát sinh nợ của tất cả các tài khoản, tổng số chứng từ) 3.2 Qui trình thiết kế Report bằng Design View Bước 1 Trong cửa sổ DataBase chọn lớp Report, bấm nút New (hoặc bấm nút New Object trên thanh công cụ DataBase, chọn Report ) xuất hiện hộp thoại New Report. Bước 2 Trong hộp thoại này chúng ta chọn phương pháp tạo Report là Design View, chọn nguồn dữ liệu cho Report trong khung Choose the Table or query where the object's data comes from, ở đây chúng ta chọn bảng CTPS và OK xuất hiện một Report trắng. Chú ý: Nếu chúng ta không chọn nguồn dữ liệu cho Report ở bước này thì khi xuất hiện Report trắng chúng ta bấm vào nút Properties để xuất hiện bảng thuộc tính của báo biểu hiện hành, và chọn lớp Data, chọn mục Record Source và chọn nguồn dữ liệu (có thể là một Table, Query hoặc một câu lệnh SQL để lấy nguồn dữ liệu cho báo biểu bằng cách bấm vào nút ...) Thông thường màn hình thiết kế chỉ có Page Header, Detail, Page Footer, nếu muốn xuấtt hiện thêm Report Header, Report Footer chúng ta chọn lệnh View / Report Header/ Footer 

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

65

Bài giảng Kế toán máy II

Bước 3 Dùng hộp công cụ TollBox, chọn các điều khiển thích hợp để đặt vào các vùng trong cửa sổ thiết kế, sau đó căn chỉnh lại cho đẹp (sau mỗi lần căn chỉnh chúng ta nên bấm vào nút Print Preview để xem thử kết quả báo biểu đã thiết kế, và bấm vào nút Design để tiếp tục thiết kế ) Chú ý:  Trong trường hợp muốn tạo các báo biểu có kết nhóm như ví dụ trên chúng ta cần cho các Group Header, và Group Footer xuất hiện bằng cách chọn lệnh View/ Sorting and Grouping hoặc bấm nút Xuất hiện hộp thoại sau, trong đó chúng ta sẽ chỉ định các trường chọn làm biểu thức sắp xếp và kết nhóm tại mục Field/ Expression, và chọn chiều sắp xếp tăng hoặc giảm tại mục Sort Order

Chúng ta cần chú ý nếu muốn tạo trường kết nhóm và xuất hiện các tiêu đề nhóm thì phải chọn Group Header, và Group Footer trong phần thuộc tính nhóm (Group Properties) là Yes  Muốn tạo cột (trường) đánh số thứ tự tự động (1, 2, 3...) ứng vói Text Box chúng ta đặt thuộc tính Control Source là =1 và đặt thuộc tính Running Sum là Over Group (nếu đánh số từng dãy thứ tự hết nhóm này đến nhóm khác) và Over All (nếu đánh số 1 dãy qua các nhóm)

II/ Xây dựng hệ thống sổ sách và báo cáo kế toán Toàn bộ ứng dụng Kế toán của chúng ta có rất nhiều loại sổ sách, báo cáo khác nhau, trong phạm vị số tiết học chúng ta sẽ thực hiện các loại sổ sách chính, và tìm hiểu được các thuật toán để xây dựng được các công thức tính toán trong từng loại sổ, sau đó tự phát triển thành các loại sổ sách khác.

1. Report R_NKC Report này dùng để in mẫu NHẬT KÝ CHUNG, nguồn là bảng T_CTPS, dựa theo mẫu sau đây

66

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Hướng dẫn: Chúng ta có thể tiến hành theo các bước tuần tự sau đây: - Theo mẫu Nhật ký chung như trên có tất cả 8 trường, chúng ta có thể dùng Report Wizard, với nguồn là bảng T_CTPS, sau đó bạn chọn tất cả các trường của bảng này, nhưng không cần lấy 3 trường DONGIA, CTNO, CTCO, và chú ý thêm một số vấn đề trong quá trình dùng Wizard: • Chọn trường sắp xếp tăng dần là NGAY (ngày lập chứng từ) • Chọn kiểu bố cục báo cáo là Tabular, và hướng in giấy là Landscape ( in ngang) - Lưu và đặt tên cho báo cáo là R_NKC, sau đó dùng chế độ Design, để thiết kế lại Báo cáo - Chọn lệnh View/ Report Header Footer, để mở thêm 2 vùng Report Header và Report Footer lần lượt trong từng khu vực thiết kế chúng ta tiến hành các công việc sau: + Khu vực Report Header: chúng ta có thể hiệu chỉnh lại Label mang nội dung dòng chữ NHẬT KÝ CHUNG, và có thể tùy biến thêm vào các label để nhập tên Bộ chủ quản, tên doanh nghiệp..... + Khu vực Page Header: chúng ta nên hiệu chỉnh lại nội dung các label làm tiêu đề các cột của báo cáo bằng tiếng việt, phần này nếu trong quá trình thiết kế các bảng chúng ta đã nhập các Caption cho các trường bằng font Unicode, thì chúng ta sẽ khỏi phải hiệu chỉnh + Khu vực Detail: hiệu chỉnh lại độ rộng của các textbox chứa các trường cho phù hợp với kích thước báo cáo + Khu vực Report Footer: trong phần này chủ yếu là các thông tin tổng hợp, chúng ta tạo thêm 2 textbox để tính số phát sinh trong kỳ, trong textbox chứa số phát sinh nợ nhập công thức =SUM(PSNO) và trong textbox còn lại nhập =SUM(PSCO), và có thể tạo thêm một vài label để nhập thêm các thông tin: nơi và ngày tháng năm làm biểu mẫu, phần ký tên của các chức danh GIÁM ĐỐC, KẾ TOÁN, .... - Sau khi hoàn tất các công việc trên chúng ta dùng công cụ Line, để kẻ các đường viền tăng thêm phần thẩm mỹ cho báo cáo.

2. Report R_SC111 Trong phần này chúng ta sẽ thực hiện các sổ cái, ví dụ như sổ cái Tài khoản 111, theo mẫu sau đây Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

67

Bài giảng Kế toán máy II

Hướng dẫn: Bước1: bạn hãy tạo Query Q_SC111, với nguồn là bảng T_CTPS để lọc tất cả các chứng từ ghi nợ hoặc ghi có tài khoản 111, bạn có thể dùng lưới QBE để thiết kế, hoặc bạn dùng lệnh SQL sau đây: SELECT * FROM CTPS WHERE LEFT(TKNO,3)="111" OR LEFT(TKCO,3)="111" Bước 2: Thiết kế Report - Bạn chọn phương pháp thiết kế bằng Wizard, với nguồn là Query nói trên

- Bạn chỉ đưa vào 3 trường NGAY, SOCT, DGIAI (chọn xếp tăng dần theo trường NGAY) - Lưu lại Report trên với tên R_SC111 Bước 3: Hiệu chỉnh lại R_SC111 + Khu vực Report Header: - chúng ta tạo label nhập các nhãn SỔ CÁI TÀI KHOẢN - tạo label tiếp theo nhập Số hiệu : 111 và Tên Tài khoản: Tiền mặt - tạo một textbox đặt tên là NODAU, để nhập công thức lấy số dư đầu kỳ của tài khoản 68

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

111 ở bảng T_TKSD. =DLOOKUP(" NODK ", " T_TKSD ", " SOTK='111' ") + Khu vực Page Header - Tạo lần lượt các label để nhập các nội dung: Tài khoản đối ứng, Số tiền, Nợ, Có như hình bên dưới. + Khu vực Detail - Tạo 3 Textbox (xóa các Label đi kèm theo chúng, hoặc có thể copy các textbox bên cạnh), nhập lần lượt các công thức • Tài khoản đối ứng =IIF(LEFT(TKNO,3)="111",TKCO,TKNO) • Số tiền Nợ =IIF(LEFT(TKNO,3)="111", PSNO, 0) • Số tiền Có =IIF(LEFT(TKCO,3)="111", PSNO, 0) + Khu vực Page Footer - Chúng ta có thể sửa lại công thức số trang = "Trang" & Page + Khu vực Report Footer - Tạo 3 Textbox, đặt tên lần lượt CNO, CCO, NOCUOI và lập công thức lần lượt như sau: CNO =Sum( IIf( Left(TKNO,3)="111",PSNO,0) ) CCO =Sum( IIf( Left(TKCO,3)="111",PSCO,0) ) NOCUOI=NODAU + CNO - CCO

- Sau khi hoàn chỉnh tất cả các công thức trên, dùng công cụ Line kẻ các đường tạo khung Chú ý: Với phương pháp trên chúng ta muốn làm một sổ cái cho một tài khoản khác thì trình tự cũng như vậy, nếu thực hiện theo cách này thì hệ thống của chúng ta cần rất nhiều Report, cứ mỗi tài khoản phải tạo một report, có một phương pháp khác chỉ cần 1 mẫu report có truyền tham số tài khoản cần in vào từ 1 form, sau đây là qui trình thực hiện: Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

69

Bài giảng Kế toán máy II

1. Tạo truy vấn Q_SC có tham số để lọc các chứng từ ghi nợ hoặc có cho 1 tài khoản bất kỳ, bằng câu lệnh SQL sau: SELECT * FROM T_CTPS WHERE LEFT(TKNO,3)= Forms!F_SC!TK OR LEFT(TKCO,3)= Forms!F_SC!TK Trong đó TK là 1 textbox nằm trên một form có tên F_SC. 2. Tạo Report R_SC theo thiết kế tương tự như R_SC111, chỉ có khác là trên phần Report header, chúng ta tạo: - 1 textbox nhập công thức lấy số hiệu tài khoản = Forms!F_SC!TK - 1 textbox nhập công thức tên tài khoản = DLookUp(" TENTK "," T_TKSD "," SOTK=Forms!F_SC!TK") - 1 textbox nhập công thức số dư nợ đầu kỳ: =DLookUp("NODK","TKSD","SOTK=Forms!F_SC!TK") - 1 textbox nhập công thức số dư có đầu kỳ: =DLookUp("CODK","TKSD","SOTK=Forms!F_SC!TK") Và phần Report Footer, chúng ta lại tạo thêm 2 textbox: - 1 textbox nhập công thức số dư nợ cuối kỳ: =IIf(([nodau]-[codau]+[cno]-[cco])>=0,([nodau]-[codau]+[cno]-[cco]),0) - 1 textbox nhập công thức số dư có cuối kỳ: =IIf(([nodau]-[codau]+[cno]-[cco])<0, ABS([nodau]-[codau]+[cno]-[cco]),0) Trong đó: nodau là tên của textbox chứa số dư nợ đầu kỳ, codau là tên của textbox chứa số dư có đầu kỳ, cno là tên của textbox chứa số phát sinh nợ, cco là tên của textbox chứa số phát sinh có. 3. tạo form F_SC theo mẫu

đặt tên cho textbox Mã tài khoản là TK, và nút In sổ cái khi bấm sẽ gọi R_SC để thực hiện, và nó truyền tham số tài khoản vào cho Q_SC và từ đó truyền qua cho R_SC.

3. Report R_SOQUITM Việc thiết kế sổ quĩ tiền mặt hoàn toàn giống với việc thiết kế sổ cái tài khoản 111, chỉ khác có thêm cột Tồn, theo mẫu sau:

70

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Các bước tiến hành giống như khi chúng ta xây dựng sổ cái tài khoản 111, chỉ khác thiết kế trong phần Page header chúng ta sửa tiêu đề phần số tiền thành 3 cột: THU, CHI, TỒN, và trong phần Detail chúng ta sẽ tiến hành như sau:

CHI

THU

- Copy 2 textbox, số tiền thu và chi xuống bên dưới thành 2 textbox mới, với 2 textbox mới này chúng ta tiến hành 3 công việc sau: • Đặt tên lần lượt cho 2 textbox là THU và CHI • Đặt thuộc tính cộng dồn cho 2 textbox, bằng cách bấm chuột phải vào từng textbox, chọn lệnh Properties/ Data / Running Sum: Over all • đặt thuộc tính ẩn cho chúng, bằng cáchbấm chuột phải vào từng textbox, chọn lệnh Properties/ Format / Visible: No - Tạo textbox mới tính phần tồn bằng công thức = NODAU + THU - CHI - Xem thử lại kết quả, sau đó có thể xếp chồng 2 ô THU và CHI lên trên các textbox cũ, và tiến hành viền khung cho báo cáo.

4. Report R_152CS Trong phần này chúng ta sẽ học cách thiết kế các sổ kế toán chi tiết như: Sổ chi tiết hàng tồn kho, sổ chi tiết công nợ, sổ chi tiết chi phí.v.v..., cụ thể ở đây chúng ta sẽ thực hiện Sổ chi tiết nguyên vật liệu (có mã CS).

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

71

Bài giảng Kế toán máy II

Phân tích: Để thực hiện được sổ này chúng ta cần phải có các thông tin sau: 1. Lọc được các chứng từ xuất nhập kho nguyên vật liệu có mã CS 2. Tìm được lượng tồn kho đầu kỳ, và trị giá tồn đầu kỳ của loại vật liệu này Để giải quyết được vấn đề 1, chúng ta sẽ dùng công cụ truy vấn để lọc các chứng từ thỏa điều kiện trên, vấn đề thứ 2 chúng ta sẽ lấy thông tin chi tiết trên bảng T_DMUC, cụ thể các bước tiến hành như sau: Hướng dẫn: Bước1: bạn hãy tạo Query Q_152CS, với nguồn là bảng T_CTPS để lọc tất cả các chứng từ ghi nợ hoặc ghi có tài khoản 152, và mã đối tượng ghi nợ hoặc có là CS, bạn có thể dùng lưới QBE để thiết kế, hoặc bạn dùng lệnh SQL sau đây: SELECT * FROM T_CTPS WHERE TKNO="152" AND CTNO="CS" OR TKCO="152" AND CTCO="CS" Bước 2: Thiết kế Report - Bạn chọn phương pháp thiết kế bằng Wizard, với nguồn là Query nói trên, chỉ đưa vào khung thiết kế 3 trường SOCT, NGAY, DGIAI và: + Chọn sắp xếp tăng dần theo cột NGAY + Chọn kiểu bố cục là Tabular + Chọn hướng in ngang cho giấy (Landscape) Bước 3: Thiết kế lại Report, theo mẫu sau:

72

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

+ Khu vực Report header - Chúng ta thiết kế thêm các Label như hình trên, đồng thời tạo thêm 2 textbox đặt tên lần lượt là: LDAU, TDAU và nhập lần lượt nhập các công thức: =DLookUp("[DUNO]","[DMUC]","MATK='152' AND MADT='CS'") =DLookUp("[SOLG]","[DMUC]","MATK='152' AND MADT='CS'") + Khu vực Page header - Chúng ta thiết kế thêm các Label như hình trên + Khu vực Detail - Tạo các Textbox được đánh số lần lượt từ 0 đên 6, nhập lần lượt các công thức: • Ô 0 mang nội dung tài khoản đối ứng =IIf([TKNO]="152",[TKCO],[TKNO]) • Ô 1 Số lượng nhập =IIf([TKNO]="152",[SOLG],0) • Ô 2 Trị giá nhập =IIf([TKNO]="152",[PSNO],0) • Ô 3 Số lượng xuất =IIf([TKCO]="152",[SOLG],0) • Ô 4 Trị giá xuất =IIf([TKCO]="152",[PSNO],0) Sau đó sao chép bốn ô 1, 2, 3, 4 thành 1', 2', 3', 4', và đặt tên lần lượt là SLN, STN, SLX, STX, đặt thuộc tính ẩn và cộng dồn cho chúng • Ô 5 Số lượng tồn =[LDAU]+[SLN]-[SLX] • Ô 6 Trị giá tồn =[TDAU]+[STN]-[STX] + Khu vực Report footer - Chúng ta thiết kế thêm các Label như hình trên, đồng thời tạo thêm 6 textbox đánh số lần lượt từ 7 đên 12, lần lượt có các công thức sau: Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

73

Bài giảng Kế toán máy II

• Ô 7 Tổng lượng nhập (tên L1) =Sum(IIf([TKNO]="152",[SOLG],0)) • Ô 8 Tổng trị giá nhập (tên T1) =Sum(IIf([TKNO]="152",[PSNO],0)) • Ô 9 Tổng lượng xuất (tên L2) =Sum(IIf([TKCO]="152",[SOLG],0)) • Ô 10 Tổng trị giá xuất (tên T2) =Sum(IIf([TKCO]="152",[PSNO],0)) • Ô 11 Lượng tồn cuối =[LDAU]+[L1]-[L2] • Ô 12 Trị giá tồn cuối =[TDAU]+[T1]-[T2]

5. Report R_1561 Tương tự như việc làm sổ cái, chúng ta sẽ có 1 cách khác để chỉ cần thiết kế 1 mẫu report duy nhất để in các sổ chi tiết hàng tồn, giả sử ở đây chúng ta muốn in các sổ chi tiết hàng hóa, cách thực hiện như sau: 1. Tạo truy vấn Q_CT1561 có tham số để lọc các chứng từ nhập xuất kho cho 1 loại hàng bất kỳ, bằng câu lệnh SQL sau: SELECT * FROM CTPS WHERE (TKNO="1561" and CTNO=Forms!F_inHH! HH) OR (TKCO="1561" and CTCO=Forms!F_inHH!HH) ORDER BY NGAY Trong đó HH là 1 textbox nằm trên một form có tên F_inHH. 2. Tạo Report R_CT1561 theo thiết kế tương tự như R_152CS, chỉ có khác là trên phần Report header, chúng ta tạo: - 1 textbox nhập công thức lấy mã hàng = Forms!F_inHH!HH - 1 textbox nhập công thức tên hàng = DLookUp("[tendt]","[T_DMUC]","MATK='1561' AND MADT=Forms!F_inHH! HH") - 1 textbox nhập công thức số lượng tồn đầu kỳ: =DLookUp("[SOLG]","[DMUC]","MATK='1561' AND MADT=Forms!F_inHH! HH") - 1 textbox nhập công thức trị giá tồn đầu kỳ: =DLookUp("[DUNO]","[DMUC]","MATK='1561' AND MADT=Forms!F_inHH! HH") Trong các phần còn lại, cách thực hiện tương tự như R_152CS, chỉ khác trong khác công thức còn lại chúng ta thay thế tài khoản 152 bằng tài khoản 1561, và các mã đối tượng thay trực tiếp bằng tham số Forms!F_inHH!HH. 3. Tạo Form F_inHH, chúng ta tạo một form trắng và thêm vào 1 textbox có tên HH để nhận mã hàng nhập vào, và tạo nút in report trên.

6. Report R_TH331 Các report trên thực hiện các sổ chi tiết, mẫu report này giúp chúng ta thực hiện các sổ kế toán tổng hợp công nợ, giả sử chúng ta cần tạo report tổng hợp công nợ phải trả. Qui trình được thực hiện như sau: 74

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Bước1: Chúng ta tạo lần lượt các truy vấn sau 1. Q_NO331 với mã lệnh SQL SELECT CTNO, SUM(PSNO) AS TPSNO FROM T_CTPS WHERE TKNO="331" GROUP BY CTNO ORDER BY CTNO 2. Q_CO331 SELECT CTCO, SUM(PSNO) AS TPSCO FROM T_CTPS WHERE TKCO="331" GROUP BY CTCO ORDER BY CTCO 3. Q_DK331 SELECT MADT, TENDT, DUNO, DUCO FROM T_DMUC WHERE MATK="331" 4. Q_TH331 Để tạo truy vấn này chúng ta sử dụng nguồn là 3 truy vấn trên, tạo mối liên kết giữa 3 bảng này như sau: MADT(T_DMUC) với 2 trường CTNO (Q_NO331) và CTCO (Q_CO331). Sau đó đưa tất cả các trường của 3 bảng trên vào lưới, đồng thời tạo thêm 4 trường tính toán cho phát sinh nợ và phát sinh có, số dư cuối kỳ : PSNO1: IIf([TPSNO] Is Null,0,[TPSNO]) PSCO1: IIf([TPSCO] Is Null,0,[TPSCO]) DUNOC: IIf(([DUNO]-[DUCO]+[PSNO1]-[PSCO1])>=0,[DUNO]-[DUCO]+ [PSNO1]-[PSCO1],0) DUCOC: IIf(([DUNO]-[DUCO]+[PSNO1]-[PSCO1])<0,Abs([DUNO]-[DUCO]+ [PSNO1]-[PSCO1]),0) Bước 2: Trên cơ sở truy vấn Q_TH331 làm nguồn chúng ta tạo ra Report R_TH331, theo mẫu sau:

7. Report R_CDPS Mục đích của report này là in bảng cân đối số phát sinh Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

75

Bài giảng Kế toán máy II

Để thực hiện mẫu này chúng ta phải thực hiện các bước sau: Bước1: Tạo Query chứa toàn bộ số liệu của bảng cân đối số phát sinh, để làm Q này chúng ta phải tạo các Q trung gian như sau: 1) Q_PSNO (Tính số phát sinh Nợ cho từng tài khoản), nguồn là bảng CTPS, dùng chế độ Design view để tạo bạn có thể dùng lưới QBE theo mẫu dưới.

Hoặc có thể dùng câu SQL sau để tạo: SELECT Left([tkno],3) AS TKNO1, Sum(PSNO) AS TSNO FROM CTPS GROUP BY Left([tkno],3) 2) Q_PSCO (Tính số phát sinh có cho từng tài khoản), nguồn là bảng CTPS tương tự như 1, có thể dùng câu SQL sau: SELECT Left([tkco],3) AS TKNO1, Sum(PSCO) AS TSCO FROM CTPS GROUP BY Left([tkco],3) 3) Q_DUDK1 (Tính số dư đầu kỳ cho các tài khoản cấp 1), với nguồn là bảng TKSD, theo mẫu QBE sau, bạn chỉ cần đưa vào lưới các trường sau: SOTK,TENTK,NODK,CODK,CAPTK trong phần Criteria của trường CAPTK nhập 1 (lọc tất cả các tài khoản cấp 1). Tắt dấu kiểm tra ở mục Show của trường CAPTK để nó không hiện ra trên kết quả của Query này. Nhiệm vụ của Query này là tạo ra bảng số dư đầu kỳ cho tất cả các tài khoản cấp 1 mà chúng ta đã nhập vào 76

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Như vậy chúng ta đã có 3 query: Q_PSNO, Q_PSCO, và Q_DUDK1 làm cơ sở để lập Q_CDPS1 (Chứa bảng cân đối số phát sinh) cách làm như sau: - Dùng chế độ Design View để tạo 1 Query mới lưu lại với tên Q_CDPS1 , bạn đưa vào lưới thiết kế cả 3 Query trên, theo mẫu:

Khi đưa cả 3 Query trên vào bạn phải thiết lập quan hệ của chúng thông qua các cặp trường: SOTK nối với TKNO1, và SOTK nối với TKCO1, sau đó phải thiết lập lại kiểu kết nối để xuất hiện 2 mủi tên như hình trên. - Đưa 4 trường SOTK, TENTK, NODK, CODK của Q_DUDK1 vào lưới - Tạo lần lượt các trường ảo có công thức thiết lập như sau: NOPS: IIf([TSNO] Is Null,0,[TSNO]) COPS: IIf([TSCO] Is Null,0,[TSCO]) NOCK: IIf(([NODK]-[CODK]+[NOPS]-[COPS])>0,[NODK]-[CODK]+[NOPS][COPS],0) COCK: IIf(([NODK]-[CODK]+[NOPS]-[COPS])<0,Abs([NODK]-[CODK]+ [NOPS]-[COPS]),0) Bước 2: Sau khi đã có được Q_CDPS1, bạn hãy lấy nó làm nguồn và mở lớp Report để tạo Report R_CDPS theo mẫu trên

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

77

Bài giảng Kế toán máy II

Chương V . XÂY DỰNG GIAO DIỆN CHO CSDL KẾ TOÁN I/ Các vấn đề cơ bản về thiết kế giao diện Một vấn đề không kém phần quan trọng để hoàn thành sản phẩm, đó là thiết kế giao diện cho sản phẩm, giao diện chính là hệ thống menu, người dùng có thể gián tiếp giao tiếp với hệ thống qua các menu, có thể truy cập vào các table, form, report... qua cac menu này, mục đích chính của chương này là hướng dẫn chúng ta xây dựng hệ menu hoàn chỉnh cho ứng dụng. Hiện nay có thể có 2 kiểu menu thường được áp dụng: • Menu bar hệ thống (trình đơn thanh ngang hệ thống) • Menu Switchboard ( trình đơn dạng bàn cờ)

1. Phương pháp tạo menu 1.1 Menu bar hệ thống. - Một menu bar hệ thống theo thiết kế chuẩn của tất cả các phần mềm với giao diện trên windows bao gồm:  Một menu bar (trình đơn thanh ngang), trong đó có nhiều menu pad (mục chọn ngang).  Khi bấm chọn một menu pad, sẽ xuất hiện một menu popup (trình đơn đổ xuống)  Trong một menu popup có nhiều menu option (mục chọn dọc) - Ví dụ: Phần mềm microsoft access, trình đơn thanh ngang có nhiều mục chọn ngang như File Edit Insert View Tools Window Help Khi chúng ta chọn một mục chọn ngang, chẳng hạn mục File sẽ xuất hiện một menu popup đổ xuống, trong đó có nhiều mục chọn dọc, mỗi mục chọn dọc chính là một lệnh, ví dụ New Open Close Save Save as... - Có nhiều cách để tạo trình đơn thanh ngang, sau đây chúng tôi trình bày 2 cách cơ bản: CÁCH 1  Chọn View / Toolbars / Customize để hiển thị hộp thoại sau đây, chọn lớp Toolbars:

78

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

 Chọn nút New..., nhập tên của thanh trình đơn tự tạo của chúng ta (ví dụ Main

Menu)  Trong hộp danh sách các toolbars, chọn tên của menu vừa tạo (Main menu), và chọn nút Properties để hiển thị hộp thoại sau:

 Trong hộp danh sách của Type chọn Menu Bar, chọn các thuộc tính khác có thể - Allow Customizing cho phép tùy biến - Allow Resizing cho phép hiệu chỉnh kích thước - Allow Showing/ Hiding cho phép hiển ẩn - Allow Moving cho phép di chuyển sau đó chọn nút Close  Thêm các Submenu (menu pad) vào thanh trình đơn ♦ Nhắp chọn lớp Command, trong khung Categories, chọn New menu ♦ Kéo thả New Menu vào thanh trình đơn ♦ Nhắp chuột phải để nhập tên và các thuộc tính cho new menu trong hộp thoại Properties của nó.  Thêm các lệnh thực hiện vào thanh trình đơn. ♦ Nhắp chọn lớp Commands ♦ Kéo thả lệnh thích hợp vào vị trí thích hợp trên thanh trình đơn.

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

79

Bài giảng Kế toán máy II

 Chúng ta có thể định dạng lại cho thanh trình đơn và từng mục chọn trong hệ thống bằng cách bấm chuột phải vào từng mục chọn và định dạng lại trong trình đơn ngắn (shortcut menu) sau. CÁCH 2 - Phương pháp này tổng quát thực hiện như sau: • Dùng Macro để tạo các macro xây dựng các menu bar và menu popup. • Tạo Form trắng gắn macro tạo menu bar vào form này, mỗi khi form này được khởi động thì hệ thống menu sẽ nạp vào. - Cụ thể chúng ta có các bước sau. • Bước 1: Tạo các macro xây dựng các menu popup trước • Mỗi menu popup chúng ta phải tạo một macro, bằng cách mở lớp Macros chọn New mở cửa sổ thiết kế macro, chọn thêm lệnh View / Macro Name để mở cột Macro Name. + Cột Macro Name chúng ta ghi tên mục chọn dọc + Cột Action tùy theo hành động mà chúng ta chọn thông thường là Open Form, Open Report (mở form, mở report) + Khai báo thêm một số đối số cho hành động tương ứng trong Action Arguments • Để tạo Menu bar chúng ta cũng tạo 1 macro, ứng với mỗi menu popup chúng ta chọn Action là Add Menu, và khai báo thêm. + Menu name khai báo tên mục chọn ngang + Menu macro name khai báo tên macro tạo ra menu popup tương ứng khi bấm vào mục chọn ngang đã khai báo. • Bước 2: Tạo 1 Form trắng khai báo trong Properties của form này tên macro tạo menu bar vào mục Menu bar 1.2 Menu bar Switchboard - Đây là kiểu trình đơn của Access thường dùng, có 2 cách để tạo: cách thứ nhất chúng ta tạo các form trắng và các điều khiển Command button để tạo các nút điều khiển việc đóng mở các form, report; cách thứ hai chúng tôi sẽ trình bày dưới đây: - Để tạo 1 Switchboard tự động theo hướng dẫn của Access, chúng ta thực hiện các bước sau đây: 80

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II



Bấm Tools / DatabaseUtilities / Switchboard Manager, nếu chưa có Switchboard nào, Access sẽ hỏi bạn có muốn tạo ra một cái mới hay không? Chọn Yes để hiển thị hộp thoại sau:

Access tạo ra 1 Switchboard mặc định có tên là Main Switchboard và nó sẽ được tạo ra theo một biểu mẫu mặc định. Có thể tạo nhiều trang cho Switchboard, nhưng mỗi thời điểm chỉ có 1 trang được coi là mặc định (thường là Main Switchboard ), khi mở form có tên là Switchboard. Trang mặc định không cho phép xóa.  Bấm Edit để chỉnh sửa hoặc tạo mới 1 Switchboard

 Chọn New trong hộp thoại Edit để thêm các mục mới vào.

Trong hộp thoại Edit Switchboard Item, điền tên cho một mục trong màn hình menu, lệnh thực hiện và các tham số cần thiết, chọn OK để đóng hộp thoại.  Tương tự làm các mục còn lại trên Switchboard.  Chọn Close để trở lại màn hình CSDL. Access đã tạo ra 2 đối tượng: một bảng để chứa các mục của Menu, và một form để hiển thị menu. 

2. Thực hiện tự động khi mở CSDL - Để cho access tự động mở menu khi khởi động csdl, chúng ta thực hiện các bước sau:  Chọn Tools / Startup để hiện hộp thoại sau Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

81

Bài giảng Kế toán máy II

   

Chọn tên form cần mở tự động trong hộp danh sách của vùng Display form. Chọn tên thanh trình đơn cần thể hiện trong hộp danh sách vùng menu bar Thay đổi các mục còn lại, tùy chọn Bấm OK đóng hộp thoại

3. Thiết lập mật khẩu cho CSDL Để đảm bảo an toàn cho hệ thống chúng ta nên đặt mật khẩu đăng nhập mỗi khi mở csdl, các bước như sau.  Mở hộp thoại Open, chọn cơ sở dữ liệu muốn mở trong hộp thoại, bấm vào mủi

tên bên phải nút Open, chọn Open Exclusive (mở độc quyền)  Chọn lệnh Tools / Security / Set Database Password... để mở hộp thoại nhập mật khẩu

II/ Thiết kế trình đơn cho CSDL kế toán. Trong phần này chúng tôi trình bày một ví dụ cơ bản về trình đơn cho csdl kế toán. Yêu cầu: - Thiết kế hệ thống menu bar bao gồm các mục chọn ngang sau: Hệ thống Kế toán Sổ sách Báo cáo Thoát - Khi chọn vào mục Hệ thống thì 1 menu popup xuất hiện có các mục chọn dọc sau: Tài khoản sử dụng, Danh mục chi tiết, Cập nhật số dư - Khi chọn vào mục Kế Toán thì 1 menu popup xuất hiện có các mục chọn dọc như sau: 82

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

Phiếu Thu, Phiếu Chi, Báo Nợ, Báo Có, Phiếu Nhập, Phiếu Xuất, Chứng từ khác - Khi chọn vào mục Sổ Sách thì menu popup có các mục chọn dọc sau: Sổ Quĩ Tiền mặt, Sổ theo dõi tiền gửi, Sổ Cái 111, Sổ cái 112 - Khi chọn vào mục Báo Cáo thì menu popup có các mục chọn dọc sau xuất hiện: Bảng Cấn đối số phát sinh, Nhật ký chung - Khi chọn mục Thoát sẽ có các mục chọn dọc: Về Access, Về Windows Hướng dẫn: 1) Thiết kế các menu popup 1.1) Tạo macro Menu_ht tạo các mục chọn dọc đổ xuống khi bấm mục Hệ thống Macro name

Action

Arguments

Tài khoản sử dụng OpenForm

Danh mục chi tiết Cập nhật số dư đầu kỳ

OpenForm

OpenForm

Form name: F_DMTK View: Form Window mode: Normal Form name: F_DMUC View: Form Window mode: Normal Form name: F_DUDK View: Form Window mode: Normal

1.2) Tạo Macro Menu_kt Macro name

Action

Phiếu Thu OpenForm OpenForm

Phiếu Chi Báo Nợ

Arguments Form name: F_PHIEUTHU View: Form Window mode: Normal Form name: F_PHIEUCHI View: Form Window mode: Normal

OpenForm

Form name: F_BAONO View: Form Window mode: Normal

OpenForm

Form name: F_BAOCO View: Form Window mode: Normal

OpenForm

Form name: F_NHAPNVL View: Form Window mode: Normal

Báo Có

Phiếu Nhập

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

83

Bài giảng Kế toán máy II

Phiếu Xuất OpenForm

Form name: F_XUATNVL View: Form Window mode: Normal

OpenForm

Form name: F_KHAC View: Form Window mode: Normal

Chứng từ khác

1.3) Tạo Macro Menu_Sosach Macro name

Action

Arguments

OpenReport

Report name: R_SOQUI View: PrintPreview

OpenReport

Report name: R_SOTG View: PrintPreview

OpenReport

Report name: R_SC111 View: PrintPreview

OpenReport

Report name: R_SC112 View: PrintPreview

Sổ quĩ Tiền mặt Sổ Theo dõi tiền gửi Sổ cái 111 Sổ Cái 112

1.4) Tạo Macro Menu_baocao Macro name

Action

Arguments

OpenReport

Report name: R_NHATKY CHUNG View: PrintPreview

OpenReport

Report name: R_CDPS1 View: PrintPreview

Nhật ký chung Bảng cân đối số phát sinh

1.5) Tạo Macro Menu_Thoat Macro name

Action

Arguments

Về Access Close Về Windows Quit 2) Thiết kế Menu Bar chính, mở lớp Macro, tạo macro mới đặt tên Menumain có nội dung sau: Macro name 84

Action

Arguments

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

AddMenu

Menu name: Hệ thống Menu macro name: Menu_ht

AddMenu

Menu name: Kế Toán Menu macro name: Menu_kt

AddMenu

Menu name: Sổ Sách Menu macro name: Menu_sosach

AddMenu

Menu name: Báo cáo Tổng hợp Menu macro name: Menu_baocao

AddMenu

Menu name: Thoát Menu macro name: Menu_Thoat

3) Tạo Form Giao diện chính F_CHINH, với Form này bạn chỉ cần tạo 1 form trắng và gắn thuộc tính Menu Bar : Menumain

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

85

Bài giảng Kế toán máy II

MỤC LỤC Chương I . GIỚI THIỆU MICROSOFT ACCESS VÀ CSDL KẾ TOÁN..........................1 I/ Các vấn đề cơ bản về cơ sở dữ liệu Access.........................................................................1 1. Khởi động và thoát khỏi Access.....................................................................................1 2. Khái niệm CSDL Access................................................................................................2 3. Bảng (Table)...................................................................................................................3 II/ Cơ Sở dữ liệu Kế toán......................................................................................................11 1. Tổng quan về một chương trình kế toán trên máy tính.................................................11 2. Chương trình kế toán bằng Access...............................................................................11 3. Tổ chức cơ sở dữ liệu Kế toán......................................................................................13 Chương II . CÔNG CỤ TRUY VẤN CSDL KẾ TOÁN......................................................17 I/ Phương pháp thiết kế truy vấn bằng Lưới QBE...............................................................17 1. Truy vấn tuyển chọn ( Select Query )...........................................................................18 2. Truy vấn tuyển chọn có tham số ( Parameter Query )..................................................22 3.Truy vấn tuyển chọn có trường tính toán ......................................................................22 4. Truy vấn tuyển chọn thống kê số liệu ..........................................................................23 5.Truy vấn tham chiếu chéo (Crosstab Query) ................................................................24 6.Truy vấn hành động (Action Query) .............................................................................25 7. Truy vấn trên nhiều Table, Query.................................................................................27 II/ Phương pháp thiết kế truy vấn bằng Lệnh SQL ..........................................................29 1. Cú pháp của câu lệnh SELECT.....................................................................................29 2. Ví dụ minh họa..............................................................................................................30 Chương III. XÂY DỰNG BIỂU MẪU CHO CSDL KẾ TOÁN.........................................32 I/ Các vấn đề cơ bản về thiết kế Form..................................................................................32 1. Thiết kế Form................................................................................................................32 2. Các Tùy biến biểu mẫu.................................................................................................46 II/ Xây dựng hệ thống biểu mẫu cho ứng dụng kế toán........................................................47 1. Form F_PHIEUTHU.....................................................................................................47 2. Form F_PHIEUCHI......................................................................................................51 3. Form F_BNOG.............................................................................................................51 4. Form F_BCOG..............................................................................................................52 5. Các form F_BCOV, F_BNOV.....................................................................................52 6. Form F_NHAP1............................................................................................................52 7. Form F_XUAT1............................................................................................................56 8. Form F_NHAP2............................................................................................................57 9. Form F_XUAT2............................................................................................................57 10. Form F_DOANHTHU................................................................................................57 Chương IV . SỔ SÁCH VÀ BÁO CÁO KẾ TOÁN.............................................................59 I/ Các vấn đề cơ bản về thiết kế Report................................................................................59 1. Phương pháp tạo và sử dụng Report tổng quát.............................................................61 2. Phương pháp tạo Report bằng Report Wizard..............................................................61 3. Phương pháp tạo Report bằng cách tự thiết kế (Design View).....................................64 II/ Xây dựng hệ thống sổ sách và báo cáo kế toán...............................................................66 1. Report R_NKC..............................................................................................................66 2. Report R_SC111...........................................................................................................67 3. Report R_SOQUITM....................................................................................................70 86

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

Bài giảng Kế toán máy II

4. Report R_152CS...........................................................................................................71 5. Report R_1561..............................................................................................................74 6. Report R_TH331...........................................................................................................74 7. Report R_CDPS............................................................................................................75 Chương V . XÂY DỰNG GIAO DIỆN CHO CSDL KẾ TOÁN........................................78 I/ Các vấn đề cơ bản về thiết kế giao diện............................................................................78 1. Phương pháp tạo menu..................................................................................................78 2. Thực hiện tự động khi mở CSDL..................................................................................81 3. Thiết lập mật khẩu cho CSDL.......................................................................................82 II/ Thiết kế trình đơn cho CSDL kế toán...............................................................................82

Trung tâm Phát triển Phần mềm - Đại học Đà Nẵng

87

Related Documents

Ke Toan May 1_linhtq
July 2020 9
Ke Toan May 2_linhtq
July 2020 8
Ke Toan
November 2019 21
Ly Thuyet Ke Toan
May 2020 10
Chuan Muc Ke Toan
June 2020 9
Tai Chinh Ke Toan
October 2019 25