Thứ Năm, 31 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - In cấu trúc bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


In cấu trúc bảng


Việc in thông tin cấu trúc và định nghĩa bảng thì phức tạp hơn một tí. Đầu tiên, hãy chắc chắn là bảng mà bạn muốn in cấu trúc đã đóng. Kích tab lệnh DATABASE TOOLS rồi kích Database Documenter trong nhóm Analyze. Hộp thoại Documentor xuất hiện. Đánh dấu ô ứng với tên đối tượng, chẳng hạn tblCustomers. Kích OK. Cấu trúc bảng xuất hiện trong cửa sổ xem trước với tên tab là Object Definition. Kích nút Print trong nhóm Print thuộc tab lệnh ngữ cảnh Print Preview, rồi thực hiện các chọn lựa trong hộp thoại Print trước khi kích nút OK để in cấu trúc. Nhớ là cấu trúc thường chiếm nhiều trang. Bản in giấy về định nghĩa bảng là một tài liệu hệ thống hữu ích.

Phát triển HTTT kế toán bằng MS Access - Chương 1 - In bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


In bảng


Để in một bảng cơ sở dữ liệu, hãy chọn bảng trong Navigation Pane (không cần mở nó lên) hay hiển thị bảng ở góc nhìn Datasheet, kích FILE tab, kích Print rồi kích nút Print ở khung bên phải. Hộp thoại Print quen thuộc sẽ xuất hiện. Bạn có thể chọn in tất cả các trang hay một số trang. Bạn chọn một số trang bằng cách nhập số trang vào ô From To. Một cách khác, bạn có thể kích nút radio Selected Record(s) để chỉ  in (những) bản ghi nào bạn đã đánh dấu trong bảng. Hãy thay đổi giá trị trong ô Number of Copies để in nhiều hơn một bản. Bạn có thể kích nút Setup trên hộp thoại Print để quy  định lề và có in đầu đề hay không. Khi đã sẵn sàng in, kích nút OK. Nếu không, kích nút Cancel để hủy lệnh in.

Bảng in giấy được tạo bằng cách dùng định dạng mặc định. Nội dung bảng được in trong các ô lưới. Thông thường, ngày hiện hành xuất hiện ở góc phải trên của báo cáo, và tên bảng xuất hiện bên trên và ở giữa. Bên dưới đáy và ở giữa là số trang. Access sẽ in trang phụ khi các cột bảng rộng hơn độ rộng trang giấy.

Bảng in giấy có đủ thông tin nhưng không đẹp. Access cung cấp các công cụ tạo báo cáo hấp dẫn, có chất lượng cao với kiểu chữ phong phú và những đặc trưng chẳng hạn gạch dưới hay in đậm. Sau này trong chương bạn sẽ tạo và dùng báo cáo Access. Ta dễ dàng nhanh chóng phát sinh bảng in giấy, nhờ đó cho phép dễ dàng kiểm tra giá trị ở các cột khác nhau.

Thứ Tư, 30 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Sắp xếp và lọc các dòng trong bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Sắp xếp và lọc các dòng trong bảng


Với những bảng nhỏ, ta thường dễ dàng duyệt bảng để định vị một hay một nhóm bản ghi cụ thể khi bảng đã được sắp xếp. Nhưng sẽ hơi khó khi duyệt bảng hóa đơn invoices, dù chỉ nhỏ như thế, để nhanh chóng xác định nhà vận chuyển nào đã dùng chẳng hạn vào ngày 15/03. Bạn có thể hình dung sẽ khó thế nào nếu tìm các lần giao hàng theo nhà vận chuyển ở thời điểm cụ thể trên bảng hóa đơn invoices lớn hơn nhiều với hàng ngàn bản ghi, đặc biệt khi các bản ghi không được sắp theo nhà vận chuyển hay thời điểm. Bảng tblInvoices được sắp theo thứ tự cột khóa chính, InvoiceID. Thứ tự này không ích lợi cho việc tìm bằng tay.

Theo mặc định, bảng được tổ chức tự động trên trường khóa chính. Chẳng hạn, bảng hóa đơn invoices được tổ chức trên trường InvoiceID vì trường đó được chỉ định là trường khóa chính của bảng khi tạo bảng. (Trường khóa chính đảm bảo mỗi dòng thuộc bảng là duy nhất và có thể nhận diện duy nhất.) Trong bài tập kế, bạn sẽ sắp và lọc bảng để chỉ hiển thị những hóa đơn xuất ngày 15/03 và được sắp theo tên nhà vận chuyển. Để chuẩn bị bài tập, hãy đảm bảo Access vẫn đang chạy và cơ sở dữ liệu Ch01 đang mở. Kích kép tblInvoices trong danh sách phân loại Tables, nếu cần, để mở nó ở góc nhìn Datasheet.

BÀI TẬP 1.8: SẮP VÀ LỌC CÁC DÒNG TRONG BẢNG

1. Với tblInvoices được hiển thị ở góc nhìn Datasheet, kích phải giá trị bất kỳ trong cột Shipper (nhà vận chuyển).

2. Kích Sort A to Z trong pop-up menu. Bây giờ các bản ghi hóa đơn được sắp theo thứ tự từ điển của tên nhà vận chuyển.

3. Kích mũi tên chọn danh sách trong cột InvoiceDate (thời điểm xuất hóa đơn) ở bên phải nút chọn cột. Các tùy chọn sắp xếp và danh sách các giá trị cột khác nhau xuất hiện trong menu sổ xuống.

4. Kích ô (Select All) để xóa đánh dấu trên tất cả các ô.

5. Dùng nút cuộn trong menu sổ xuống để định vị và kích 3/15/2012 (xem Hình 1.18).

Hình 1.18 Sắp và lọc các bản ghi.

6. Kích OK để áp dụng bộ lọc vừa tạo. Chỉ có 8 bản ghi có thời điểm khớp với bộ lọc xuất hiện ở góc nhìn Datasheet. Chúng được sắp theo tên nhà vận chuyển.

Để ý cột Shipper có mũi tên trỏ lên nằm ở đầu đề cột nhằm ký hiệu thứ tự sắp; cột InvoiceDate có một phễu nhỏ – bộ lọc – ký hiệu cột được lọc. Thanh trạng thái hiển thị từ “FILTERED” (đã được lọc) ở biên phải cho biết việc lọc dòng đang diễn ra.

Một cách sắp bảng khác là tạo bộ lọc hay lệnh sắp cao cấp từ lệnh Advanced Filter/Sort trong lệnh Advanced ở nhóm Sort & Filter trên HOME tab. Dùng lệnh Advanced Filter/Sort sẽ linh hoạt hơn. Chẳng hạn, bạn có thể chọn sắp nhiều cột (ví dụ tăng theo nhà vận chuyển Shipper rồi giảm theo phí vận chuyển ShipCost cho từng nhóm nhà vận chuyển). Lệnh Advanced Filter/Sort sẽ tạo một truy vấn từ đó bạn có thể chọn tên cột từ danh sách, đặt từng cột sắp vào lưới sắp, rồi chọn thứ tự sắp tăng Ascending hay giảm Descending cho từng cột. Bạn hiển thị lại bảng dữ liệu theo thứ tự nguyên thủy bằng cách kích nút Remove Sort (nhóm Sort & Filter) rồi kích nút Toggle Filter. Hãy trải nghiệm một tí với thao tác này. Chúng vô hại vì thứ tự bản ghi thật sự của bảng không bị ảnh hưởng. Chỉ có thứ tự dòng hiển thị bảng dữ liệu bị ảnh hưởng.

Sau khi trải nghiệm với sắp xếp và lọc, hãy đóng bảng hóa đơn invoices bằng cách kích phải tab của nó rồi kích Close hay Close All trong menu sổ xuống. Khi xuất hiện hộp thoại hỏi bạn muốn lưu các thay đổi trên thiết kế hay không, hãy kích No.

Thứ Ba, 29 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Thay đổi các đặc trưng hiển thị bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Thay đổi các đặc trưng hiển thị bảng


Có thể thay đổi các thuộc tính hiển thị của bảng bất kỳ bạn đang xem. Chẳng hạn, bạn có thể chuyển các cột bảng sang trái hay phải, thay đổi độ rộng hiển thị một cột, loại bỏ các ô lưới phân chia dòng cột, và đổi kiểu chữ cũng như các đặc trưng của chúng. Khi bạn thay đổi góc nhìn Datasheet, chúng không ảnh hưởng đến cấu trúc và nội dung bảng. Chẳng hạn, nếu bạn chuyển một cột khỏi vị trí hiện thời, cấu trúc bảng không bị ảnh hưởng. Chỉ có các đặc trưng hiển thị của bảng bị ảnh hưởng. Khi bạn đóng bảng mà các đặc trưng hiển thị của nó ở góc nhìn Datasheet đã bị thay đổi, Access sẽ hiển thị hộp thoại “Do you want to save changes to the layout of the table…?” (Bạn có muốn lưu các thay đổi về bài trí của bảng … không?) Việc kích No sẽ bỏ qua mọi thay đổi đặc trưng hiển thị mà bạn đã làm kể từ lần lưu trước. Việc kích Yes sẽ duy trì các thay đổi đặc trưng hiển thị (ở góc nhìn Datasheet) của bảng đó.

Cách dễ nhất để thay đổi các đặc trưng hiển thị bảng là xem bảng ở góc nhìn Datasheet rồi tiến hành định dạng từ nhóm Text Formatting. Hãy thay đổi một vài thuộc tính hiển thị cho bảng hóa đơn tblInvoices. Trước khi bắt đầu bài tập, hãy đảm bảo Access đang chạy và cơ sở dữ liệu Chương 1 đang mở.

BÀI TẬP 1.7: THAY ĐỔI CÁC THUỘC TÍNH HIỂN THỊ BẢNG

1. Trong phân loại Tables, kích phải tblInvoices rồi kích Open trong pop-up menu. Bảng hóa đơn invoices sẽ mở ở góc nhìn Datasheet.

2. Kích tab lệnh ngữ cảnh Fields để hiển thị các nhóm và lệnh của nó.

3. Kích ô bất kỳ trong cột Tax (thuế) rồi kích nút Apply Currency Format (áp dụng định dạng tiền tệ, có hình $) trong nhóm Formatting. Lặp lại bước này cho cột ShipCost (phí vận chuyển). Giờ đây cả hai cột đều hiển thị dấu hiệu tiền trong các giá trị.

4. Chuyển con trỏ chuột đến nút chọn trường (field selector), tức đầu đề cột, của Shipper (nhà vận chuyển). Khi con trỏ chuột ở trên đầu đề cột, nó chuyển thành mũi tên trỏ xuống. Kích Shipper để chọn toàn bộ cột.

5. Kích bên trong nút chọn trường của cột đã được làm tối (không phải dữ liệu bên dưới nút chọn trường), kéo đến biên trái của bảng, rồi thả nút chuột. (Cột vẫn được làm tối sau khi bạn thả nút chuột.)

6. Với cột Shipper vẫn được chọn, kích phải ô bất kỳ bên trong cột. Pop-up menu xuất hiện.

7. Kích Field Width (độ rộng trường) từ danh sách chọn của pop-up menu.

8. Kích nút Best Fit (phù hợp nhất). Cột sẽ định lại cỡ về độ rộng nhỏ nhất mà có thể hiển thị đầy đủ nhãn cột và giá trị rộng nhất trong cột.

9. Lặp lại các bước 4 và 5 cho cột InvoiceDate (thời điểm xuất hóa đơn) để chuyển nó đến cột thứ hai, ngay bên phải cột Shipper mà bạn vừa làm. Kích ô bất kỳ trong cột CompanyID (mã công ty), chẳng hạn, để khử việc chọn cột (xem Hình 1.17).

Hình 1.17 Thay đổi thuộc tính hiển thị bảng.

Thứ Hai, 28 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Tìm giá trị trong cột

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Tìm giá trị trong cột


Việc tìm một bản ghi cụ thể trong bảng dựa trên giá trị của một trong các cột ở góc nhìn Datasheet thì dễ. Mặc dù có thể thấy gần phân nửa dữ liệu trong bảng ví dụ khách hàng customers, hầu hết các bảng trong doanh nghiệp chứa hàng trăm ngàn hay hàng triệu dòng. Việc tìm một bản ghi khách hàng cụ thể trong bảng lớn như thế sẽ hết sức khó khăn nếu không có hệ cơ sở dữ liệu. Hãy hình dung bảng khách hàng customers chứa nhiều dòng và bạn muốn tìm khách hàng mà phần địa chỉ tên đường chứa từ “railroad”, nhưng bạn không nhớ phần còn lại của tên đường. Nhiệm vụ của bạn trong bài tập kế là tìm được bản ghi khách hàng. Nếu cần, hãy mở bảng tblCustomers.

BÀI TẬP 1.6: TÌM DÒNG CHỨA MỘT CHUỖI CỤ THỂ

1. Với bảng tblCustomers được mở ở góc nhìn Datasheet, hãy kích ô đầu tiên trong cột Street (tên đường). Hành động đó sẽ chuyển con trỏ đến cột bạn muốn yêu cầu Access tìm kiếm.

2. Kích HOME tab. Kích nút Find (có hình ống nhòm trong nhóm Find gần biên phải của dải lệnh HOME) rồi gõ *railroad* vào ô văn bản Find What (tìm chi). Nhớ có dấu hoa thị ở trước và sau chuỗi. (Điều này cho phép từ railroad được tìm ở vì trí bất kỳ trong tên đường.)

3. Chọn Down từ danh sách sổ xuống Search (tìm kiếm).

4. Kích nút Find Next để bắt đầu quá trình tìm kiếm. Access sẽ tìm trên cột Street và chuyển nút chọn bản ghi đến dòng chứa khách hàng Pizza Nova Hillcrest – bản ghi 48. Access sẽ làm nổi bật tên đường thuộc bản ghi đầu tiên thỏa tiêu chuẩn tìm kiếm.

