Để có được dòng này, từ cửa sổ thiết kế của select query, bấm vào biểu tượng tổng trên thanh công cụ và Access sẽ chèn thêm dòng Total vào cửa sổ thiết kế truy vấn: Giả sử với cơ sở dữ l
Trang 1Trong ví dụ này, chúng ta sử dụng toán tử tập hợp “BETWEEN” để tìm những người có ngày sinh nằm giữa 1/1/1950 và 31/12/1970 Để ý rằng chúng ta sử dụng kiểu dữ liệu ngày tháng theo chuẩn tháng/ngày/năm
Ngoài ra, nếu không biết chính xác tên phòng, chúng ta có thể sử dụng toán tử so sánh LIKE (gần giống) và các ký tự đại diện ?, *, % để so sánh tên phòng trong ví dụ này và so sánh xâu ký tự nói chung trong truy vấn
4.3.2 Total query
Về bản chất, một Total query (truy vấn tổng) là một select query có sử dụng từ khóa lựa chọn GROUP BY Vì vậy, trong giao diện của cửa sổ thiết kế truy vấn, Access đưa thêm vào một dòng Total Để có được dòng này, từ cửa sổ thiết kế của select query, bấm vào biểu tượng tổng trên thanh công cụ và Access sẽ chèn thêm dòng Total vào cửa sổ thiết kế truy vấn:
Giả sử với cơ sở dữ liệu quản lý như trên, người lãnh đạo muốn biết về tình hình nhân sự của từng phòng (cụ thể là mỗi phòng có bao nhiêu nhân viên) Khi đó, ta cần tạo một truy vấn như sau để giải bài toán này:
Ở đây, ta mong muốn có thông tin về số lượng nhân viên theo từng phòng Do đó ở dòng Total, cột Tên nhân viên, ta chọn biểu thức Count (đếm) số lượng nhân viên và ở cột tên phòng ta chọn Group by Như vậy, ta đã tạo ra 1 truy vấn tổng về số lượng nhân viên các phòng
4.3.3 Make table query
Ở phần trên, chúng ta đã xem xét 2 kiểu truy vấn mà kết quả trả về là các bộ dữ liệu được hiển thị trên một cửa sổ của Access Tuy nhiên, nhiều khi chúng ta muốn lưu trữ những bộ giá trị đó vào
Trang 2một bảng để tiện cho việc sử dụng về sau Khi đó Access cung cấp một công cụ là truy vấn tạo bảng (make table query) Make table query thực chất là một truy vấn select hay một truy vấn total mà ta
đã xét ở trên Tuy nhiên thay vì hiển thị dữ liệu ra màn hình, make table query ghi toàn bộ dữ liệu
mà Access tìm thấy vào một bảng mới Để làm được điều này, từ một truy vấn select hay total có sẵn, ta mở nó ở dạng design view rồi từ thực đơn Queries ta chọn Make Table query
Khi đó, Access sẽ mở ra một hộp thoại cho phép điền vào tên bảng mà muốn sử dụng để lưu trữ dữ liệu Có thể chọn lựa lưu trữ dữ liệu vào chính cơ sở dữ liệu hiện tại hoặc cơ sở dữ liệu mới bằng cách chọn Current database hoặc Another database
Lưu ý: Nếu tên bảng nhập vào chưa tồn tại trong cơ sở dữ liệu hiện tại thì một bảng mới sẽ
được tạo ra Ngược lại, nếu tên bảng trùng với một bảng có trước thì toàn bộ cấu trúc cũng như dữ liệu của bảng cũ sẽ bị ghi đè lên Vì vậy khi nhập tên cho bảng, cần phải chú ý đến sự trùng tên nếu không muốn mất dữ liệu
Việc thực thi (chạy) một truy vấn tạo bảng cũng được tiến hành tương tự như các truy vấn khác Tuy nhiên, khi thực thi truy vấn dạng này, Access sẽ hỏi về việc sẽ có sự thay đổi trong cơ
sở dữ liệu khi thực thi truy vấn Nếu đã chắc chắn là thực hiện thì bấm OK để tiếp tục, ngược lại bấm Cancel để hủy bỏ và kiểm tra lại
Về bản chất, make table query là một câu lệnh SQL có cấu trúc dạng:
SELECT <Danh sách cột> INTO <Tên bảng>
FROM <Danh sách bảng>
Trang 34.3.4 Delete Query
Delete query hay truy vấn xóa dữ liệu là một truy vấn hành động (Action query) được sử dụng khi người dùng muốn xóa đi các bản ghi trong bảng nào đó của cơ sở dữ liệu thỏa mãn điều kiện xóa
Để tạo một delete query, trước tiên ta cũng tạo một query như bình thường (ngầm định là select query) Chọn bảng muốn query sẽ làm việc trên đó và từ thực đơn Query ta chọn Delete Query
Ví dụ, để xóa đi các bản ghi trong bảng nhân viên thỏa mãn điều kiện ngày sinh trước ngày 31/12/1950, ta thực hiện các bước sau:
Bước 1: Tạo một query mới bằng cách chọn New > Design view Chọn bảng Nhân viên Bước 2: Từ menu Query chọn Delete Query
Bước 3: Nhấn đúp chuột vào trường Ngày sinh trên bảng Nhân viên Khi đó, cửa sổ thiết kế Delete query sẽ như sau:
Bước 4: Theo yêu cầu của bài toán, ta sẽ xóa những nhân viên có ngày sinh trước ngày 31/12/1950 Do đó, ta đưa vào tiêu chuẩn (Criterial) để xóa như sau:
Trang 4Lưu ý: Access sẽ tự động đưa vào các ký hiệu # đứng trước và sau xâu: 12/31/1950 mà ta
điền vào Tuy nhiên, cũng có thể tự điền vào các dấu # này
Khi thực thi truy vấn này, Access cũng sẽ hỏi xem có chắc chắn muốn thực thi không vì delete query có thể sẽ làm thay đổi dữ liệu trong cơ sở dữ liệu
Nếu chắc chắn xóa, bấm Yes để tiếp tục Ngược lại bấm No để hủy bỏ
Nếu chọn Yes, Access sẽ thực hiện việc tìm kiếm trên bảng Nhân viên những bản ghi thỏa mãn điều kiện là ngày sinh trước ngày 31/12/1950 và thông báo cho biết số lượng bản ghi nó sẽ xóa Nếu vẫn chắc chắn xóa, bấm OK để Access bắt đầu xóa dữ liệu:
Về bản chất, Delete query là một câu lệnh SQL có cấu trúc dạng:
DELETE
FROM <Tên bảng>
WHERE <Điều kiện>
4.3.5 Update Query
Trong nhiều trường hợp, chúng ta muốn sửa đổi nội dung của một trường nào đó của một bản ghi trong cơ sở dữ liệu Ví dụ, khi một nhân viên chuyển từ phòng này sang phòng khác, chúng ta phải cập nhật lại mã phòng của họ Khi đó, Access cung cấp một công cụ gọi là update query (truy vấn cập nhật), cho phép thực hiện các thao tác sửa đổi dữ liệu trong cơ sở dữ liệu Cũng giống như delete query, update query cũng là một action query (truy vấn hành động),
vì nó có thể làm thay đổi dữ liệu trong cơ sở dữ liệu
Việc tạo một update query cũng giống như với delete query Trước tiên chúng ta cũng tạo một query có chứa bảng cần sửa đổi dữ liệu Sau đó, từ menu Query, chọn Update Query
Ví dụ, nhân viên có tên Nguyễn Văn A trước đây thuộc phòng Tổng hợp (có mã số 01) nay chuyển sang phòng Kế hoạch (có mã số 02) Khi đó, tạo một update query để thay đổi mã phòng của nhân viên này như sau:
Trang 5Bước 1: Tạo một query có chứa bảng nhân viên, chuyển sang dạng update query như đã trình bày ở trên
Bước 2: Thiết lập các tham số cho update query như sau:
Vì cùng là các action query nên khi thực thi, Access cũng hỏi xem có chắc chắn muốn thay đổi dữ liệu trên cơ sở dữ liệu hay không
Về bản chất, update query là một câu lệnh SQL có cấu trúc dạng:
UPDATE <Tên bảng>
SET <Danh sách cột > = <Danh sách giá trị mới>
WHERE <Điều kiện>
Lưu ý: Trong câu lệnh này, <Giá trị mới> phải có cùng kiểu dữ liệu với kiểu của cột định
thay đổi
Nếu có nhiều cột muốn thay đổi thì viết các cột cách nhau bởi dấu phẩy “,” Khi đó danh sách các giá trị mới sẽ có thứ tự tương ứng với thứ tự các cột trong <danh sách cột>
4.4 LẬP CÁC FORM NHẬP DỮ LIỆU
4.4.1 Khái niệm Form
Trong các ứng dụng máy tính, các giao diện chương trình thực hiện nhiệm vụ tương tác giữa người dùng và hệ thống bao gồm các giao diện nhập liệu, các cửa sổ (Windows), các hộp thoại (Dialog box) đều được gọi với một tên là Form Với người dùng cuối, Form là phương tiện
để họ làm việc (tương tác) với chương trình
Trong MS Access, để tạo 1 form có 2 cách:
- Dùng Form Wizard: Đây là một công cụ rất tiện lợi, phù hợp với những người dùng mới làm quen với Access và trong trường hợp cần tạo nhanh một Form đơn giản Tuy nhiên, cách này lại có hạn chế là các form tạo ra thường phải theo một khuôn mẫu mà Access hỗ trợ
- Dùng Form Design View: Đây là một công cụ rất hiệu quả và hoàn chỉnh giúp người dùng có thể tạo ra được hầu hết tất cả các form từ đơn giản đếp phức tạp Tuy nhiên, việc dùng Form Design View đòi hỏi người dùng có kiến thức sâu hơn về Access
Trang 64.4.2 Sử dụng Form wizard
Để minh họa cho quá trình tạo form sử dụng Form Wizard, chúng ta tiến hành tạo một form nhập liệu đơn giản cho cơ sở dữ liệu đã xét ở phần trên của tài liệu Form này sẽ cho phép người dùng nhập dữ liệu vào bảng Nhân viên
Để tạo được form nhập liệu như trên bằng Form Wizard, chúng ta tiến hành các bước sau:
- Từ cửa sổ chính của cơ sở dữ liệu, chọn Form trong cửa sổ chọn đối tượng Khi đó, bên phía phải màn hình sẽ hiển thị 2 lựa chọn là “Create form in Design view” và “Create form by using Wizard” Nhấp đúp chuột vào lựa chọn thứ 2 hoặc click chuột vào nút lệnh
“New” và chọn tiếp “Form Wizard” để bắt đầu
- Bấm OK để bắt đầu sử dụng Form Wizard Tiếp theo, chọn các thông tin cần đưa lên form Đây là bước quan trọng, vì vậy phải xác định rõ thông tin nào (trường nào) và đối tượng nào (bảng nào, truy vấn nào) sẽ được đưa lên form
Trang 7- Ở ví dụ này, chúng ta dự định tạo một Form để nhập dữ liệu cho bảng Nhân viên, vì vậy ở mục Tables/Queries, click chuột vào hộp chọn và chọn bảng Nhân viên Chọn tất cả các trường có trong bảng nhân viên (Ở vùng Avalable Fields) bằng cách click chuột vào nút
“chọn tất cả” có hình >> Khi đó, trong vùng “Selected fields” sẽ xuất hiện các cột vừa chọn Bấm Next để tiếp tục
- Tiếp theo, Access sẽ mở một hộp thoại cho phép lựa chọn cách bố trí các trường trên form (layout) Có thể xem trước từng kiểu bố trí dữ liệu trên form bằng cách lựa chọn các layout có sẵn của Access Bấm Next để tiếp tục
Trang 8- Tiếp theo, Access sẽ cho phép lựa chọn kiểu dáng (style) cho form Cũng giống như layout, Access cung cấp một loạt các style để thử và lựa chọn Sau khi đã chọn xong kiểu dáng form ưa thích, bấm Next để tiếp tục
- Đến đây, có thể bấm Finish để kết thúc hoặc bấm Next để Access giúp ta hoàn tất các công việc phụ còn lại Nếu bấm Next, Access sẽ hỏi thêm về tiêu đề cho Form Nếu bấm Finish, Access sẽ tự động điền tiêu đề cho form chính là tên bảng được lựa chọn ở trên Sau khi bấm Finish, một form được tạo bởi form Wizard sẽ được mở ra với kết quả như sau:
Trang 9Với form này, chúng ta có thể xem dữ liệu hiện có trong bảng hoặc thêm mới dữ liệu vào bảng bằng cách sử dụng các nút lệnh trên thanh điều khiển như sau:
- Mỗi lần mở form, một cách mặc định Access cho hiển thị bản ghi đầu tiên trong bảng Số lượng bản ghi hiện có trong bảng cũng được Access tính toán và hiển thị trên cửa sổ này (ở ví dụ này ta có 6 bản ghi)
- Để xem thông tin về bản ghi tiếp theo và trước đó ta sử dụng các nút lệnh và
- Để di chuyển đến bản ghi cuối cùng và bản ghi đầu tiên, sử dụng các nút lệnh và
- Để thêm mới một bản ghi, sử dụng nút lệnh Khi đó, Access sẽ tạo thêm một bản ghi mới trong cơ sở dữ liệu và ta chỉ việc điền thông tin vào các trường trong form:
- Sau khi điền đầy đủ thông tin hợp lệ vào các trường, bấm bất kỳ nút lệnh nào, Access sẽ lưu bộ giá trị mới vào cơ sở dữ liệu
Lưu ý: Đây là một form nhập đơn giản nhất, chưa có một ràng buộc cũng như xử lý nào Vì
vậy, nếu dữ liệu được nhập vào không đúng qui cách, Access sẽ báo lỗi không thể thêm dữ liệu vào bảng Chúng ta sẽ xem xét các cách bắt lỗi ở phần bài tập ở cuối tài liệu này
4.4.3 Sử dụng Form design view
Như đã trình bày ở trên và thông qua ví dụ cụ thể vừa xét, chúng ta có thể thấy rõ được sự tiện lợi nhưng có nhiều hạn chế của Form Wizard trong việc thiết kế các form Để khắc phục vấn
Trang 10đề này, Access cung cấp một công cụ mạnh và chuyên nghiệp hơn cho người sử dụng với mục đích giúp họ có thể tạo được các form một cách chuyên nghiệp và mềm dẻo hơn Đó chính là công cụ Form design view Cũng giống như ở phần sử dụng Form Wizard, chúng ta cũng tiến hành tạo một form nhập liệu đơn giản để nhập dữ liệu cho bảng Nhân viên ở ví dụ trên bằng cách tiến hành theo các bước như sau:
- Chọn New > Design view từ thanh công cụ hoặc chọn ngay Create Form in Design view Khi đó, Access sẽ mở một cửa sổ cho phép người dùng thiết kế form Cửa sổ thiết kế form thường có 3 vùng rất quan trọng và cần thiết, đó là:
(1) Vùng để thiết kế form: Đây là vùng cho phép người dùng đặt các điều khiển Vùng này gồm có 3 phần là Tiêu đề đầu form (Header), thân form (Detail) và tiêu đề cuối (Footer)
(2) Hộp công cụ (Tool box): Hộp công cụ chứa các đối tượng để người dùng sử dụng trong form như: Text box, label, command button v.v
(3) Vùng cửa sổ thuộc tính: Vùng này cho phép người dùng thiết lập các thuộc tính cho form cũng như cho các đối tượng lấy ra từ tool box đưa vào form
Lưu ý: Nếu không thấy 2 cửa sổ (2) và (3) xuất hiện, có thể vào menu View, sau đó chọn
Toolbox và Properties để Access hiển thị 2 cửa sổ này như trong màn hình trên
Form mà chúng ta đang dự định tạo ra là form dùng để nhập dữ liệu vào bảng Nhân viên
Do đó, cần thiết lập thuộc tính nguồn dữ liệu cho form bằng cách chọn lựa chọn Form trên hộp thoại thuộc tính (3)
Trang 11- Sau khi chọn xong, cửa sổ thuộc tính sẽ có dạng:
- Để thiết lập thuộc tính nguồn dữ liệu cho form nhập, chọn tab Data để mở các thuộc tính liên quan đến dữ liệu (hoặc có thể chọn All) Sau đó, ở dòng Record source, click chuột vào để mở danh sách các đối tượng có trong cơ sở dữ liệu và chọn bảng dự định nhập dữ liệu là bảng Nhân viên:
Trang 12- Chọn xong bảng Nhân viên, Access sẽ mở một cửa sổ Field list để liệt kê tất cả các trường có trong bảng Nhân viên để người dùng lựa chọn các trường sẽ bố trí trên form nhập liệu:
- Bước tiếp theo là việc lựa chọn và bố trí các trường dữ liệu trên form (Giống như 2 bước chọn trường và bố trí bố cục - layout trong Form Wizard) Muốn chọn trường nào, click chuột vào tên trường đó và kéo sang vùng thiết kế form (1) và thả chuột vào từng vị trí mong muốn trên form Ở form này, chúng ta cần sử dụng tất cả các trường trong bảng, dó
đó kéo và thả toàn bộ các trường sang Mỗi lần kéo và thả, Access sẽ tạo ra một đối tượng gắn với trường dữ liệu tương ứng Đối tượng này có thể là các hộp textbox, các combo box v.v và đồng thời là các label (nhãn) ghi chú cho trường dữ liệu tương ứng
- Một cách ngầm định, các nhãn ghi chú cho từng trường dữ liệu được lấy tên chính là tên của trường dữ liệu Người dùng có thể sửa đổi nhãn này bằng cách chọn nhãn, mở cửa sổ Properties của nhãn đó và chọn Format > Caption rồi gõ lại tên mình mong muốn như sau:
Trang 13- Ngoài tên của label, có thể thay đổi tất cả các thuộc tính khác của tất cả các đối tượng trên form như thay đổi kiểu chữ, kích thước của đối tượng (size), kiểu đối tượng (ví dụ từ textbox sang combo box) bằng cách click chuột phải lên đối tượng rồi chọn Properties Đến đây, chúng ta đã gần hoàn chỉnh một form nhập Tuy nhiên, vấn đề là làm sao để form này có thể giúp người dùng thêm vào bảng Nhân viên một nhân viên mới với thông tin được nhập vào form? Access hỗ trợ việc này bằng cách cho phép người dùng tạo các nút lệnh Mỗi khi nút lệnh được thực thi, Access sẽ thực hiện một thao tác nào đó Ở ví dụ này, ta chỉ xét thao tác thêm
1 dòng dữ liệu vào bảng Nhân viên Để làm được điều này, click chuột lên biểu tượng command button ở hộp công cụ, sau đó click chuột vào vùng muốn đặt nút lệnh trên form Khi đó ta được một form mới như sau:
Trang 14- Để ý cửa sổ ở trên, khi click tạo một nút lệnh ở phần thiết kế form, Access sẽ mở một hộp thoại “Command Button Wizard” để cho phép người dùng định nghĩa “hành động” (action) mà Access sẽ thực hiện khi nút lệnh đó được bấm Ở ví dụ này, chúng ta cần yêu cầu Access thêm mới một bản ghi vào bảng dữ liệu nên ở phần “Categories”, chọn
“Record operation” (các thao tác với bản ghi) Tiếp theo, bên phần “Action”, chọn “Add New Record” và bấm Next Khi đó Access sẽ cho phép định nghĩa kiểu dáng của nút lệnh
Có thể chọn nút lệnh với chữ hoặc nút lệnh với hình ảnh bằng cách lựa chọn Text hay Picture Ở đây ta chọn Text và nhãn của nút lệnh là “Thêm mới”
- Đến đây, có thể chọn Finish để kết thúc hoặc bấm Next để đặt tên cho nút lệnh và Finish
để kết thúc Như vậy ta có một form hoàn chỉnh như sau:
- Để ghi lại form, chọn biểu tượng “Save” từ thanh công cụ hoặc từ menu File > Save