1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình tin học quản lý phần 8 pot

18 338 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 448,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với các “chương trình” được tạo ra bởi VBA, ứng dụng được phát triển bằng Access sẽ có được các ưu điểm như sau: - Ứng dụng dễ bảo trì hơn: Như đã trình bày ở trên, một ứng dụng được phá

Trang 1

4.5.2 Report design view

Như đã nói ở trên, report wizard là một công cụ rất hữu hiệu để người dùng có thể nhanh chóng tạo ra một báo cáo đơn giản Tuy nhiên trong thực tế, nhu cầu của người dùng là mong muốn có được một báo cáo phức tạp hơn Để làm được điều này, có thể sử dụng công cụ Report Design view của Access

Chúng ta sẽ xem xét việc sử dụng report design view để tạo một báo cáo về tình hình nhân

sự như ở phần trước Các bước tiến hành các bước sau:

Bước 1: Từ cửa sổ chính của Access, chọn Report trong cửa sổ chọn đối tượng Tiếp theo, chọn New, sau đó chọn Design view hoặc chọn “Create report by using design view” trong vùng bên phải Access sẽ mở một cửa sổ cho phép người dùng thiết kế báo cáo cho mình Cũng giống như trong môi trường thiết kế form, cửa sổ thiết kế báo cáo cũng gồm 3 thành phần chính là: (1) Vùng soạn thảo báo cáo

(2) Hộp thoại công cụ - chứa các đối tượng được sử dụng trong báo cáo

(3) Hộp thoại thuộc tính - cho phép người dùng thiết lập các thuộc tính cho báo cáo và các đối tượng trên báo cáo

Trang 2

Bước 2: Thiết lập nguồn dữ liệu cho báo cáo: Như đã trình bày ở trên, báo cáo là một công

cụ lấy dữ liệu từ các bảng, các truy vấn để hiển thị cho người dùng xem, in ấn Do đó ta phải thiết lập nguồn dữ liệu cho báo cáo (lựa chọn bảng, truy vấn để báo cáo lấy dữ liệu ra) Để làm được điều này, trên cửa sổ thuộc tính, chọn Report trong danh sách đẩy xuống và chọn tab “Data”

Trên dòng thuộc tính Record Source, ta có thể chọn nguồn dữ liệu từ danh sách các đối tượng có sẵn của Access (các bảng, các truy vấn) bằng cách click chuột vào nút mũi tên để

Trang 3

Access liệt kê các đối tượng hoặc click chuột vào biểu tượng để xây dựng một truy vấn mới làm nguồn dữ liệu cho báo cáo Thông thường, người dùng hay chọn phương án thứ 2 để có thể xây dựng 1 nguồn dữ liệu như mong muốn Khi đó Access sẽ mở một môi trường để người dùng xây dựng một truy vấn mới cho báo cáo Cũng giống như qui trình tạo truy vấn đã đề cập đến ở phần trên, chúng ta sẽ chọn các bảng có liên quan để lấy dữ liệu ra cho báo cáo Giả sử ta có truy vấn như sau:

Sau khi tạo xong truy vấn, đóng cửa sổ soạn thảo truy vấn lại Khi đó, Access sẽ hỏi có ghi lại sự thay đổi không Bấm Yes để xác nhận sự thay đổi:

Đến đây, thuộc tính Record source của báo cáo đã được Access xây dựng Nếu ta để ý thì

đó chính là một câu lệnh SQL

Bước 3: Trình bày dữ liệu lên báo cáo Đây là bước người dùng tự định nghĩa khuôn dạng

và kiểu dáng của báo cáo mà mình mong muốn Có một số lưu ý sau:

- Report header là phần chứa tiêu đề của cả Report Ví dụ chúng ta đặt tên cho báo cáo là

“Danh sách nhân viên” thì tiêu đề này được đặt trong report header

- Page header là phần chứa tiêu đề của các cột trong báo cáo Tiêu đề này được lặp lại nếu

độ dài của report dài quá 1 trang

Sử dụng các đối tượng trên thanh công cụ Toolbox để xây dựng báo cáo (giả sử ta muốn tạo một báo cáo có khuôn dạng như sau):

Trang 4

Ở đây chúng ta có một số lưu ý sau:

- Ở phần Page header, ta sử dụng tất cả các nhãn (Label) để đặt tên cho các cột dữ liệu Ở đây ta muốn có một báo cáo gồm các cột: STT, Họ và tên nhân viên, Phòng mà nhân viên làm việc và Giới tính của nhân viên Các nhãn này sẽ được hiển thị ở đầu của tất cả các trang