5. Đóng hộp thoại Find and Replace (tìm và thay thế). Hành động này cho phép nhìn toàn bộ dòng mà Access đã định vị.

6. Chuyển con trỏ đến bản ghi đầu tiên trong bảng tblCustomers bằng cách dùng nút chuyển First record. Để ý giá trị Street trong dòng đầu được làm nổi bật.

7. Kích phải tblCustomers tab rồi kích Close để đóng bảng.

Chủ Nhật, 27 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Di chuyển trong bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Di chuyển trong bảng


Khi bạn mở một bảng trong cơ sở dữ liệu Access, chỉ vài dòng đầu xuất hiện trên màn hình. Có vài cách di chuyển qua bảng để xem mọi dòng của nó. Chẳng hạn, bạn có thể chọn một trong các phương án từ lệnh Go To thuộc nhóm Find trên HOME tab. Nó chứa các phương án: First (đầu tiên), Previous (trước đó), Next (sau đó), Last (cuối cùng), và New (mới). Bạn cũng có thể dùng bàn phím: mũi tên lên để chuyển lên một dòng, mũi tên xuống để chuyển xuống một dòng, PgUp để chuyển lên một màn hình, và PgDn để chuyển xuống một màn hình. Có lẽ cách dễ nhất để cuộn qua các dòng trong bảng là dùng các nút di chuyển (xem Hình 1.14). Từ trái sang phải, các nút chuyển bản ghi sẽ chuyển đến đầu bảng, lên một dòng, đến bản ghi được đánh số (bạn gõ giá trị vào ô văn bản rồi nhấn Enter), xuống một dòng, đến bản ghi cuối cùng trong bảng, hay thêm một dòng mới vào bảng. Nút cuối cùng bên phải sẽ mở một bản ghi mới, đặt ngay sau bản ghi cuối cùng trong bảng. Nút New là cách tiện lợi để thêm một bản ghi mới vào bảng. Hãy thử nghiệm các nút di chuyển. Với bảng khách hàng customers vẫn được hiển thị trong cửa sổ, đầu tiên hãy kích nút Last record (bản ghi cuối cùng) để đến dòng cuối cùng trong bảng. Rồi kích nút First record (bản ghi đầu tiên) để đến bản ghi đầu tiên. (Ta sẽ dùng thuật ngữ bản ghi đồng nghĩa với thuật ngữ dòng.)

Để ý rằng nút chọn bản ghi (record selector) được làm nổi bật trên dòng hiện được chọn. Cột nút chọn bản ghi nằm ở biên trái của bảng (xem Hình 1.14). Khi bạn di chuyển bằng các nút chuyển, nút chọn bản ghi sẽ di chuyển theo. Việc nhấn các phím mũi tên trái phải sẽ chuyển con trỏ đến các cột khác nhau trong cùng một dòng.

Thứ Bảy, 26 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Mở bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Mở bảng


Viên gạch cơ bản nhất của một cơ sở dữ liệu – và là đối tượng duy nhất thực sự chứa dữ liệu – là bảng (table). Ta bắt đầu bằng việc khảo sát bảng. Khi mở một bảng, nó xuất hiện trong cửa sổ Datasheet, còn được gọi là vùng làm việc của Access (Access work area). Góc nhìn Datasheet hiển thị dữ liệu theo dòng và cột, rất giống một bảng tính (spreadsheet). Có nhiều cách mở bảng, và cách tốt nhất là vấn đề thuộc sở thích cá nhân. Bạn có thể mở đối tượng bất kỳ, kể cả bảng, bằng một trong những phương pháp sau: (1) Kích kép tên đối tượng trong Navigation Pane để mở nó trong vùng làm việc của Access; (2) kích phải tên đối tượng rồi kích Open trong pop-up menu (trình đơn hiện lên); hay (3) kích và kéo tên đối tượng vào vùng làm việc của Access.

Sẽ dễ hiểu qui trình này hơn nếu bạn mở một bảng có sẵn và trải nghiệm một số nút lệnh và menus trên thanh công cụ. Để chuẩn bị làm bài tập kế, hãy khởi động Access và mở cơ sở dữ liệu Chương 1. Bây giờ bạn đã sẵn sàng làm theo các bước trong bài tập kế để mở một trong những bảng trong cơ sở dữ liệu.

BÀI TẬP 1.5: MỞ BẢNG

1. Hãy đảm bảo mọi đối tượng cơ sở dữ liệu được phân loại theo kiểu và tên của chúng được hiển thị bằng cách kích mũi tên trỏ xuống của Navigation Pane rồi kích Object Type ở nhóm Navigate to Category.

2. Nếu phân loại Tables đang đóng thì kích nút bên phải của Tables để mở danh sách bảng.

3. Kích kép tblCustomers trong phân loại Tables. (Ngoài ra, bạn có thể kích phải tblCustomers rồi kích Open trong pop-up menu.) Access mở bảng khách hàng customers ở góc nhìn Datasheet và hiển thị tab lệnh Datasheet mới trên dải lệnh (xem Hình 1.14).

Hình 1.14 Bảng khách hàng customers ở góc nhìn Datasheet.

Hãy dành ít thời gian khảo sát bảng khách hàng customers. Để ý các nút di chuyển trong Datasheet nằm dưới đáy cửa sổ. Dải lệnh chứa 2 tabs lệnh ngữ cảnh (contextual command tabs), FIELDS TABLE. (Tab lệnh ngữ cảnh chỉ xuất hiện khi cửa sổ tương ứng được chọn.) Chúng là cảm ngữ cảnh và vì vậy chỉ xuất hiện khi bảng được hiển thị ở góc nhìn Datasheet. Việc kích lệnh ngữ cảnh FIELDS sẽ mở ra các nhóm Views (góc nhìn), Add & Delete (thêm và xóa), Properties (thuộc tính), Formatting (định dạng) và Field Validation (kiểm tra trường hợp lệ). Những nhóm này cho phép bạn dễ dàng thêm các trường mới vào góc nhìn Datasheet, thay đổi thuộc tính trường, thay đổi định dạng trường, và cung cấp kiểm tra hợp lệ cho một hay nhiều trường. Tab ngữ cảnh TABLE có các nhóm tác động đến các thuộc tính tổng thể của bảng và phát sinh hành động khi những biến cố cụ thể – chẳng hạn cập nhật hay chèn – phát sinh trong bảng.

Các nhóm và các lệnh xuất hiện trong dải lệnh sẽ phụ thuộc việc bạn đã kích tab lệnh nào. Theo mặc định, HOME tab sẽ mở khi bạn mở bảng ở góc nhìn Datasheet. Bên dưới các nút di chuyển bản ghi ở đáy cửa sổ là thanh trạng thái. Ở góc nhìn Datasheet, thanh trạng thái hiển thị chú thích cho cột bảng đã chọn. Để ý ở Hình 1.14 là thanh trạng thái hiển thị chuỗi “Primary Key” (khóa chính) vì đó là chú thích được tạo cho cột CustomerID.

Bạn có thể tùy chỉnh thanh trạng thái bằng cách kích phải rồi chọn tùy chọn bạn muốn. Hãy dành ít thời gian trải nghiệm việc tùy chỉnh thanh trạng thái.

THỬ NGHIỆM

Kích phải thanh trạng thái. Hộp thoại Customize Status Bar (tùy chỉnh thanh trạng thái) xuất hiện. Kích Caps Lock (chế độ gõ chữ hoa) để xóa dấu chọn. Kích View Shortcuts (hiển thị các lệnh đi tắt) để xóa dấu chọn. Kích bên ngoài hộp thoại để đóng nó. Để ý rằng các lệnh đi tắt ở góc phải dưới đã biến mất. Hãy hiển thị lại chúng bằng cách kích phải thanh trạng thái rồi kích View Shortcuts. Để ý rằng các lệnh đi tắt đã xuất hiện trở lên. Kích bên ngoài hộp thoại để đóng nó. (Các lệnh đi tắt là cách tiện lợi để chuyển qua lại giữa các góc nhìn Datasheet và Design.)

Hầu hết các tabs và nhóm trên dải lệnh đều quen thuộc, vì chúng tương tự trong các sản phẩm Windows khác. Bắt đầu phía trái của HOME tab (trên dải lệnh) là nhóm Views. Nó chứa các góc nhìn đã được đề cập trong phần thử nghiệm ở trên khi mở bảng. Bạn có thể nhanh chóng chuyển từ góc nhìn Datasheet sang góc nhìn thiết kế Design bằng cách kích biểu tượng trong nhóm Views – không cần phải dùng danh sách sổ xuống. Nhóm Clipboard (vùng nhớ tạm) chứa các biểu tượng quen thuộc Cut (cắt), Copy (sao chép), Paste (dán), và Format Painter (sao chép định dạng). Nhóm Sort & Filter (sắp xếp và lọc) cung cấp cách lọc bảng để hiển thị chỉ những bản ghi thỏa tập tiêu chuẩn và sắp xếp các dòng dựa trên một trường theo thứ tự tăng hay giảm dần. Nhóm Records (bản ghi) cung cấp các lệnh để thêm bản ghi mới, xóa một hay nhiều bản ghi hiện có, kiểm tra lỗi chính tả trong bảng, và hiển thị tổng số của một hay nhiều cột ở cuối bảng. Nhóm Find cung cấp các lệnh tìm kiếm bản ghi, thay thế, đi đến, và chọn bản ghi. Nhóm Text Formatting (định dạng văn bản) chứa nhiều lệnh định dạng cho phép thay đổi nhiều đặc trưng hiển thị trường, canh trái phải cho cột dữ liệu, đổi màu và kiểu chữ, cũng như các thay đổi định dạng khác.

Nếu bạn thích dùng bàn phím thay vì dùng chuột để thi hành lệnh, giao diện dải lệnh cung cấp đầy đủ các phím tắt gọi là KeyTips. Để dùng phím tắt, hãy nhấn rồi thả phím Alt. Access sẽ hiển thị KeyTips cho từng chức năng khả dụng – trong trường hợp này, các tab bao gồm KeyTip H cho HOME, C cho CREATE, … (xem Hình 1.15). Khi bạn nhấn một phím tắt, các phím tắt sẽ xuất hiện cho từng lệnh trong nhóm tab lệnh đó. Hình 1.16 trình bày các phím tắt cho HOME tab. Để bỏ qua hành động đang diễn ra và dấu đi KeyTips, hãy nhấn phím Alt lần nữa.

Hình 1.15 Các phím tắt cho tab ở góc nhìn Datasheet.

Hình 1.16 Các phím tắt trong nhóm ở góc nhìn Datasheet.

THỬ NGHIỆM

Với tblCustomers đang được hiển thị ở góc nhìn Datasheet, hãy nhấn Alt. Các phím tắt cho tab xuất hiện. Nhấn Y để mở tab lệnh DATABASE TOOLS. Nhấn E để mở cửa sổ quan hệ Relationships. Nhấn Alt để hiển thị lại các phím tắt trên menu ngữ cảnh DESIGN. Gõ JR rồi nhấn C để đóng cửa sổ quan hệ Relationships.

Khi thanh cuộn ngang xuất hiện dọc theo đáy cửa sổ, nó cho biết một số cột bảng còn ẩn. Thanh cuộn hoạt động như các thanh cuộn Windows khác: Kéo nút cuộn sang phải thì cửa sổ di chuyển sang phải; kích các mũi tên cuộn thì cửa sổ dịch chuyển theo hướng chỉ định. Thanh cuộn đứng sẽ xuất hiện khi dòng bất kỳ còn ẩn, đây là trường hợp thường xảy ra. Thanh cuộn đứng, ở bên phải cửa sổ, hoạt động tương tự thanh cuộn ngang.

Thứ Sáu, 25 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Nhìn dữ liệu ở những góc khác nhau

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Nhìn dữ liệu ở những góc khác nhau


Access cung cấp một số cách xem dữ liệu. Bạn có thể khảo sát dữ liệu dưới dạng bảng (table) gồm nhiều dòng cột gọi là góc nhìn Datasheet – giống như dữ liệu trong bảng tính spreadsheet. Hoặc bạn có thể dùng Form để hiển thị một hay nhiều dòng dưới dạng phi bảng. Forms là cách hấp dẫn để xem và sửa dữ liệu, vì chúng được thiết kế giống tờ đơn in giấy mà bạn đã quen thuộc. Điểm mới của Access là khả năng xem dữ liệu bằng split form (biểu mẫu phân chia). Split form hiển thị góc nhìn dạng bảng Datasheet ở một nửa màn hình và dạng form ở nửa kia. Việc chuyển từ bản ghi này sang bản ghi khác ở cửa sổ thuộc phân chia này sẽ khiến dữ liệu ở cửa sổ kia tự động chuyển theo. Ngoài ra, bạn có thể xem dữ liệu dưới dạng báo cáo qua góc nhìn Report. Reports là một cách duyệt báo cáo trước khi in.

Vì mỗi góc nhìn thường được mở trong cửa sổ riêng, bạn có thể xem nhiều đối tượng bằng việc kích cửa sổ thích hợp. Hình 1.12 trình bày nội dung bảng tblProducts ở góc nhìn Datasheet trên tblProducts tab, ở góc nhìn form trên frmProducts tab, và ở góc nhìn báo cáo trên rptProducts tab. Dĩ nhiên, bạn có thể kích từng tab để mở góc nhìn tương ứng, hay bạn có thể đặt tùy chọn để hiển thị các cửa sổ theo chế độ chồng lấn Overlapping Windows để đồng thời xem ở nhiều góc nhìn. Góc nhìn ở chế độ chồng lấn thường gây bối rối khi chúng che khuất nhau, vì thế ta thiên về cách tổ chức cửa sổ cơ sở dữ liệu theo tab.

Cơ sở dữ liệu Chương 1 chứa thông tin về một tiệm bánh ở San Diego chuyên làm cheesecakes (bánh phô-mai) và các loại bánh nướng khác. Cơ sở dữ liệu nhỏ này có 5 bảng quan hệ với nhau: khách hàng (tblCustomers), hóa đơn (tblInvoices), dòng chi tiết trong hóa đơn (tblInvoiceLines), sản phẩm (tblProducts), và công ty vận chuyển (tblShippers). Trong tài liệu này, ta theo qui ước đặt tên đối tượng sau: mọi bảng đều bắt đầu bằng tiền tố tbl (tiếp ngay sau là tên đối tượng). Truy vấn bắt đầu bằng qry, forms bắt đầu bằng frm, và báo cáo bắt đầu bằng rpt. Bảng khách hàng customers chứa thông tin về 67 khách hàng (thật sự là các công ty) mua sản phẩm của Incredible Cheesecake Company. Bảng hóa đơn invoices chứa thông tin chính của từng hóa đơn, gồm thời điểm, công ty, nhà vận chuyển đã chọn, … Liên kết với bảng hóa đơn invoices là bảng các dòng chi tiết trong hóa đơn invoice lines. Mỗi dòng trong invoice lines chứa mặt hàng đã đặt mua, số lượng, giá bán, và phần trăm giảm giá. Bảng nhà vận chuyển shippers chứa danh sách nhỏ gồm 4 nhà vận chuyển điển hình. (Ta chỉ bao gồm tên nhà vận chuyển và lờ đi thông tin điện thoại và địa chỉ với lý do đơn giản hóa. Thông tin đó phụ thuộc vị trí và hay thay đổi.) Bảng sản phẩm products chứa danh sách 79 sản phẩm mà Incredible Cheesecake Company bày bán. Hình 1.13 thể hiện các quan hệ giữa 5 bảng trong cơ sở dữ liệu. Chúng xuất hiện trong cửa sổ quan hệ Relationships. Tất cả các bảng và liên kết giữa chúng được thêm vào bằng tay. Sau này bạn sẽ học cách thiết lập quan hệ thường trực giữa các bảng.

Hình .13 Các quan hệ bảng trong cơ sở dữ liệu Chương 1

Tất cả các bảng đều nhỏ hơn những bảng bắt gặp trong cơ sở dữ liệu của một doanh nghiệp điển hình. Chúng tôi muốn bạn thấu hiểu qui trình rút trích thông tin từ dữ liệu, chứ không muốn gây kinh ngạc với kích cỡ cơ sở dữ liệu. Sẽ dễ hiểu các khái niệm cơ sở dữ liệu hơn nếu dùng một vài bảng nhỏ. Vì thế, chúng tôi đã giới hạn số dòng trong những bảng này nhưng vẫn giữ chúng đủ lớn để thấy lý thú. Ta bắt đầu thám hiểm Access bằng cách xem xét công dụng của bảng Access, viên gạch cơ bản của mọi ứng dụng cơ sở dữ liệu.

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Tạo một sao lưu (backup) cho cơ sở dữ liệu Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Tạo một sao lưu (backup) cho cơ sở dữ liệu Access


Để an toàn, bạn cần thường xuyên sao lưu cơ sở dữ liệu để tránh mất mát dữ liệu và sơ suất khác. Việc sao lưu cơ sở dữ liệu sẽ tránh các vấn đề như hệ thống gặp sự cố và những lỗi mà lệnh hồi ngược Undo không thể sửa chữa. Lệnh hồi ngược Undo sẽ mât tác dụng chẳng hạn khi thi hành một câu truy vấn hành động (action query) nhằm thay đổi dữ liệu trong bảng. Dữ liệu đã thay đổi, ngoại trừ thay đổi mỗi lần một dòng, không thể hồi ngược bằng lệnh Undo đơn giản. Tuy nhiên, nếu sao lưu, bạn có thể dễ dàng phục hồi bảng bị hỏng bằng bảng lưu trong sao lưu. (Bạn sẽ biết cách làm khi đến phần thảo luận lệnh Import và Export.)

Ngoài việc tránh mất mát dữ liệu, sao lưu cơ sở dữ liệu còn là cách tiện lợi để lưu cơ sở dữ liệu vào một folder khác sau khi đã mở nó. Nếu bạn muốn thực hành, hãy làm theo các bước sau. Bằng không, bạn chỉ việc đọc qua.

THỬ NGHIỆM

Kích FILE tab, kích Save As, kích Save Database As (nếu cần) trong khung File Types, kích Access Database (nếu cần), rồi kích nút Save As. Hộp thoại Save As sẽ mở lên. Chuyển đến đĩa và folder bạn muốn. Nếu muốn, bạn có thể thay đổi tên file cơ sở dữ liệu trong ô File name. Cuối cùng kích nút Save để lưu cơ sở dữ liệu.

Thứ Năm, 24 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Mở một cơ sở dữ liệu

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Mở một cơ sở dữ liệu


Một khi đã tạo cơ sở dữ liệu, bạn có thể đóng và sau này mở lại để thay đổi hay chạy báo cáo. Access lưu mọi đối tượng thuộc cơ sở dữ liệu – bảng, câu truy vấn, forms, và báo cáo – vào một file.

BÀI TẬP 1.4: MỞ CƠ SỞ DỮ LIỆU CHƯƠNG 1

1. Khởi động Access; kích Open Other Files (xem Hình 1.1 trước đây trong chương).
2. Kích Computer rồi kích Browse và chuyển đến ổ đĩa và folder chứa Ch01 (xem Hình 1.11).

Hình 1.11 Hộp thoại Open.

3. Kích Ch01 rồi kích nút Open. (Một cách khác, có thể kích kép tên file cơ sở dữ liệu để mở.) Microsoft Access sẽ hiển thị cửa sổ cơ sở dữ liệu Chương 1 (xem Hình 1.3 ở phần trước của chương).

Trong Navigation Pane, Access hiển thị các đối tượng theo phân loại Tables, Queries, Forms, và Reports. Trong từng phân loại, các đối tượng được sắp theo tên. Nếu Navigation Pane đang đóng thì kích nút đóng/mở Navigation Pane. Có thể kéo cạnh phải của Navigation để mở rộng hầu thấy được các tên dài. (Di chuột đến cạnh phải của Navigation Pane. Khi chuột biến thành mũi tên hai đầu trái phải, thì kéo chuột sang phải để mở rộng Navigation Pane.)

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Làm việc với cơ sở dữ liệu và bảng

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Làm việc với cơ sở dữ liệu và bảng


Nền tảng của mọi hệ cơ sở dữ liệu là bảng (tables). Bảng lưu dữ liệu để từ đó chuyển thành thông tin. Trong phần này bạn sẽ học cách dùng bảng có sẵn, tự bạn tạo bảng, thay đổi thứ tự hiển thị cột trong bảng, và liên kết bảng với nhau.

Cơ sở dữ liệu duy nhất bạn cần để hoàn thành các bài tập trong chương là cơ sở dữ liệu bạn đã làm việc với nó: Ch01.accdb. Từ cửa sổ Microsoft Access bạn có thể tạo cơ sở dữ liệu mới hoàn toàn, tạo cơ sở dữ liệu từ một số khuôn mẫu do Microsoft cung cấp, hoặc mở một cơ sở dữ liệu có sẵn.

Thứ Tư, 23 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Các đối tượng Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Các đối tượng Access


Access cung cấp nhiều cách lưu trữ, hiển thị, và báo cáo dữ liệu. Các cấu trúc và phương pháp dùng để lưu trữ và hiển thị dữ liệu được gọi là đối tượng. Các đối tượng Access bao gồm bảng (tables), câu truy vấn (queries), forms (biểu mẫu), báo cáo (reports), macros, và mã (code). Tài liệu này diễn giải cách dùng các đối tượng đó, nhấn mạnh 4 đối tượng đầu – là bảng, câu truy vấn, forms, và báo cáo. Phần này chứa tổng quan về 4 trong 6 lớp đối tượng quan trọng, và chỉ cách dùng chúng để xây hệ thông tin kế toán. Các phần tiếp theo sẽ dùng bảng, câu truy vấn, forms, và báo cáo chứa sẵn trong cơ sở dữ liệu Chương 1. Việc khảo sát các đối tượng này sẽ minh họa cách tổ chức và tra cứu thông tin bằng một hệ cơ sở dữ liệu, là trung tâm của hệ thông tin kế toán. Thỉnh thoảng trong chương, bạn được yêu cầu tạo những bảng nhỏ, câu truy vấn ngắn, forms đơn giản, và báo cáo nhỏ để thực hành.

Bảng (Tables). Bảng là cấu trúc lưu trữ dữ liệu cơ bản và là nơi duy nhất lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu. Bảng là đối tượng hai chiều gồm dòng và cột. Mỗi dòng chứa mọi thông tin có thể có về một hạng mục cụ thể. Ta có thể dùng thuật ngữ bản ghi (record) thay cho thuật ngữ dòng. Mọi dòng đều có cùng số cột, mặc dù không nhất thiết mọi cột trong dòng phải chứa giá trị. Đôi khi có ô trống. Theo thuật ngữ cơ sở dữ liệu, giá trị trống được gọi là null. Giá trị null rất quan trọng, thể hiện rằng giá trị đó là “không biết”.

Hãy xét bảng chứa thông tin khách hàng. Một công ty nhỏ với 67 khách hàng lưu dữ liệu khách hàng – gồm tên, địa chỉ, hạn mức tín dụng, … – vào bảng. Mỗi cột khách hàng là một trường thông tin cụ thể. Thuật ngữ trường (field) và cột (column) là những từ đồng nghĩa. Mỗi cột chứa một kiểu (hay loại) thông tin. Chẳng hạn, một cột chứa địa chỉ tên đường của từng khách hàng; một cột chứa tên công ty của từng khách hàng; và một cột chứa thành phố và bang của từng khách hàng. Hình 1.7 là ví dụ về một bảng Access nhỏ lưu dữ liệu khách hàng. (Một số cột đã được định lại cỡ để làm tên và giá trị cột được hiển thị đầy đủ.) Khác biệt chính giữa bảng khách hàng này và bảng trong thực tế là kích cỡ - hầu hết bảng khách hàng chứa hàng ngàn, thậm chí hàng triệu dòng. Hơn nữa, bảng dữ liệu khách hàng thường chứa nhiều cột. Ví dụ này chủ ý làm nhỏ để bạn hiểu được các nguyên tắc của bảng cơ sở dữ liệu mà không cần thêm độ phức tạp về dung lượng dữ liệu lớn.

Hình 1.7 Bảng ví dụ chứa thông tin cơ bản của khách hàng.

Để ý rằng mỗi cột chỉ chứa một kiểu dữ liệu. Đây là qui tắc quan trọng cần nhớ khi tạo bảng. Mỗi dòng chứa thông tin về một khách hàng, và chỉ dữ liệu của một khách hàng được lưu trong dòng đã cho. Mặc dù bảng khách hàng này chỉ chứa dữ liệu nguyên và ký tự, các trường bảng Access cũng có thể chứa các kiểu dữ liệu Date/Time (thời điểm), Currency (tiền tệ), AutoNumber (số nguyên tăng tự động), Yes/No (có hoặc không), OLE Object, Hyperlink, Attachment (đính kèm), và Calculated (được tính toán). (Ta sẽ thảo luận các kiểu dữ liệu này sau.)

Ở đỉnh mỗi cột là tên cột, gọi là thuộc tính (attribute), dùng nhận diện tính duy nhất của cột đó. Mỗi dòng ứng với một khách hàng. Dòng không thể phân chia. Nghĩa là dữ liệu trong dòng luôn gắn liền với dòng, cả khi các dòng được sắp xếp hay được hiển thị theo một thứ tự khác. Mặc dù các dòng không có thứ tự, chúng có thể được sắp theo một trật tự có nghĩa khi cần. Đây là một trong những ưu điểm của hệ cơ sở dữ liệu quan hệ: thứ tự các dòng trong bảng không quan trọng. Nói cách khác, bạn không phải lo lắng về thứ tự nhập liệu vào bảng. Không dòng nào quan trọng hơn dòng nào.

Thứ tự các cột trong bảng cũng không quan trọng. Chúng được đặt theo một thứ tự tùy ý từ trái sang phải. Bảng tblCustomers đã được thiết kế để mã khách hàng ở vị trí đầu – thói quen chung là đặt định danh duy nhất của dòng ở cột đầu, mặc dù không bắt buộc. Nói cách khác, không có ẩn ý hay tầm quan trọng nào hiện diện trong việc bố trí cột. Trường CustomerID chứa các giá trị duy nhất. Không có trường hợp 2 khách hàng có cùng định danh. Kiểu trường này được gọi là khóa chính (primary key) của bảng. Sau này bạn sẽ học nhiều hơn về khóa chính.

Câu truy vấn (queries). Có một số kiểu truy vấn, nhưng truy vấn thông dụng nhất được gọi là truy vấn chọn (selection query). Truy vấn chọn là yêu cầu bạn có thể nêu về cơ sở dữ liệu.  (Vì truy vấn chọn là kiểu thường dùng nhất nên được goi tắt là câu truy vấn.) Chẳng hạn, một truy vấn phát biểu bằng tiếng Việt có thể là “Những khách hàng nào sống ở Fortuna, CA?” hay “Những hóa đơn khách hàng nào quá hạn trên 60 ngày?” (Không thể trả lời truy vấn thứ hai với chỉ một bảng. Ta sẽ phải nối nó với một bảng khác để trả lời truy vấn đó.) Các truy vấn đặc biệt hữu ích khi kết hợp thông tin từ nhiều bảng có quan hệ với nhau để cho ra tập kết quả đầy đủ và duy nhất. Truy vấn còn là cách giảm dung lượng dữ liệu bằng cách chỉ hiển thị tập con gồm những dòng trong bảng mà bạn quan tâm. Có thể dùng truy vấn để tổng kết dữ liệu, chỉ hiển thị kết quả tổng hợp. Chẳng hạn, có thể yêu cầu Access tính tổng tất cả các hóa đơn chưa trả từ bảng hóa đơn (được lưu trong bảng tblInvoices thể hiện ở Hình 1.7). Các kiểu truy vấn khác sẽ chèn dữ liệu mới vào bảng, xóa dữ liệu không muốn khỏi bảng, hay thay đổi giá trị trong một hay nhiều cột bảng. Các truy vấn sẽ tạo điều kiện chọn bảng liên quan đến yêu cầu của bạn, chỉ định cột nào bạn muốn thấy, và đặc tả dòng nào cần lấy ra.