- Ở phần Detail, cột STT ta đưa vào một textbox và thiết lập các thuộc tính Control Source

= 1, Running sum là Over group (Đánh số thư tự) Các cột còn lại ta đưa vào các textbox

và thiết lập các thuộc tính Control source của từng textbox là các tên trường tương ứng trong truy vấn vừa tạo ra ở trên

- Ở dưới phần Report footer ta thêm vào một dòng để đếm tổng số nhân viên trong công ty

Để làm được điều này ta thêm vào một nhãn để ghi dòng chữ “Tổng cộng” và một textbox

để tính tổng số nhân viên Ta thiết lập thuộc tính Control source cho textbox bằng biểu thức =Sum(TenNhanvien)

Trang 5

Đến đây ta đã tạo được một báo cáo đơn giản về tình hình nhân sự của công ty bằng công

cụ report design view Bước cuối cùng là ghi lại báo cáo đã tạo Báo cáo khi chạy sẽ như sau:

Trên đây chỉ là một ví dụ đơn giản để minh họa cho bạn đọc về cách tạo một báo cáo Trong thực tế, Access còn cho phép tạo ra nhiều ứng dụng phức tạp và mạnh hơn rất nhiều Để bạn đọc

có thể nghiên cứu và tự mình tạo ra được các ứng dụng với MS Access, chúng ta sẽ thực hành 2 bài tập cụ thể ở cuối phần Trong chương tiếp theo, chúng ta sẽ xem xét sâu hơn về khía cạnh lập trình của Access, đó là lập trình ứng dụng VBA và lập trình CSDL

Trang 6

CHƯƠNG 5: TỔNG QUAN VỀ LẬP TRÌNH ỨNG DỤNG

VBA VÀ DAO

VBA - Visual Basic for Application là một công cụ rất quen thuộc đối với người dùng bộ sản phẩm MS Office Nhiều khi, trong Access, chúng ta muốn ứng dụng thực hiện các hành động

mà bản thân Access không thể đáp ứng được Khi đó, Visual basic là một công cụ rất hữu ích để chúng ta có thể thực hiện được các yêu cầu này

Lập trình ứng dụng VBA thực chất là việc người phát triển ứng dụng Access “lập trình” để tạo ra các đoạn mã nguồn của riêng mình bằng ngôn ngữ lập trình Visual basic Với các “chương trình” được tạo ra bởi VBA, ứng dụng được phát triển bằng Access sẽ có được các ưu điểm như sau:

- Ứng dụng dễ bảo trì hơn: Như đã trình bày ở trên, một ứng dụng được phát triển bằng Access có thể chứa đựng rất nhiều Macro để đáp ứng các tình huống trên form và report

và như vậy, ứng dụng của chúng ta sẽ rất khó bảo trì và sửa chữa Ngược lại, nếu được phát triển bằng các đoạn mã lệnh Visual basic thì các đoạn mã lệnh đó sẽ có thể được di chuyển một cách dễ dàng sang ứng dụng khác

- Tạo được các thư viện hàm riêng: Bên cạnh các hàm được xây dựng sẵn (built in function), được sử dụng để thực hiện các tính toán cơ bản, lập trình VBA còn có thể cho phép chúng ta tự tạo ra các hàm riêng cho mình để thực hiện các phép tính toán phức tạp

và có thể tái sử dụng trong các ứng dụng về sau

- Xử lý lỗi: Khi có một lỗi không mong đợi xảy ra đối với ứng dụng, Access sẽ hiển thị một thông báo lỗi - một thông báo lỗi mà người dùng thường khó có thể hiểu được Với VBA, chúng ta có thể “bắt” các lỗi này và hiển thị các thông báo lỗi của chính mình hay xử lý lỗi theo cách của mình

- Tạo và thao tác với các đối tượng: Trong hầu hết các trường hợp, chúng ta thường tìm cách dễ nhất để tạo và sửa một đối tượng trong cửa sổ Design view của nó Tuy nhiên, trong một số trường hợp, bạn có thể muốn thao tác, định nghĩa một đối tượng bằng mã chương trình Dùng Visual basic chúng ta có thể thao tác trên tất cả đối tượng trong cơ sở

dữ liệu, bao gồm cả chính nó

- Thực hiện các hành động ở cấp độ hệ thống: Từ một ứng dụng Access, chúng ta có thể dùng “hành động” - action trên RunApp trong một macro để thi hành một ứng dụng Windows based (ứng dụng chạy trên Windows) nhưng những macro đó không thể thực hiện được những điều ở ngoài Access Visual basic cho phép chúng ta thực hiện được những điều mà macro không thể làm được như: kiểm tra sự tồn tại của file, gọi các hàm trong các thư viện liên kết động (DLL) của Windows v.v

- Thao tác với từng bản ghi - record: Với Visual basic, chúng ta có thể “duyệt” lần lượt từng bản ghi trong một tập các bản ghi và thực hiện các thao tác mong muốn trên bản ghi

cụ thể nào đó Với macro, chúng ta chỉ có thể làm việc một lúc với toàn bộ các record

Trang 7

- Truyền các đối số tới mã nguồn: Đối số là một giá trị cung cấp thêm thông tin theo yêu cầu của một số hoạt động (hàm, thủ tục) Chúng ta có thể đặt các đối số cho các hành động trong cửa sổ macro khi tạo một macro nhưng không thể thay đổi chúng khi macro đang thi hành Tuy nhiên, với Visual basic, chúng ta có thể truyền các đối số đến mã nguồn tại thời điểm nó đang thi hành Ngoài ra, chúng ta còn có thể sử dụng biến cho các đối số - điều này không thể thực hiện được trong macro Đây chính là một sự linh động rất lớn trong việc điều khiển mã nguồn sẽ thi hành như thế nào

5.1 CÁC KIỂU DỮ LIỆU VÀ KHAI BÁO

Cũng giống như tất cả các ngôn ngữ lập trình khác, VBA cung cấp một loạt các kiểu dữ liệu

cơ bản sau:

- Kiểu dữ liệu Variant: Kiểu dữ liệu này có thể cất giữ nhiều loại dữ liệu Giống như một text box trên một form, một biến variant có khả năng cất giữ các số, chuỗi, ngày tháng hay giá trị null Bạn không cần phải chuyển đổi kiểu dữ liệu khi gán chúng vào một biến variant Visual basic sẽ tự động thực hiện các chuyển đổi cần thiết

- Các kiểu dữ liệu số: Byte, Integer, Long, Single, Double Các kiểu dữ liệu này cho phép lưu trữ các giá trị số với độ lớn tối đã khác nhau

- Kiểu dữ liệu xâu ký tự - String: Là kiểu ký tự dùng để lưu trữ các giá trị là một chuỗi xâu

ký tự

- Kiểu dữ liệu logic - Boolen: Là kiểu dữ liệu chỉ có 2 giá trị Đúng và Sai

- Kiểu dữ liệu ngày tháng - Date: Lưu trữ giá trị ngày tháng và thời gian

- Dữ liệu kiểu đối tượng - Object: Các kiểu dữ liệu đối tượng được cất giữ trong các địa chỉ

32 bit để tham chiếu tới các đối tượng trong một ứng dụng hay trong các ứng dụng khác Một biến khai báo là Object có thể được gán (bằng các phát biểu Set) để tham chiếu tới bất cứ đối tượng đã được nhận biết bởi ứng dụng

- Kiểu dữ liệu tiền tệ - Currency: Bản chất là kiểu số có độ lớn 8 byte Kiểu dữ liệu tiền tệ luôn luôn có ký hiệu tiền tệ đi kèm

5.2 BIẾN VÀ KHAI BÁO BIẾN

Biến (variable) là một đối tượng được sử dụng để cất giữ các giá trị trong khi thi hành mã nguồn Visual basic Cú pháp khai báo 1 biến như sau:

Dim/Public <tên biến> [As Kiểu]

Trong đó:

- Dim/Public: là từ khoá của Visual basic để chỉ ra rằng đây là câu lệnh khai báo biến Chúng ta sẽ chỉ sử dụng 1 trong 2 từ khoá Dim hay Public tuỳ theo từng ngữ cảnh cụ thể Khi nào sử dụng từ khoá nào sẽ được đề cập ở phần phạm vi của biến dưới đây

- <tên biến>: là tên mà người dùng đặt cho biến (theo qui tắc đặt tên biến của ngôn ngữ lập trình) Trong mã chương trình ta sẽ không sử dụng dấu < và >

- As: Từ khoá của Visual basic chỉ ra kiểu của biến

- Kiểu: Kiểu của biến

Trang 8

Cặp dấu [] chỉ ra rằng phần nằm bên trong nó là tuỳ chọn Người dùng có thể chỉ ra một cách tường minh kiểu của biến hoặc không (nếu không, Visual basic ngầm hiểu kiểu của biến là variant)

Trong Visual basic, khác với một số ngôn ngữ lập trình khác (như Pascal hay C), chúng ta