Cấu trúc của một truy vấn được gọi là thiết kế (design) của nó. Kết quả truy vấn, gọi là tập hợp động hay tập động (dynaset), được hiển thị trong cửa sổ Query. Hình 1.8 trình bày ví dụ về thiết kế của một truy vấn và tập động của nó trong hai cửa sổ riêng. (Để thấy được kết quả như Hình 1.8, kích FILE, kích Options, kích Current Database ở khung bên trái, kích Overlapping Windows của Document Window Options, rồi kích OK. Sau đó đóng và mở lại cơ sở dữ liệu Chương 1. Tuy nhiên, tốt nhất là đừng thay đổi tùy chọn này trên máy tính của bạn.) Chỉ những cột xuất hiện trong thiết kế truy vấn mới xuất hiện trong tập động dynaset. Những đánh dấu (có 2 trong ví dụ này) trong dòng Show (hiển thị) của lưới truy vấn (query grid) chỉ định những cột nào xuất hiện trong tập động dynaset. Trường thứ hai thật ra là biểu thức tính tổng doanh thu theo từng tên sản phẩm và làm tròn kết quả đến 2 chữ số thập phân. Dòng Sort (sắp xếp) trong cột thứ hai của thiết kế truy vấn chứa “Descending”, nghĩa là kết quả được sắp thứ tự từ cao xuống thấp trên các giá trị của trường đó. Biểu thức >8765, gọi là tiêu chuẩn chọn (selection criterion), sẽ lọc các dòng qua đó hạn chế những dòng được trả về là những dòng thỏa các điều kiện được đặc tả trong tiêu chuẩn – ở trường hợp này là những dòng có tổng doanh thu lớn hơn $8,765.

Hình 1.8 Ví dụ về câu truy vấn và tập động.

Forms (biểu mẫu). Thường sẽ tốt hơn nếu làm việc với dữ liệu bảng mỗi lần một dòng. Bảng không là giao diện trực quan với nhiều người, đặc biệt với người không quen làm việc với cơ sở dữ liệu. Access forms giải quyết vấn đề này. Forms hiển thị dữ liệu từ bảng hay từ câu truy vấn ở dạng dễ hiểu hơn. Bạn có thể xem một hay nhiều dòng trong bảng. Hình 1.9 trình bày form ví dụ hiển thị thông tin khách hàng, từ bảng tblCustomer, trong một giao diện hấp dẫn và trực quan.

Hình 1.9 Form ví dụ hiển thị thông tin khách hàng.

Form có thể là cách dễ dàng hơn khi xem và thay đổi dữ liệu lưu trong cơ sở dữ liệu. Một trong những bản ghi xuất hiện trong form. Có thể chuyển đến bản ghi kế, bản ghi trước, bản ghi đầu hay cuối bằng cách kích các nút di chuyển ở góc trái dưới của cửa sổ. Có thể đến một bản ghi cụ thể bằng cách đến ô số bản ghi, gõ số bản ghi, rồi nhấn phím Emter. Nút mũi tên phải sẽ di chuyển mỗi lần một bản ghi, hiển thị bản ghi kế trong form. Nút mũi tên phải có vạch đứng ở bên phải của nó sẽ chuyển ngay đến bản ghi cuối. Hành vi ngược lại sẽ áp dụng cho các nút mũi tên trái.

Báo cáo (reports). Hãy hình dung việc trình bày cho nhiều người dự họp bản báo cáo tài chính từ màn hình máy tính xách tay của bạn. Đó là cách kỳ cục và không chuyên nghiệp. Bản in giấy – tức báo cáo Access – là giải pháp hay hơn. Bằng việc chuẩn bị sẵn báo cáo, bạn có thể dễ dàng phát cho mọi người. Access cung cấp phương tiện phát sinh báo cáo toàn diện, bạn sẽ tìm hiểu sâu về nó ở Chương 6.

Báo cáo Access thường là kết xuất giá trị nhất do hệ cơ sở dữ liệu sản sinh. Ngoài việc quan trọng là lưu thông tin nợ phải thu vào cơ sở dữ liệu và truy vấn cơ sở dữ liệu để được đáp ứng, hoạt động có tầm quan trọng tương tự là phát sinh kết quả in ấn. Chẳng hạn, bạn có thể muốn liệt kê tất cả khách hàng đã quá hạn chi trả 60 ngày. Nếu có hơn vài chục khách hàng như thế, thì báo cáo in ấn là kết xuất hữu ích nhất. Bạn có thể duyệt qua danh sách, đánh dấu những tài khoản cần đặc biệt quan tâm. Bạn cũng có thể in ra rồi chuyển đến các bộ phận và quản lý viên thích hợp.

Bạn có thể dùng các đặc trưng và công cụ thiết kế báo cáo của Access để tùy chỉnh báo cáo theo mong muốn. Báo cáo có thể hiển thị dữ liệu từ một hay nhiều bảng có quan hệ với nhau. Hình 1.10 trình bày ví dụ về một báo cáo đơn giản gồm biểu tượng công ty, đầu đề cột hấp dẫn, và các khách hàng được sắp xếp và được nhóm theo tên thành phố. Mọi dữ liệu báo cáo đều đến từ bảng khách hàng tblCustomers. Báo cáo đơn giản thì dễ tạo và trông chuyên nghiệp. Không như Access, có thể phải mất vài giờ để tạo một báo cáo tương tự khi dùng ngôn ngữ lập trình như Java hay C++, và cần nhiều dòng mã và kỹ năng lập trình để tạo kết quả.

Hình 1.10 Báo cáo minh họa.

Các phần tiếp theo mô tả qui trình sử dụng và tạo bảng, câu truy vấn, forms, và báo cáo. Bạn hãy thực hành các bài tập vì phần còn lại của chương có tính tương tác. Bạn sẽ tiếp thu tốt nhất nếu lặp lại các bước đã trình bày và thật sự sử dụng cũng như tạo các đối tượng. Để giúp bạn trong quá trình này, nhiều bảng, câu truy vấn, forms và báo cáo đã được cấp sẵn để bạn có thể thực hành với chúng. Ngoài ra, tự bạn sẽ tạo một số.

Thứ Ba, 22 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Thanh công cụ truy xuất nhanh

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Thanh công cụ truy xuất nhanh


Ở góc trái trên của màn hình Access chính, bên trên các Access tab là thanh công cụ truy xuất nhanh (Quick Access Toolbar). Lúc nào cũng xuất hiện, Quick Access Toolbar là thanh công cụ hữu ích để đặt các biểu tượng lệnh Access thường dùng. Bạn có thể dễ dàng thêm những lệnh bạn thường dùng nhất. Hãy thêm vài biểu tượng vào Quick Access Toolbar.

THỬ NGHIỆM

Kích FILE tab, kích Options, kích Quick Access Toolbar ở khung bên trái hộp thoại Access Options, kích biểu tượng Open trong danh sách Popular Commands (các lệnh thông dụng), rồi kích nút Add. Access sẽ sao chép lệnh Open vào danh sách lệnh của Quick Access Toolbar. Kích OK để xác nhận việc thêm mới vào Quick Access Toolbar. Hãy quan sát Quick Access Toolbar. Nó hiển thị lệnh mới ở bên phải. Với biểu tượng “Open” trong Quick Access Toolbar, bạn có thể kích vào đó để nhanh chóng mở hộp thoại Open.

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Thiết đặt các tùy chọn Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Thiết đặt các tùy chọn Access


Mặc dù bạn có thể không cần làm gì nhiều với giao diện Access, ta cần đảm bảo có cùng góc nhìn các đối tượng trên toàn tài liệu. Vì vậy, hãy khảo sát một vài tùy chọn cơ sở dữ liệu có thể tác động đến toàn bộ cơ sở dữ liệu Access và đảm bảo những tùy chọn đã định đã được thiết lập.

Bạn có thể tùy chỉnh bản thân Access bằng cách kích FILE tab rồi kích Options. Hộp thoại Access Options chứa rất nhiều tùy chọn cơ sở dữ liệu Access, nằm trong một số phân loại. Bài tập kế nhằm đảm bảo góc nhìn của bạn về cơ sở dữ liệu Chương 1 sẽ giống với hình ảnh trong tài liệu.

BÀI TẬP 1.3: THIẾT ĐẶT CÁC TÙY CHỌN ACCESS

1. Mở Access nếu cần rồi mở cơ sở dữ liệu Ch01.accdb.

2. Kích FILE tab, kích Options, rồi kích phân loại General nếu cần.

3. Kích ô danh sách Default file format for Blank Database, rồi kích Access 2007 – 2013 (nếu cần).

4. Kích phân loại Current Database ở khung bên trái.

5. Kích nút radio Tabbed Documents, và đánh dấu ô Display Document Tabs, nếu cần.

6. Đánh dấu ô Compact on Close, nếu cần.

7. Đánh dấu ô Remove personal information from file properties on save (xem Hình 1.6).

Hình 1.6 Thay đổi các tùy chọn Access.

8. Kích nút OK ở gần đáy hộp thoại để xác nhận và áp dụng các thay đổi cơ sở dữ liệu.

Bạn có thể phải đóng và mở lại Access, nếu được yêu cầu, để các tùy chọn mới phát huy tác dụng. Để ý rằng tiêu đề cơ sở dữ liệu xuất hiện trong ô Application Title thuộc nhóm Application Options.

Thứ Hai, 21 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Tìm hiểu Navigation Pane

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Tìm hiểu Navigation Pane


Bên trái cửa sổ cơ sở dữ liệu là Navigation Pane. Navigation Pane là công cụ chính để di chuyển qua lại giữa các đối tượng Access. Đó là nơi quan trọng để mở bảng, hiệu chỉnh câu truy vấn, chạy báo cáo, hiển thị forms, và thực hiện những thao tác khác trên các đối tượng cơ sở dữ liệu. Ở góc phải trên của Navigation Pane là nút đóng/mở. Khi cần nhiều không gian làm việc hơn, hãy kích nút đóng/mở để thu gọn Navigation Pane. Khi bị đóng, chỉ có thanh đóng/mở của Navigation Pane xuất hiện. Để mở lại Navigation Pane, hãy kích nút đóng/mở.

Navigation Pane ở Hình 1.3 thể hiện các đối tượng cơ sở dữ liệu được nhóm theo kiểu đối tượng (object type). Phần trên của Navigation Pane là danh sách bảng cơ sở dữ liệu; bên dưới danh sách bảng là danh sách câu truy vấn rồi đến danh sách forms. Danh sách báo cáo nằm ở đáy Navigation Pane trong ví dụ này. Bạn có thể tổ chức Navigation Pane theo phân loại (categories), và có thể lọc các phần tử trong phân loại bằng phân nhóm (groups). Bạn có thể tùy chỉnh các phân loại trong Navigation Pane bằng cách kích danh-sách-sổ-xuống (drop-down list) trong thanh tiêu đề của Navigation Pane để hiển thị các tùy chọn của nó (xem Hình 1.4). Những tùy chọn đó là Custom (tùy chỉnh), Object Type (kiểu đối tượng), Tables and Related Views (bảng và góc nhìn liên quan), Created Date (thời điểm tạo), và Modified Date (thời điểm thay đổi). Khi mở, các chọn lựa hiện thời của Navigation Pane sẽ được đánh dấu ở bên trái.

Hình 1.4 Các lựa chọn tùy chỉnh cho Navigation Pane.

Custom. Thiết đặt này sẽ tạo một tab mới trong Navigation Pane và bạn có thể đổi tên mặc định Custom Group 1 (nhóm tùy chỉnh 1) sang một tên khác. Hãy kéo thả các đối tượng bạn muốn vào nhóm tùy chỉnh. Nhóm tùy chỉnh đặc biệt hữu ích khi bạn muốn nhóm bảng, câu truy vấn, và các đối tượng khác mà có quan hệ hữu lý lại với nhau. Chẳng hạn, bạn có thể tạo các nhóm tùy chỉnh như “Customers” (khách hàng), “Products” (sản phẩm), hay “Invoices” (hóa đơn) để gom bảng, câu truy vấn, forms, và báo cáo lại với nhau. Sau này ta sẽ tạo các nhóm tùy chỉnh để minh họa khả năng tổ chức tiện lợi này.

Object Type. Thiết đặt Object Type là cách gom nhóm quen thuộc từ những phiên bản trước của Access. Đó chính là tổ chức hiển thị ở Hình 1.3 trong đó các đối tượng được nhóm lại với nhau theo kiểu: bảng, truy vấn, …

Tables and Related Views. Thiết đặt này tự động nhóm các truy vấn, forms, và báo cáo với bảng mà chúng phụ thuộc. Hình 1.5 trình bày một ví dụ về các đối tượng cơ sở dữ liệu của Chương 1 được nhóm theo bảng và các đối tượng liên quan. Chẳng hạn, các đối tượng bên dưới tên nhóm tblProducts sẽ gồm bảng có tên tương tự, 4 câu truy vấn, 2 forms, và 2 báo cáo (rptCustomerInvoicesrptProducts). Góc nhìn về các đối tượng cơ sở dữ liệu này bộc lộ mối quan hệ giữa các đối tượng. Trước phiên bản Access 2007, mối quan hệ giữa các đối tượng rất khó xác định.

Hình 1.5 Tùy chọn Tables and RelatedViews.

Created Date và Modified Date. Hai góc nhìn này, mặc dù có đó nhưng không được nhấn mạnh trong tài liệu này. Chúng cho phép nhóm các đối tượng theo thời điểm tạo hay thời điểm sửa đổi gần nhất. Các tùy chọn này không hữu ích lắm và sẽ không được đề cập nữa.

Trong khi các phân loại giúp tổ chức nên Navigation Pane, các nhóm dưới đầu đề “Filter By Group” trong Navigation Pane sẽ cho phép lọc các mục đã được phân loại. Với phân loại mặc định “Object Type” đã được chọn, bạn có thể kích Tables, Queries, Forms, hay Reports để chỉ hiển thị các mục trong phân nhóm tương ứng mà thôi. Chọn lựa All Access Objects sẽ hiển thị mọi đối tượng. Việc che dấu các nhóm đã chọn thì đơn giản. Chỉ cần kích đầu đề nhóm để che dấu nội dung của nó. Kích lần nữa để hiển thị nó. Chẳng hạn, kích vào nhóm Tables đang mở sẽ che dấu mọi thành phần của nó. Kích lần nữa sẽ hiển thị lại. Việc che dấu và hiển thị các nhóm đã chọn trong Navigation Pane sẽ tăng khả năng điều khiển việc cho phép tên các đối tượng có được liệt kê trong Navigation Pane hay không.

Chủ Nhật, 20 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Dải Access (Access Ribbon)

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Dải Access (Access Ribbon)


Access cung cấp một dải giao diện, hiển thị các lệnh thông qua một giao diện phân ô. Dải chiếm phần đỉnh của màn hình Access chính. Dải chứa các ô lệnh. Mỗi ô lệnh chứa nhóm lệnh, và nhóm lệnh chứa các thành phần điều khiển (controls). Hình 1.3 cho thấy ô HOME tab được chọn và đang mở - là ô mặc định khi mở một cơ sở dữ liệu. HOME tab chứa các nhóm Views (các góc nhìn), Clipboard (vùng nhớ tạm), Sort & Filter (sắp xếp và lọc), Records (các bản ghi), Find (tìm), và Text Formatting (định dạng văn bản). Các nhóm này cho phép xem cơ sở dữ liệu ở những góc nhìn khác nhau, cho sao chép hay cắt dán vào vùng nhớ tạm clipboard, cung cấp khả năng tìm kiếm và thay thế trên các bản ghi, cho phép thay đổi các đặc trưng hiển thị trường bản ghi. Các ô tab khác sẽ chứa những nhóm khác. Thay vì giải thích công dụng của các ô tab và nhóm ở đây, ta sẽ để dành cho đến khi thực sự dùng chúng.

Hình 1.3 Giao diện dải Access và cơ sở dữ liệu Chương 1.

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Không gian làm việc của Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Không gian làm việc của Access


Giao diện bao gồm dải Access (Access ribbon), Navigation Pane (bàn điều khiển), Quick Access Toolbar (thanh công cụ truy cập nhanh), và một cửa sổ lớn để hiển thị các đối tượng. Để ý rằng thanh tiêu đề của Access hiển thị tiêu đề “Incredible Cheesecake Company (Chapter 1)”. Việc đặt tiêu đề của ứng dụng vào thanh tiêu đề của Access là một trong những tùy chọn khi bạn kích FILE tab rồi kích Options trong danh sách lệnh. Sau này ta sẽ thảo luận nhiều hơn về tùy chọn đó.

Thứ Bảy, 19 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Khảo sát môi trường Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Khảo sát môi trường Access


Hãy mở cơ sở dữ liệu đi kèm với Chương 1 để khảo sát môi trường cơ sở dữ liệu chi tiết hơn. Hãy theo các bước ở Bài tập 1.2.

BÀI TẬP 1.2: MỞ CƠ SỞ DỮ LIỆU CHƯƠNG 1

1. Nếu cần, hãy mở Access để hiển thị cửa sổ Microsoft Access.

2. Kích Open Other Files ở bên trái màn hình. Kích Computer rồi kích Browse.

3. Trong hộp thoại Open, hãy định vị cơ sở dữ liệu Ch01.accdb rồi kích nút Open. Cơ sở dữ liệu sẽ mở và rất có thể hiển thị khuyến cáo an ninh (SECURITY WARNING) trong thanh nằm trên danh sách các đối tượng cơ sở dữ liệu.

4. Kích nút Enable Content để cho phép toàn quyền truy cập cơ sở dữ liệu và giải phóng thanh khuyến cáo.

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Thoát Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Thoát Access


Sau khi hoàn thành mọi công việc cơ sở dữ liệu, lúc nào bạn cũng phải thoát Access. Nếu đang dùng một cơ sở dữ liệu lưu trên thiết bị nhớ có thể tháo rời chẳng hạn thẻ nhớ USB, phải nhớ thoát Access trước khi tháo thiết bị nhớ. Nếu không, bạn có thể mất dữ liệu. Việc thoát Access sẽ báo hiệu cho chương trình thực hiện công việc dọn dẹp chẳng hạn lưu các thay đổi trong cơ sở dữ liệu lên đĩa, đóng các tài nguyên thông tin khác, và trở về Windows. Hãy kích biểu tượng Exit (dấu X) trên thanh tiêu đề của Access. Access sẽ nhanh chóng đóng các cơ sở dữ liệu đang mở rồi trở về Windows.

Thứ Sáu, 18 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Khởi động Microsoft Access

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Khởi động Microsoft Access


Để sử dụng Access, bạn phải thi hành hay mở nó lên. Chẳng hạn, để mở Access trong Windows 10, gõ access vào ô tìm kiếm ở góc trái dưới màn hình, khi thấy xuất hiện Access 2013 Desktop app thì kích vào đó.

Hình 1.0 Khởi động Access trong Windows 10.

Cửa sổ Microsoft Access sẽ xuất hiện (xem Hình 1.1). Phần bên trái là tên những file Access đã được mở gần đây (Hình 1.1 chỉ ra rằng gần đây chưa có file nào được mở: You haven’t opened any files recently) và lệnh Open Other Files để mở một cơ sở dữ liệu có sẵn. Ở phần bên phải, để tạo một cơ sở dữ liệu mới không chứa bất kỳ dữ liệu hay đối tượng nào, bạn chọn Blank desktop database. Nếu cơ sở dữ liệu cần tạo chứa những đối tượng khớp với các đối tượng có mặt trong những cơ sở dữ liệu thông dụng, chẳng hạn cơ sở dữ liệu về thông tin liên hệ (contacts) hay quản lý nhiệm vụ (tasks), bạn có thể dùng một trong những khuôn mẫu (template) do Access cung cấp. Template là cơ sở dữ liệu có sẵn bao gồm bảng, báo cáo, và các đối tượng cơ sở dữ liệu đã được thiết kế chuyên nghiệp, có thể giúp bạn nhanh chóng và dễ dàng tạo cơ sở dữ liệu. Bạn còn có thể tìm kiếm một template trực tuyến bằng cách dùng ô tìm kiếm ở đỉnh Backstage View. Hãy dành một ít thời gian xem xét cửa sổ Access ở Hình 1.1.

Hình 1.1 Góc nhìn hậu trường (Backstage View) của Access.

Thứ Năm, 17 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Cơ sở dữ liệu quan hệ là gì?

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Cơ sở dữ liệu quan hệ là gì?


Access là một hệ quản trị cơ sở dữ liệu quan hệ. Hệ cơ sở dữ liệu quan hệ dựa trên các qui tắc do tiến sĩ E. F. Codd tạo ra và công bố. Trong số các kiểu hệ quản trị cơ sở dữ liệu, ngày nay hệ quản trị cơ sở dữ liệu quan hệ được sử dụng rộng rãi nhất. Ta sẽ thảo luận một số qui tắc của Codd về hệ cơ sở dữ liệu quan hệ ở các chương sau.

Ta dễ hình dung thực thể lưu trữ cơ bản trong hệ cơ sở dữ liệu quan hệ - đó là đối tượng hai chiều gồm dòng và cột gọi là là bảng (table). Bảng chứa dữ liệu, mỗi dòng ứng với một thể hiện dữ liệu. Mỗi cột ứng với một đặc trưng, gọi là thuộc tính (attribute). Chẳng hạn, xét bảng lưu thông tin nhân viên. Một dòng cụ thể biểu diễn một nhân viên. Có nhiều dòng trong bảng nhân viên vì có nhiều nhân viên trong công ty, ở các bộ phận hay phòng ban. Các cột trong bảng nhân viên thường chứa tên nhân viên, họ nhân viên, thời điểm tuyển dụng, mã số an sinh xã hội, giới tính, ngày sinh, … Mỗi cột chỉ chứa một kiểu dữ liệu. Chẳng hạn, một cột đã cho luôn chứa thời điểm tuyển dụng của nhân viên và không chứa bất kỳ kiểu dữ liệu khác; một cột chỉ chứa họ nhân viên. Hai cột này không kết hợp thành một cột.

Một cơ sở dữ liệu thường có nhiều hơn một bảng. Chẳng hạn, bảng nhân viên có thể chỉ là một trong nhiều bảng nhằm biểu diễn các nhân viên của một công ty, kỹ năng của họ, và sản phẩm họ bán hay sản xuất. Nói cách khác, tập hợp bảng có quan hệ với nhau và cùng mô tả một thực thể thì được gọi là cơ sở dữ liệu. Bạn có thể hình dung một cơ sở dữ liệu quản lý nợ phải thu sẽ chứa nhiều bảng có quan hệ với nhau: bảng khách hàng, bảng nhân viên bán hàng, bảng tồn kho (bạn bán hàng từ kho), …  Mặc dù hầu hết cơ sở dữ liệu đều chứa nhiều bảng, khái niệm cơ sở dữ liệubảng thường được dùng thay thế cho nhau. Tập tin phẳng (flat file) là khái niệm gán cho cơ sở dữ liệu chỉ gồm một bảng – đây là trường hợp rất hiếm trong kinh doanh.

Hầu hết cơ sở dữ liệu dùng trong doanh nghiệp và chính phủ thì lớn, thường gồm hàng trăm bảng, mỗi bảng chứa hàng ngàn thậm chí hàng triệu dòng. Chúng tôi sẽ không bắt bạn làm việc với hệ thống như vậy trong các ví dụ và bài tập. Tuy nhiên, cơ sở dữ liệu của ta sẽ chứa nhiều hơn một bảng, và một số bảng có vài trăm dòng. Việc thao tác một số bảng lớn sẽ cho bạn cảm nhận các cơ sở dữ liệu doanh nghiệp thực sự chứa gì. Lý do sử dụng nhiều bảng để biểu diễn thông tin liên quan sẽ trở nên rõ ràng khi bạn tiếp tục đọc.

Để hiểu rõ hơn khái niệm bảng và các quan hệ giữa chúng, hãy khởi động Access và xét một vài bảng đã được chuẩn bị sẵn.

Thứ Tư, 16 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Microsoft Office Access là gì?

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Microsoft Office Access là gì?


Bạn sẽ học sử dụng một hệ quản trị cơ sở dữ liệu được phát triển cho máy vi tính gọi là Microsoft Office Access. Một khi đã học các kiến thức cơ bản về Microsoft Office Access, bạn sẽ có khả năng tự tạo các hệ thống kế toán bằng hệ cơ sở dữ liệu mạnh mẽ này. (Trong tài liệu này, ta thường dùng tên tắt “Access” thay vì tên dài “Microsoft Office Access”).

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Giới thiệu

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Giới thiệu


Các hệ thống phần mềm hiện đại, gồm hầu hết các hệ thống kế toán, đều có một hệ cơ sở dữ liệu. Chẳng hạn, chương trình quản lý nợ phải thu, thường lưu thông tin vào một hệ thống đặc biệt gọi là cơ sở dữ liệu (database). Sau này thông tin được truy xuất, tổng kết, và hiển thị bởi một chương trình chuyên lưu trữ, tổ chức, và truy xuất nhanh chóng dữ liệu trong cơ sở dữ liệu. Những hệ thống đó được gọi là các hệ quản trị cơ sở dữ liệu (database management systems).

Thứ Ba, 15 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 1 - Mục tiêu

James Perry, Richard Newmark


Chương 1
Nhập môn Microsoft Access


Mục tiêu


Chương này giới thiệu cách dùng cơ sở dữ liệu Microsoft Office Access. Bạn sẽ dùng cơ sở dữ liệu có sẵn để truy xuất dữ liệu, dùng các menus (trình đơn) của Microsoft Access, và tạo một vài kiểu forms (biểu mẫu) thông tin. Mục đích của chương là giúp bạn bước đầu làm quen với Access. Nếu đã quen Microsoft Access, bạn có thể bỏ qua chương này. Các chủ đề quan trọng trong chương bao gồm:


  • Hiểu môi trường làm việc Access.
  • Tạo và dùng các đối tượng Access gồm bảng, truy vấn, forms, và báo cáo.
  • Tùy chỉnh môi trường Access.
  • Mở và hiển thị bảng.
  • Tra cứu thông tin bằng câu truy vấn.
  • Thay đổi thông tin trong bảng bằng câu truy vấn hành động.
  • Tạo và dùng forms để hiển thị dữ liệu.
  • Thiết kế và dùng báo cáo cơ sở dữ liệu.


Ứng dụng nền tảng mà ta sẽ dùng trong chương là cơ sở dữ liệu của một tiệm bánh nhỏ chuyên bán cheesecakes (bánh phô-mai) và muffins (bánh nướng xốp). Cơ sở dữ liệu này minh họa cách thức một doanh nghiệp điển hình dùng cơ sở dữ liệu để thao tác và lưu trữ thông tin kinh doanh quan trọng. Doanh nghiệp giả lập có tên là Incredible Cheescake Company, sẽ dùng bảng, forms, truy vấn, và báo cáo về khách hàng, hóa đơn, sản phẩm mà họ tạo ra hàng ngày, và các công ty vận chuyển phân phối sản phẩm của họ. Quan trọng hơn, chương sẽ minh họa vai trò trọng tâm của cơ sở dữ liệu trong việc theo dõi và bảo trì thông tin kinh doanh cũng như các biến cố kinh tế.