có thể không nhất thiết phải khai báo biến trước khi sử dụng nó Đây chính là cách “không khai báo biến tường minh” Tuy nhiên, để chương trình dễ “đọc” và dễ quản lý, chúng ta có thể khai báo tường minh các biến trước khi sử dụng nó

Ví dụ:

Dim strName as string

strName = ‘Nguyễn Văn An”

Ở đây biến strName được sử dụng sau khi đã khai báo Do đó nó được coi là khai báo tường minh Ngược lại, nếu trước đó ta chưa khai báo bằng câu lệnh Dim ở trên thì biến strName được

sử dụng theo kiểu không khai báo tường minh

Khi được khai báo, một biến sẽ được sinh ra trong Visual basic và sẽ tồn tại trong một phạm

vi nào đó, tức là nó sẽ có giá trị trong một vùng nào đó đã được xác định trước Ngoài phạm vi đó, biến sẽ không còn có tác dụng Trong Visual basic, chúng ta có 2 phạm vi cho biến đó là:

- Biến cục bộ: Là biến được khai báo bởi từ khoá Dim Biến này chỉ tồn tại trong phạm vi khai báo nó - trong 1 hàm, một thủ tục hay một module nhất định

- Biến toàn cục: Là biến được khai báo bởi từ khoá Public Biến này có ảnh hưởng đến toàn

bộ chương trình, do đó trong 1 chương trình không thể có 2 biến toàn cục có cùng tên Tuy nhiên, chúng ta có thể khai báo biến cục bộ trùng tên với biến toàn cục Khi đó Visual basic sẽ ưu tiên sử dụng biến cục bộ trong phạm vi của nó

Ngoài ra, Visual basic còn hỗ trợ việc khai báo các hằng số Hằng số là các giá trị cố định, không bị thay đổi trong chương trình Việc sử dụng hằng số rất tiện lợi khi trong chương trình ta cần sử dụng lặp đi lặp lại một giá trị nào đó Để khai báo hằng số, ta sử dụng cú pháp sau:

Const <tên hằng> = <Giá trị>

Ví dụ: Const name = “Nguyễn Văn Nam” - Khai báo hằng có giá trị kiểu chữ

Const dob = #09/17/1980# - Khai báo hằng có giá trị kiểu ngày tháng

Tương tự như biến, hằng cũng có phạm vi ảnh hưởng của nó Khi được khai báo trong hàm, thủ tục hay module nào thì hằng sẽ có ảnh hưởng đến hàm, thủ tục hay module đó Để có hằng có phạm vi toàn cục, ta phải khai báo hằng bằng từ khoá Public Const ngay trong phần khai báo của module

5.3 CÁC CẤU TRÚC ĐIỀU KHIỂN

Các cấu trúc điều khiển cho phép chúng ta điều khiển thứ tự thi hành của các câu lệnh trong một chương trình Thông thường, nếu bỏ qua các cấu trúc điều khiển thì thứ tự thi thành của các câu lệnh trong một đoạn mã sẽ là tuần tự từ trên xuống dưới, bắt đầu với câu lệnh đầu tiên và kết thúc bởi câu lệnh cuối cùng Cũng giống như các ngôn ngữ lập trình khác, Visual basic cung cấp đầy đủ các cấu trúc điều khiển cho phép chúng ta thay đổi thứ tự thực thi của các câu lệnh một cách linh hoạt và hiệu quả

Trang 9

5.3.1 Cấu trúc lệnh rẽ nhánh

Cấu trúc rẽ nhánh cho phép chúng ta kiểm tra các điều kiện rồi thực hiện các hành động khác nhau tuỳ thuộc vào kết quả được kiểm tra Các cấu trúc lựa chọn của Visual basic bao gồm:

If … Then

If Then … Else

Select Case

Cấu trúc If Then dùng để thi hành một hay nhiều câu lệnh khi một điều kiện kiểm tra được thoả mãn Cấu trúc chung của If … Then như sau:

If < điều kiện> Then

<một hoặc nhiều lệnh>

End If

Với đoạn mã trên, nếu <điều kiện> - thường là một biểu thức logic - là đúng thì chương trình sẽ thực hiện <một hoặc nhiều lệnh> Ngược lại, chương trình sẽ không thực hiện gì

Cấu trúc If …Then … Else là sự phát triển của cấu trúc If … Then Ở trên, nếu biểu thức là đúng thì một hoặc nhiều lệnh trong khối được thực hiện, ngược lại chương trình không thực hiện