Thứ Hai, 14 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Tổng kết

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Tổng kết


Chương này đã trình bày cách thiết kế và tạo tác qui trình kinh doanh bán hàng - thu tiền trong Access. Trong giai đoạn thiết kế, bạn đã nhận diện được tính đối ngẫu của các biến cố kinh tế, đã thêm biến cố đơn đặt hàng, đã nhận diện và liên kết các tài nguyên cũng như những tác nhân gắn liền với các biến cố. Sau đó, bạn đã thêm các khóa chính, khóa ngoại, và bảng-quan-hệ. Bạn cũng đã dùng giai đoạn thiết kế để áp đặt những qui định trong nghiệp vụ và thêm các kiểm soát.

Sau khi thiết kế cơ sở dữ liệu, bạn đã tạo tác nó trong Access bằng cách tạo bảng và các quan hệ giữa chúng. Việc thêm các kiểm soát ở mức trường chẳng hạn mặt nạ nhập liệu, qui tắc kiểm tra hợp lệ, và trường bắt buộc đã tăng tính toàn vẹn dữ liệu. Bạn cũng đã học cách làm cho việc nhập liệu dễ dàng hơn bằng cách dùng bảng kiểu tồn kho Inventory Type.

Một khi hoàn thành việc tạo bảng và các quan hệ, bạn đã học cách tạo những truy vấn đơn giản cũng như phức tạp để dùng trong form. Chức năng AutoForm sẽ hữu ích khi tạo một form đơn giản và bạn đã dùng Form Wizard để tạo những form phức tạp, bao gồm form có subform. Bạn đã dùng combo box, các thuộc tính form và trường, macro đơn giản để thêm các kiểm soát bổ sung vào form.

Cuối cùng, bạn đã tạo các truy vấn từ dữ liệu bán hàng - thu tiền phục vụ cho những báo cáo tài chính ra bên ngoài cũng như để dùng nội bộ. Bạn đã học các dùng tham biến trong truy vấn để phát sinh doanh thu phục vụ cho báo cáo thu nhập và phát sinh nợ phải thu trong bảng cân đối. Hơn nữa, bạn đã tạo các truy vấn phức tạp để phát sinh thông tin dùng nội bộ: nợ phải thu theo khách hàng và các mặt hàng trong đơn đặt hàng còn để ngỏ.

Chủ Nhật, 13 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Đơn bán hàng còn để ngỏ

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Đơn bán hàng còn để ngỏ


Thông tin đơn bán hàng hết sức quan trọng để quản lý doanh nghiệp hiệu quả. Chẳng hạn, việc so sánh các đơn bán hàng với hàng tồn kho có sẵn sẽ giúp công ty biết khi nào đặt mua hàng mới. Hơn nữa, nhân viên quan hệ khách hàng, chẳng hạn nhân viên bán hàng, cần biết trạng thái của đơn bán hàng để trả lời cho khách hàng. Trong bài tập sau, bạn sẽ tạo 3 câu truy vấn nhằm phát sinh danh sách các mặt hàng khách hàng đã đặt nhưng chưa nhận đủ.

BÀI TẬP 8.50: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 1

Hãy tạo câu truy vấn đầu tiên để phát sinh danh sách các mặt hàng đã đặt trước hay vào một thời điểm xác định.

1. Kích CREATE tab và chọn Query Design.

2. Thêm tblSaleOrder tblReservation-SaleOrderInventory vào Table Pane.

3. Thêm các thuộc tính sau vào Criteria Pane: SaleOrderID từ tblSaleOrder; InventoryID QuantityOrdered từ tblReservationSaleOrderInventory; và SaleOrderDate từ tblSaleOrder.

4. Nhập <=[End of Period Date] (trước hay vào thời điểm cuối kỳ) vào ô Criteria cho SaleOrderDate.

5. Thêm các phụ đề. Mở Property Sheet từ nhóm Show/Hide. Đặt phụ đề Caption cho SaleOrderDate là Date Ordered. Kích QuantityOrdered trong Criteria Pane và đặt thuộc tính Caption của nó là Quantity Ordered.

6. Lưu câu truy vấn với tên qryOpenSaleOrders1-ItemsOrdered. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách 217 mặt hàng đã được đặt trước và vào ngày 2/29/2012. Đóng câu truy vấn.

BÀI TẬP 8.51: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 2

Hãy tạo truy vấn thứ hai bằng cách sao chép và hiệu chỉnh qryOpenSaleOrders1-ItemsOrdered.

1. Tạo một bản sao của qryOpenSaleOrders1-ItemsOrdered rồi đặt tên là qryOpenSaleOrders2-ItemsShipped.

2. Mở qryOpenSaleOrders2-ItemsShippedDesign View. Kích Show Table trong nhóm Query Setup rồi thêm tblSale tblOutflow-SaleInventory vào Table Pane.

3. Đổi thuộc tính Table cho cả hai SaleOrderID SaleOrderDate thành tblSale.

4. Đổi thuộc tính Table cho InventoryID QuantityOrdered thành tblOutflow-SaleInventory.

5. Đổi trường QuantityOrdered thành QuantitySold. Mở Property Sheet rồi đổi Caption thành Quantity Sold.

6. Đổi trường SaleOrderDate thành ShippingDate và đặt Caption là Shipping Date.

7. Kích Totals trong nhóm Show/Hide. Đổi ô Total cho QuantitySold thành Sum để kết hợp các lần gởi hàng từng phần của cùng hàng tồn kho từ cùng một hóa đơn. Để thuộc tính ShippingDate là GroupBy để hiển thị thời điểm gửi hàng trong kết quả truy vấn.

8. Xóa tblSaleOrder tblReservation-SaleOrderInventory khỏi Table Pane trong câu truy vấn. Lưu các thay đổi.

9. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách gồm 181 mặt hàng đã đặt trước và vào ngày 2/29/2012. Đóng câu truy vấn.

BÀI TẬP 8.52: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 3

Truy vấn thứ ba sẽ tính số lượng chưa giao của từng mặt hàng đã đặt bằng cách trừ QuantityShipped khỏi QuantityOrdered. Truy vấn này cần dùng hàm Nz và phép nối ngoại.

1. Tạo một truy vấn mới bằng Query Design trên dải CREATE. Thêm qryOpenSaleOrders1-ItemsOrderedqryOpenSaleOrders2-ItemsShipped vào Table Pane.

2. Tạo 2 phép nối ngoại, một cho SaleOrderID và một cho InventoryID. Kéo từng thuộc tính từ qryOpenSaleOrders1-ItemsOrdered sang qryOpenSaleOrders2-ItemsShipped. Kích nút radio 2 trong hộp thoại Join Properties cho từng liên kết. Các mũi tên kết quả cần trỏ đến qryOpenSaleOrders2-ItemsShipped.

3. Thêm tất cả các trường từ danh sách trường của qryOpenSaleOrders1-ItemsOrdered vào Criteria Pane.

4. Kéo SumOfQuantitySold từ qryOpenSaleOrders2-ItemsShipped vào ngay bên phải của QuantityOrdered. Kích kép ShippingDate trong qryOpenSaleOrders2-ItemsShipped để chuyển nó vào cạnh SaleOrderDate trên Criteria Pane.

5. Lưu truy vấn với tên qrySaleOrder3-OpenItems.

6. Kích Field trống đầu tiên trên Criteria Pane rồi mở Builder. Nhập UnfilledQuantity: [QuantityOrdered]-Nz([SumOfQuantitySold],0). Mở Property Sheet và đặt Caption cho UnfilledQuantity là Unfilled Quantity.

7. Lưu truy vấn. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách 217 mặt hàng đã đặt trước hay vào 2/29/2012. Hình 8.54 cho thấy trạng thái các mặt hàng được đặt vào 2/18/2012 và 2/19/2012. Để ý rằng số lượng chưa giao là 0 đối với những mặt hàng đã giao xong. Điều gì đã xảy ra nếu một hay nhiều số lượng chưa giao có giá trị bé hơn 0? Làm sao bạn có thể dùng truy vấn này để thực hiện việc kiểm soát?

Hình 5.84. Tập hợp động qrySaleOrder3-OpenItems bao gồm các mặt hàng đã giao.

8. Trở lại Design View. Gõ >0 làm tiêu chuẩn Criteria cho UnfilledQuantity. Chạy lại câu truy vấn dùng 2/29/2012. Bây giờ chỉ có 36 mặt hàng chưa giao xong được hiển thị. Lưu và đóng truy vấn.

Thứ Bảy, 12 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Nợ phải thu theo từng khách hàng

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Nợ phải thu theo từng khách hàng


Ngoài việc tính gộp nợ phải thu để báo cáo tài chính, công ty cũng cần theo dõi nợ phải thu theo từng khách hàng. Điều này có thể thực hiện bằng cách hiệu chỉnh các truy vấn nợ phải thu Accounts Receivable hiện có.

BÀI TẬP 8.48: HIỆU CHỈNH CÁC TRUY VẤN NỢ PHẢI THU ĐỂ PHÁT SINH NỢ PHẢI THU CHO TỪNG KHÁCH HÀNG – PHẦN 1

Hãy tạo truy vấn đầu tiên bằng cách sao chép và hiệu chỉnh qryAccRec1-SumOfSales.

1. Kích qryAccRec1-SumOfSales trong Navigation Pane, nhấn Ctrl+C, nhấn Ctrl+V, gõ qryARByCustomer1-SumOfSales vào hộp thoại Paste As để đặt tên truy vấn vừa chép, rồi kích OK.

2. Mở qryARByCustomer1-SumOfSalesDesign View. Kích và kéo CustomerID từ danh sách trường ở tblSale vào cột đầu tiên của Criteria Pane. Bạn đang dùng CustomerID để nhóm các đợt bán theo từng khách hàng.

3. Lưu các thay đổi. Kiểm thử câu truy vấn. Kích Run trong nhóm Results. Dùng 2/29/2012 cho thời điểm của bảng cân đối. Bạn cần có tổng cộng 38 khách hàng trong kết quả. Đóng câu truy vấn.

Hãy tạo truy vấn thứ hai bằng cách sao chép và hiệu chỉnh qryAccRec2-SumOfCR.

4. Tạo một bản sao của qryAccRec2-SumOfCR như đã làm ở Bước 1 rồi đặt tên bản sao là qryARByCustomer2-SumOfCR.

5. Mở qryARByCustomer2-SumOfCRDesign View. Kích và kéo CustomerID từ danh sách trường ở tblCashReceipt vào cột đầu tiên của Criteria Pane.

6. Lưu các thay đổi. Kiểm thử câu truy vấn bằng cách thi hành nó với thời điểm của bảng cân đối là 2/29/2012. Các tổng số bây giờ được liệt kê theo từng khách hàng. Bạn cần có tổng cộng 28 khách hàng trong kết quả. Đóng câu truy vấn.

BÀI TẬP 8.49: HIỆU CHỈNH CÁC TRUY VẤN NỢ PHẢI THU ĐỂ PHÁT SINH NỢ PHẢI THU CHO TỪNG KHÁCH HÀNG – PHẦN 2

Hãy tạo câu truy vấn thứ ba và cũng là cuối cùng, tương tự qryAccRec3-AccountsReceivable. Vì một số khách hàng trong cơ sở dữ liệu không có thông tin bán hàng cũng như thâu ngân, và một số khách hàng khác có thông tin bán hàng nhưng không có thông tin thâu ngân, bạn sẽ cần phép nối ngoại như đã dùng trong Bài tập 8.41.

1. Kích CREATE tab rồi kích Query Design trong nhóm Queries. Chọn qryCustomerInfo, qryARByCustomer1-SumOfSales, qryARByCustomer2-SumOfCR. Đóng hộp thoại.

2. Thêm các trường sau vào lưới QBE: CustomerID CustomerName từ qryCustomerInfo, SumOfSaleAmount từ qryARByCustomer1-SumOfSales, và SumOfCashReceiptAmount từ qryARByCustomer2-SumOfCR.

3. Lưu câu truy vấn với tên qryARByCustomer3-AccountsReceivable.

4. Kích trường trống đầu tiên trên Criteria Pane. Kích Builder trong nhóm Query Setup. Nhập AccountsReceivable: Nz([SumOfSaleAmount],0)-Nz([SumOfCashReceiptAmount],0). Bạn cần thêm hàm Nz vào SumOfSaleAmount vì có thể có những khách hàng trong cơ sở dữ liệu mà không có bất kỳ đợt bán nào liên quan đến họ.

5. Mở Property Sheet từ nhóm Show/Hide. Đặt Format là Currency. Gõ Accounts Receivable làm Caption cho trường mới tạo, AccountsReceivable. Lưu câu truy vấn.

6. Tạo một quan hệ nối ngoại. Kích và kéo CustomerID từ qryCustomerInfo đến CustomerID trong qryARByCustomer1-SumOfSales để tạo liên kết giữa 2 truy vấn. Kích kép liên kết để mở hộp thoại Join Properties. Chọn nút radio 2 vì bạn muốn tất cả khách hàng đều có trong kết quả thậm chí Pipefitters chưa bán cho họ món gì. Kích OK để đóng hộp thoại. Liên kết bây giờ sẽ là mũi tên trỏ từ qryCustomerInfo đến qryARByCustomer1-SumOfSales.

7. Lặp lại bước trước bằng cách kích và kéo CustomerID từ qryARByCustomer1-SumOfSales đến CustomerID trong qryARByCustomer2-SumOfCR. Câu truy vấn ở Design View bây giờ cần tương tự Hình 8.52.

Hình 8.52 qryARByCustomer3-AccountsReceivable ở Design View.

8. Lưu các thay đổi. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm của bảng cân đối. Một phần của tập động dynaset được thể hiện ở Hình 8.53. Kết quả cần có 52 khách hàng, kể cả những khách hàng chưa mua gì của Pipefitters trước và vào 2/29/2012. Đóng câu truy vấn.

Hình 8.53. Một phần của tập hợp động cho qryARByCustomer3-AccountsReceivable vào 2/29/2012.

THỬ NGHIỆM

Hãy thi hành qryARByCustomer3-AccountsReceivable dùng 2/29/2012  làm thời điểm cuối kỳ. Truy vấn hiện thời được sắp theo Customer #. Thử sắp kết quả dựa trên các tiêu chuẩn khác. Cách sắp xếp nào sẽ hữu ích cho đội ngũ quản lý của Pipefitters?

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Dẫn xuất các thông tin khác hữu ích cho việc ra quyết định

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Dẫn xuất các thông tin khác hữu ích cho việc ra quyết định


Hệ thông tin kế toán chứa rất nhiều thông tin hữu ích cho người không phải là kế toán viên. Các ghi chép kế toán truyền thống chỉ chứa thời điểm và số tiền của từng đợt bán và thâu ngân. Hệ thông tin kế toán chứa thông tin về từng đợt bán và thâu ngân nhiều hơn rất nhiều. Các bảng bán hàng Sale, đơn bán hàng Sale Order, tồn kho Inventory, và khách hàng Customer ở chương này có thể được kết hợp theo nhiều cách để cung cấp thông tin hữu ích cho các chức năng tiếp thị và quản lý chiến lược.

Thứ Sáu, 11 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Nợ phải thu Accounts Receivable

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Nợ phải thu Accounts Receivable


Không như doanh thu, không có trường Accounts Receivable (nợ phải thu) trong cơ sở dữ liệu. Nợ phải thu đơn thuần là khác biệt thời gian giữa các biến cố bán hàng và những biến cố thâu ngân liên quan. Vì thế, nợ phải thu có thể được xác định bằng cách tính tổng doanh thu các đợt bán rồi trừ đi tổng những lần thâu ngân liên quan đến các đợt bán đó. Vì phép tính hàng ngang (nghĩa là, tổng doanh thu – tổng các lần thâu ngân) không thể dùng kết quả của hàm gộp trong cùng câu truy vấn (chẳng hạn tổng doanh thu, tổng các lần thâu ngân), phép tính nợ phải thu sẽ cần 3 câu truy vấn: tổng doanh thu, tổng các lần thâu ngân liên quan đến các đợt bán, và tổng doanh thu trừ tổng các lần thâu ngân.

Loại ràng buộc thời gian nào bạn cần để tính các hạng mục trong bảng cân đối (balance sheet) như nợ phải thu? Nhớ rằng bảng cân đối sẽ báo cáo các cân đối kế toán của tài sản, nợ phải trả, và nguồn vốn tại một thời điểm xác định. Bạn phải tính tổng doanh thu và các lần thâu ngân liên quan từ lúc thành lập công ty cho đến thời điểm của bảng cân đối. Vì thế, các truy vấn liên quan đến bảng cân đối chỉ có ràng buộc về thời điểm kết thúc.

BÀI TẬP 8.46: DÙNG CÁC TRUY VẤN ĐỂ TÍNH NỢ PHẢI THU – TỔNG DOANH THU VÀ TỔNG NHỮNG LẦN THÂU NGÂN LIÊN QUAN ĐẾN CÁC ĐỢT BÁN

Hãy tạo câu truy vấn đầu tiên bằng cách sao chép qrySales và hiệu chỉnh các tiêu chuẩn về thời gian.

1. Kích qrySales1-Sales trong Navigation Pane, nhấn Ctrl+C, nhấn Ctrl+V, gõ qryAccRec1-SumOfSales (AccRec là viết tắt của Accounts Receivable, nợ phải thu) trong hộp thoại Paste As để đặt tên cho câu truy vấn vừa sao chép, rồi kích OK.

2. Mở qryAccRec1-SumOfSalesDesign View. Trong ô Criteria của ShippingDate, thay biểu thức hiện thời bằng <=[End of Period Date] (nhỏ hơn hay bằng thời điểm cuối kỳ).

3. Lưu. Kiểm thử câu truy vấn. Kích Run trong nhóm Results. Dùng 2/29/2012 cho thời điểm cuối kỳ, tức thời điểm của bảng cân đối. Tổng doanh thu đến thời điểm cuối kỳ sẽ là $67,301.90. Đóng câu truy vấn.

Hãy tạo câu truy vấn thứ hai để tính tổng những lần thâu ngân liên quan đến các đợt bán. Mặc dù bạn sẽ không dùng bất kỳ trường nào từ tblSale, phép nối nội (inner join, là phép nối mặc định, sẽ bao gồm các dòng ở đó các trường nối từ 2 bảng bằng nhau) giữa tblSale tblCashReceipt đảm bảo rằng chỉ những lần thâu ngân liên quan đến các đợt bán được tính tổng. Mặc dù hiện nay có vẻ vô dụng khi hạn chế những lần thâu ngân chỉ liên quan đến các đợt bán vì những lần thâu ngân mà Pipefitters có ở chương này đều từ các thương vụ, điều này sẽ cần thiết khi làm việc với hệ kế toán hoàn chỉnh có bao gồm những lần thâu ngân từ các biến cố khác. Bạn sẽ làm việc với một hệ thông tin kế toán hoàn chỉnh ở Chương 12.

4. Tạo một Query Design mới từ dải CREATE. Kích kép tblSale tblCashReceipt trong hộp thoại Show Table, đóng hộp thoại.

5. Kích kép CashReceiptAmount CashReceiptDate từ danh sách trường của tblCashReceipt.

6. Kích Totals trong nhóm Show/Hide.

7. Đổi ô Total cho CashReceiptAmount thành Sum.

8. Mở Property Sheet từ nhóm Show/Hide. Gõ Cash Receipts làm phụ đề Caption cho tổng những lần thâu ngân. Đóng Property Sheet.

9. Đổi ô Total cho CashReceiptDate thành Where. Trong ô Criteria, gõ <=[End of Period Date].

10. Lưu câu truy vấn với tên qryAccRec2-SumOfCR.

11. Kiểm thử câu truy vấn. Kích Run trong nhóm Results. Dùng 2/29/2012 cho thời điểm của bảng cân đối. tổng những lần thâu ngân liên quan đến các đợt bán sẽ là $41,201.05.

BÀI TẬP 8.47: DÙNG CÁC TRUY VẤN ĐỂ TÍNH NỢ PHẢI THU

Câu truy vấn thứ ba và cũng là cuối cùng sẽ dùng kết quả của 2 truy vấn trước để tính nợ phải thu. Nó tương tự với truy vấn thứ hai ở Bài tập 8.41, ngoại trừ là sẽ không dùng phép nối ngoại (outer join).

1. Tạo một Query Design mới từ dải CREATE. Trong hộp thoại Show Table, kích Queries tab, kích kép qryAccRec1-SumOfSalesqryAccRec2-SumOfCR. Đóng hộp thoại. Các trường trong 2 câu truy vấn này độc lập với nhau và không cần nối. Nếu chúng cần được nối thì bạn sẽ cần thêm một trường chung trong từng câu truy vấn để cung cấp một cách nối chúng.

2. Kích kép SumOfSaleAmount từ qryAccRec1-SumOfSales và SumOfCashReceiptAmount từ qryAccRec2-SumOfCR.

3. Lưu câu truy vấn với tên qryAccRec3-AccountsReceivable.

4. Kích trường trống đầu tiên trên Criteria Pane. Kích Builder trong nhóm Query Setup. Nhập AccountsReceivable: [SumOfSaleAmount]-Nz([SumOfCashReceiptAmount],0). Nếu không có lần thâu ngân nào ở chu kỳ được chỉ định trong câu truy vấn, hàm Nz sẽ thay giá trị rống null bằng tham biến thứ hai, là 0, để tính toán có kết quả hợp lệ.

5. Mở Property Sheet từ nhóm Show/Hide. Gõ Accounts Receivable làm phụ đề Caption cho trường vừa tạo, AccountsReceivable.

6. Lưu câu truy vấn. Kiểm thử hàm Nz bằng cách thi hành câu truy vấn và dùng 1/27/2012 là thời điểm của bảng cân đối. Kết quả sẽ là $14,615.31 (xem Hình 8.51).

Hình 8.51 Các tập hợp động của qryAccRec3-AccountsReceivable.

7. Bây giờ chạy lại câu truy vấn dùng 2/29/2012 là thời điểm của bảng cân đối. Kết quả sẽ là $26,100.85. Để ý rằng doanh thu và thâu ngân ở Hình 8.51 khớp với kết quả từ các truy vấn đơn lẻ.

Tại sao hộp thoại thời điểm cuối kỳ End of Period Date lại xuất hiện trong qryAccRec3-AccountsReceivable? Mặc dù bạn không dùng tham biến thời điểm trong truy vấn này nhưng bạn đã dùng kết quả từ các truy vấn có chứa tham biến thời điểm. Nếu thế thì tại sao hộp thoại End of Period Date chỉ xuất hiện một lần? Vì bạn đã dùng cùng tên tham biến trong các truy vấn nên bạn chỉ cần một tham biến, vì thế thời điểm nhập vào được dùng cho cả 2 truy vấn. Vấn đề này thậm chí trở nên quan trọng hơn khi tạo một báo cáo tài chính và bảng cân đối hoàn chỉnh trong Chương 12 để đảm bảo rằng mọi hạng mục trong báo cáo tài chính được tính bằng việc dùng cùng một thời điểm.

Thứ Năm, 10 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Doanh thu

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Doanh thu


Các báo cáo tài chính sẽ trình bày thu nhập và chi phí trong một chu kỳ thời gian. Chẳng hạn, các hạng mục trong báo cáo thu nhập, như doanh thu, được báo cáo trong giai đoạn từ đầu kỳ đến cuối kỳ. Vì thế, câu truy vấn để tính doanh thu sẽ chứa một ràng buộc thời gian. Hơn nữa, ràng buộc thời gian sẽ dùng các tham biến thời điểm bắt đầu và thời điểm kết thúc để cho phép người dùng thay đổi chu kỳ thời gian mà không cần sửa câu truy vấn.

BÀI TẬP 8.45: TẠO TRUY VẤN DOANH THU

1. Trên dải CREATE, tạo một truy vấn mới ở Design View. Kích kép tblSale trong hộp thoại Show Table rồi đóng hộp thoại.

2. Kích kép SaleAmount ShippingDate từ danh sách trường của tblSale để thêm chúng vào lưới QBE (đây là một tên khác của Criteria Pane).

3. Kích Totals trong nhóm Show/Hide. Đổi ô Total cho SaleAmount thành Sum.

4. Mở Property Sheet. Kích Property Sheet trong nhóm Show/Hide. Gõ Sales làm phụ đề Caption cho tổng doanh thu. Đóng Property Sheet.

5. Đổi ô Total cho ShippingDate thành Where. Trong ô Criteria, gõ between [Beginning of Period Date] and [End of Period Date] (giữa [Thời điểm đầu kỳ] và [Thời điểm cuối kỳ]). Doanh thu sẽ được tính tổng giữa (và kể cả) các thời điểm do người dùng qui định.

6. Lưu câu truy vấn với tên qrySales1-Sales. Dùng 2/1/2012 làm thời điểm đầu kỳ và 2/29/2012 (2012 là năm nhuận) làm thời điểm cuối kỳ.

7. Kiểm thử câu truy vấn bằng cách thi hành nó. Kích Run trong nhóm Results. Tổng doanh thu toàn kỳ sẽ là $44,861.86.

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Dẫn xuất thông tin báo cáo tài chính

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Dẫn xuất thông tin báo cáo tài chính


Giờ đây bạn đã tạo thành công qui trình kinh doanh bán hàng - thu tiền trong Access, cho phép nhập mọi thông tin vào hệ thống liên quan đến đơn bán hàng, gửi hàng (bán hàng), và thâu ngân. Đây là lúc khai thác năng lực của cơ sở dữ liệu quan hệ để phát sinh thông tin báo cáo tài chính. Hai hạng mục chủ yếu trong báo cáo tài chính chỉ chịu ảnh hưởng bởi các hoạt động trong qui trình bán hàng - thu tiền là doanh thu (sales) và nợ phải thu (accounts receivable).

Ta sẽ dùng qui ước đặt tên sau cho các truy vấn liên quan đến báo cáo tài chính, thường cần nhiều truy vấn để được kết quả cuối cùng: qryQueryGroupName#-QueryName. Chẳng hạn, truy vấn thứ nhất tính tổng nợ phải thu từ các đợt bán, vì vậy ta đặt tên là qryAccRec1-SumOfCR (CR là viết tắt của Cash Receipts, những lần thâu ngân). Điều này giúp bạn dễ theo các bước trong tài liệu và rà soát công việc trong cơ sở dữ liệu.

Thứ Tư, 9 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Form nhập liệu thâu ngân Cash Receipt Entry

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Form nhập liệu thâu ngân Cash Receipt Entry


Khi kế toán viên của Pipefitters nhận một chi phiếu từ khách hàng, họ phải có khả năng so sánh số tiền nhận được cho một hóa đơn cụ thể với dư nợ (balance due) trên đợt bán đó. Nếu số tiền thu ít hơn trị giá bán hàng, kế toán viên phải kiểm tra xem khách hàng được phép chi trả từng phần hay không. Nếu số tiền thu nhiều hơn dư nợ, kế toán viên phải tìm lý do tại sao có khác biệt đó. Ngoài ra, sẽ hữu ích khi thấy lịch sử chi trả của khách hàng đối với hóa đơn liên quan đến đợt thâu ngân hiện thời. Vì thế, bạn sẽ tạo một truy vấn cho form để tính dư nợ hiện thời theo hóa đơn. Dư nợ sẽ được dùng trong form nhập liệu thâu ngân Cash Receipt Entry như một kiểm soát. Vì truy vấn dư nợ phải được chạy lại để cân đối khoản nợ, bạn sẽ thêm một nút vào form để cập nhật dư nợ. Nếu không, dư nợ sẽ không cập nhật cho đến khi form được đóng và mở lại.