gì Tuy nhiên, trong cấu trúc này, nếu điều kiện kiểm tra là sai thì chương trình sẽ thực hiện các lệnh nằm trong phần Else:

If <điều kiện> Then

<một hoặc nhiều lệnh>

Else

<một hoặc nhiều lệnh khác>

End If

Select Case lại là phần mở rộng hơn của If … Then … Else Trong cấu trúc If … Then … Else, chúng ta chỉ có thể xử lý được một trong 2 tình huống là <điều kiện> đúng hoặc sai Tuy nhiên, trong thực tế có rất nhiều trường hợp <điều kiện> của chúng ta lại trả về nhiều hơn 2 giá trị

Do đó biểu thức Select Case được sử dụng để giải quyết các tình huống đó Cú pháp của biểu thức này như sau:

Select Case <tên biến>

Case <giá trị 1>

<tập lệnh 1>

Case <giá trị 2>

<tập lệnh 2>

Case <giá trị n>

<tập lệnh n>

Trang 10

Case Else

<tập lệnh n+1>

End Select

Ý nghĩa của biểu thức này như sau: Chương trình sẽ kiểm tra <tên biến> Ứng với mỗi giá trị của <tên biến>, tập lệnh tương ứng sẽ được thực hiện Ngược lại, nếu không có giá trị nào trong các giá trị trên thoả mãn thì tập lệnh thứ n+1 nằm sau Case Else sẽ được thực hiện

Với cấu trúc này, nếu 1 biến có nhiều hơn 1 giá trị thì cũng chỉ tập lệnh đầu tiên ứng với giá trị đầu tiên được thực hiện và chương trình sẽ tự động thoát ra khỏi cấu trúc Select

5.3.2 Cấu trúc lặp

Trong lập trình cũng như trong đời sống, chúng ta có thể muốn lặp đi lặp lại một số thao tác nào đó một số lần nhất định, cho tới khi đạt đến một đích cho trước hay cho tới khi một điều kiện nào đó được thỏa mãn Trong lập trình, trường hợp đầu được gọi là một vòng lặp xác định trước

số lần lặp và trường hợp sau gọi là vòng lặp không xác định trước số lần lặp Với Visual basic, chúng ta có các cấu trúc lặp như sau:

Do … Loop: Đây là cấu trúc lặp với số vòng lặp không xác định trước Cú pháp của cấu trúc này như sau:

Do While <điều kiện>

<các lệnh>

Loop

Với cấu trúc này, nếu <điều kiện> còn đúng thì <các lệnh> sẽ còn được thực hiện Chỉ khi nào <điều kiện> là sai thì vòng lặp mới kết thúc Đây là cấu trúc lặp mà ngay từ lần thực hiện đầu tiên chương trình đã kiểm tra <điều kiện> Điều này có nghĩa là có thể vòng lặp sẽ không được thực hiện lần nào nếu <điều kiện> sai ngay lần thử đầu tiên Để cải tiến, ta có thể sử dụng cấu trúc này theo cách sau:

Do

<các lệnh>

Loop While <điều kiện>

Để đảm bảo ít nhất vòng lặp được thực hiện một lần

Ngoài ra, chúng ta cũng có thể sử dụng cấu trúc lặp này với từ khoá Until thay vì từ khóa While Điều khác biệt ở đây là, với từ khoá While, vòng lặp sẽ dừng lại khi <điều kiện> là sai, còn với từ khoá Until, vòng lặp sẽ dừng lại khi điều kiện là đúng

For … Next: Vòng lặp Do …Loop ở trên hoạt động rất tốt trong trường hợp chúng ta chưa biết chính xác số lượng vòng lặp cần thực hiện Tuy nhiên, trong nhiều trường hợp, khi chúng ta

đã biết chính xác được số lượng vòng lặp rồi thì cấu trúc For … Next là một lựa chọn tốt hơn Cú pháp của cấu trúc này như sau:

For <biến đếm> = <bắt đầu> To <kết thúc> [Step <giá trị tăng>]

<các lệnh>

Next

Ngày đăng: 31/07/2014, 12:20

HÌNH ẢNH LIÊN QUAN

Bảng và sửa đổi tuổi của nhân viên ở vị trí đầu tiên thành 50 (ví dụ đơn giản và ở đây trường STT - Giáo trình tin học quản lý phần 8 pot
Bảng v à sửa đổi tuổi của nhân viên ở vị trí đầu tiên thành 50 (ví dụ đơn giản và ở đây trường STT (Trang 18)

TỪ KHÓA LIÊN QUAN