BÀI TẬP 8.40: TẠO TRUY VẤN ĐỂ TÍNH DƯ NỢ HÓA ĐƠN – TỔNG NHỮNG LẦN THÂU NGÂN TRƯỚC

Trong bài tập này bạn sẽ tạo truy vấn đầu tiên trong hai truy vấn. Truy vấn thứ nhất sẽ dùng một hàm gộp (aggregate function) để tính tổng số tiền đã nhận cho từng hóa đơn. Truy vấn thứ hai (Bài tập 8.41) sẽ dùng tính toán hàng ngang (horizontal computation) để trừ tổng số tiền đã nhận ra khỏi trị giá hóa đơn để được dư nợ. Cần hai truy vấn vì hàm gộp sẽ kết hợp (trong trường hợp này là tính tổng) nhiều giá trị trong một cột (một trường thuộc nhiều bản ghi), và phải có trước khi tính toán hàng ngang dùng số liệu gộp này để thực hiện một tính toán với nhiều trường trên cùng một dòng. Vì thế, quy tắc chung trong cơ sở dữ liệu là thực hiện các hàm gộp và tính toán hàng ngang trong các truy vấn riêng.

1. Kích CREATE tab rồi kích Query Design trong Queries group. Kích kép tblCashReceipt trong hộp thoại Show Table. Đóng hộp thoại.

2. Kích kép InvoiceID CashReceiptAmount từ danh sách trường trong tblCashReceipt.

3. Kích Totals (ký hiệu tổng) trong nhóm Show/Hide. Vì bạn muốn tính tổng số tiền đã nhận cho từng đợt bán, hãy để nguyên ô Total cho InvoiceID là Group By. Đổi ô Total cho CashReceiptAmount thành Sum.

4. Mở Property Sheet. Kích Property Sheet trong nhóm Show/Hide. Gõ Prior Receipts làm phụ đề Caption cho tổng những lần thâu ngân. Đóng Property Sheet.

5. Lưu truy vấn với tên qrySumOfCashReceiptsByInvoice.

6. Thi hành truy vấn. Bạn cần có 79 hóa đơn với những lần thâu ngân trước. Đóng truy vấn.

BÀI TẬP 8.41: TẠO TRUY VẤN ĐỂ TÍNH DƯ NỢ HÓA ĐƠN – TÍNH DƯ NỢ

1. Tạo truy vấn mới với Query Design. Kích kép tblSale trong hộp thoại Show Table, kích Queries tab, rồi kích kép qrySumOfCashReceiptsByInvoice. Đóng hộp thoại.

2. Kích kép liên kết giữa tblSale và qrySumOfCashReceiptsByInvoice. Kích nút radio thứ hai trong hộp thoại Join Properties (xem Hình 8.48). Kích OK để đóng. Để ý mũi tên trỏ từ bảng trái sang bảng phải. Cách này gọi là nối ngoại trái (left outer join). Ta sẽ thảo luận về tầm quan trọng của nó ngay sau đây.

Hình 8.48. Hộp thoại nối thuộc tính Join Properties.

3. Kích kép InvoiceID, SaleAmount, và CustomerID từ tblSale trong Table Pane; kích kép SumOfCashReceiptAmount trong qrySumOfCashReceiptsByInvoice.

4. Lưu truy vấn với tên qryBalanceDueFromCustomer.

5. Kích trường Field trống đầu tiên trên Criteria Pane. Kích Builder trong nhóm Query Setup. Nhập BalanceDue: [SaleAmount]-Nz([SumOfCashReceiptAmount],0). Ở Bước 2, bạn đã tạo một phép nối ngoại (outer join) sao cho mọi hóa đơn trong tblSale sẽ được chọn cho dù không có lần thâu ngân nào tương ứng, điều này thường xảy ra với những đợt bán hiện thời vì khách hàng chưa chi trả. Nz là hàm Null-to-zero (chuyển rỗng thành 0). Nếu chưa có chi trả nào ứng với một đợt bán, giá trị của SumOfCashReceiptAmount sẽ bằng null (rỗng), từ đó sẽ ngăn Access tính hiệu số. Hàm Nz sẽ thay giá trị null bằng tham biến thứ hai trong hàm, trường hợp này là 0 để tính toán có được kết quả hợp lệ.

6. Mở Property Sheet trong nhóm Show/Hide. Gõ Balance Due làm phụ đề Caption cho trường BalanceDue mới tạo.

7. Kích kép ShippingDate từ tblSale trong Table Pane. Đặt Caption trên Property Sheet là Invoice Date.

8. Lưu truy vấn rồi thi hành nó. Để ý có 90 hóa đơn – 79 hóa đơn đầu tiên có dư nợ 0 (giống 79 hóa đơn từ qrySumOfCashReceiptsByInvoice) và 11 hóa đơn cuối chưa được chi trả (không có lần thâu ngân nào gắn với chúng). Đóng truy vấn.

BÀI TẬP 8.42: TẠO FORM NHẬP LIỆU THÂU NGÂN CASH RECEIPT ENTRY

Form nhập liệu thâu ngân Cash Receipt Entry sẽ dùng thiết kế form/subform. Phần đầu của form nhập liệu thâu ngân Cash Receipt Entry sẽ chứa dữ liệu liên quan đến hóa đơn từ qryBalanceDueFromCustomer. Không thể sửa trường nào ở đây vì chúng chỉ để tham khảo. Form chính còn hiển thị thông tin khách hàng (chẳng hạn tên và địa chỉ) mà bạn sẽ thêm vào sau khi chạy Form Wizard vì Form Wizard sẽ thêm thông tin khách hàng vào subform. Đây là vấn đề vì subform chỉ nên chứa các trường từ tblCashReceipt. Các trường CustomerID và InvoiceID sẽ được liên kết với form chính để tự động đổ dữ liệu vào các trường subform này, đảm bảo rằng việc thâu ngân được ghi nhận đúng theo khách hàng và hóa đơn. Việc dùng dữ liệu bán hàng trong qryBalanceDueFromCustomer sẽ đóng vai trò kiểm soát vì các lần thâu ngân nhập vào form phải liên kết với các đợt bán có mặt trong tblSale.

1. Kích Form Wizard trong nhóm Forms trên CREATE tab. Kích Query: qryBalanceDueFromCustomer trong Tables/Queries combo box. Kích >> để chọn tất cả các trường từ truy vấn.

2. Kích mũi tên xuống của Tables/Queries combo box, rồi kích Table: tblCashReceipt từ danh sách. Kích >> để chuyển tất cả các trường từ Available Fields sang danh sách Selected Fields.

3. Kích Next. Kích qryBalanceDueFromCustomer trong ô danh sách How do you want to view your data? (nếu nó chưa được chọn) để đảm bảo việc gom nhóm đúng.

4. Kích Next. Chọn Datasheet cho định dạng subform.

5. Kích Next. Kích kép ô Form, gõ frmCashReceipt để đặt tên form, tab sang ô Subform rồi gõ fsubCashReceipt. Kích nút Finish. Đóng form.

BÀI TẬP 8.43: HOÀN THÀNH FORM NHẬP LIỆU THÂU NGÂN CASH RECEIPT

Thay đổi trên subform.

1. Mở fsubCashReceipt ở Design View. Đổi nhãn của CashReceiptAmount thành Amount, đổi nhãn của CashReceiptDate thành Date, đổi nhãn của CashAccountID thành Cash Acct. #.

2. Các giá trị CustomerID và InvoiceID sẽ được gán nhờ liên kết giữa subform và form. Hãy làm chúng không thay đổi được như đã làm ở Bài tập 8.26.

3. Hợp lý hóa giao diện subform. Chọn Form từ Property Sheet combo box. Trên Format tab, đổi thuộc tính Navigation Buttons thành No, và đổi thuộc tính Scroll Bars thành Neither. Lưu các thay đổi.

4. Điều chỉnh độ rộng cột của subform datasheet. Chuyển sang Datasheet View. Kích Datasheet Selector (xem Hình 8.49), kích More menu trong nhóm Records trên dải HOME, chọn Field Width, rồi kích nút Best Fit để làm đầu đề cột và dữ liệu đều khả kiến. Lưu và đóng subform.

Hình 8.49 fsubCashReceipt ở Datasheet View.

Thêm thông tin khách hàng vào form.

5. Mở frmCashReceipt ở góc nhìn Design và mở Property Sheet. Chọn Form từ Property Sheet combo box rồi kích Data tab. Kích nút Query Builder (dấu ba chấm) trong thuộc tính Record Source. Kích Show Table trong nhóm Query Setup, rồi thêm qryCustomerInfo vào Table Pane. Liên kết qryCustomerInfo với tblSale bằng cách kích và kéo CustomerID từ qryCustomerInfo đến CustomerID trong tblSale. Nếu quan hệ vừa tạo không trực tiếp trỏ đến 2 bảng, kích kép quan hệ nhằm mở Join Properties để sửa sai.

6. Thêm các trường sau vào Criteria Pane: CustomerName, CustomerAddress1, CustomerAddress2, CityStateZip, CustomerTelephone, và CustomerPrimaryContact. Đóng và lưu các thay đổi. Mở qryBalanceDueFromCustomer ở Datasheet View. Để ý rằng các trường bạn đã thêm vào truy vấn từ trong form đã thay đổi thường trực qryBalanceDueFromCustomer. Nhớ rằng bất kỳ thay đổi bạn tạo trong truy vấn sẽ tác động đến forms và các đối tượng cơ sở dữ liệu nào sử dụng truy vấn đó.

7. Sao chép các thành phần điều khiển từ frmSale. Mở frmSale Design View. Chọn các thành phần điều khiển cho các trường mà bạn vừa thêm vào truy vấn Record Source của form, và nhãn Primary Contact bằng cách nhấn và giữ phím Shift rồi kích các thành phần điều khiển. Nhấn Ctrl+C, trở về frmCashReceipt, di chuyển subform xuống dưới 2,5cm (1 inch), kích phần Detail, rồi kích Ctrl+V, canh trái nhãn Primary Contact. Đóng frmSale. Hãy dùng Hình 8.50 làm hướng dẫn.

Hình 8.50 Form nhập liệu thâu ngân Cash Receipt Entry ở Design View với Subform Field Linker đang mở.

8. Làm tất cả các thành phần điều khiển mà không phải khách hàng thì không thay đổi được như đã làm ở Bài tập 8.26. Nếu chọn tất cả 6 thành phần điều khiển, bạn có thể đồng thời thay đổi thuộc tính của tất cả các thành phần điều khiển này.

9. Liên kết CustomerID từ subform đến form. Chọn fsubCashReceipt từ Property Sheet combo box, kích Data tab. Kích thuộc tính Link Master Fields rồi kích nút Builder để mở Subform Field Linker. Thêm CustomerID vào cả 2 cột Master Fields và Child Fields (xem Hình 8.50). Kích OK.

10. Kết thúc việc soạn thảo form bằng cách dùng Hình 8.50 làm hướng dẫn. Canh trái dữ liệu hóa đơn. Hơn nữa, bạn sẽ cần định cỡ subform và có thể khớp tự động (autofit) các cột một lần nữa (bạn có thể làm bên trong frmCashReceipt). Hãy bỏ qua nút lệnh trên form. Bạn sẽ thêm nó vào ở bài tập kế.

11. Lưu form. Xem form ở Form View. Để ý Customer # và Invoice # sẽ khớp với các dòng giấy báo chuyển tiền khi chuyển đến các bản ghi tiếp theo.

BÀI TẬP 8.44: DÙNG MACRO ĐỂ CẬP NHẬT DƯ NỢ TRONG FORM NHẬP LIỆU THÂU NGÂN CASH RECEIPT ENTRY

Tạo macro cập nhật.

1. Từ CREATE tab, kích Macro trong nhóm Macros & Code. Bạn sắp sửa tạo macro một-hành-động (one-action macro), tên là Requery, sẽ thi hành truy vấn bên trong đối tượng đang hoạt động là frmCashReceipt. Nhớ rằng lệnh này sẽ trở về bản ghi đầu tiên trong form. Việc trở về bản ghi hiện thời sẽ cần kỹ năng lập trình vượt quá phạm vi của tài liệu này. Gõ Requery vào Add New Action combo box rồi nhấn phím Enter. Đừng thêm gì vào ô Control Name.

2. Đóng macro và đặt tên là mcrRerunQuery.  Để ý rằng ta đã dùng mcr để ký hiệu các macros.

3. Mở frmCashReceipt ở Design View. Trên dải DESIGN, kích Button trong nhóm Controls. Di chuyển con trỏ đến vị trí nút ở Hình 8.50 rồi kích kép để khởi động Command Button Wizard.

4. Kích Miscellaneous trong danh sách Categories, kích Run Macro trong danh sách Actions, rồi kích Next.

5. Vì mcrRerunQuery là macro duy nhất, nên nó đã được chọn, vì thế chỉ cần kích Next. Kích nút radio Text rồi gõ Update Balance Due vào ô văn bản. Kích Next.

6. Đặt tên nút là cmdUpdateBalanceDue. Định cỡ và di chuyển nút nếu cần. Lưu rồi đóng form.

THỬ NGHIỆM

Hãy kiểm thử nút Update Balance Due trong frmCashReceipt. Kích kép frmCashReceipt trong Navigation Pane. Đến bản ghi cuối cùng. Trị giá hóa đơn Amount là $786.35 và chưa có chi trả trước đó nên dư nợ Balance Due là $786.35. Thử thêm bản ghi sau: RA # 999999, Cash Acct. 101, Employee # 120, Amount $500, Customer Check # 7777, và Date 9/9/2012. Kích nút Update Balance Due. Để ý rằng form trở về bản ghi đầu tiên. Hãy đến bản ghi cuối cùng. Các lần thâu ngân trước đây Prior Receipts bây giờ là $500.00 và dư nợ Balance Due đã được cập nhật thành $286.35. Xóa RA #999999 bằng cách kích nút chọn bản ghi (record selector) rồi nhấn phím Delete.