Bài giảng Tin học cơ sở 3

pdf 93 trang vanle 2260
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học cơ sở 3", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_tin_hoc_co_so_3.pdf

Nội dung text: Bài giảng Tin học cơ sở 3

  1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  KHOA CÔNG NGHỆ THÔNG TIN 1 BÀI GIẢNG TIN HỌC CƠ SỞ 3 Chủ biên: PHAN THỊ HÀ PTIT Hà Nội 2013
  2. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS GIỚI THIỆU Chương này cung cấp cho sinh viên các kiến thức sau: - Tổng quan về hệ quản trị cơ sở dữ liệu - Giới thiệu về hệ quản trị cơ sở dữ liệu Access - Các kiến thức cơ bản trong việc tạo lập cơ sở dữ liệu của Access, thiết kế xây dựng bảng ( Table), mẫu biểu (Form), truy vấn ( Query), Báo biểu ( Report) - 1 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1.1 Cơ sở dữ liệu (CSDL) Có thể hiểu CSDL (Database) là một bộ sưu tập rất lớn về các loại dữ liệu tác nghiệp của một cơ quan, xí nghiệp được tổ chức lưu trữ tập trung hay phân tán trên các thiết bị nhớ của mạng máy tính và được các hệ ứng dụng truy xuất, khai thác theo chế dộ trực tuyến hay tương tác. Cụ thể có một số khái niệm được hiểu như sau : - CSDL là kho lưu trữ có tổ chức về các loại dữ liệu tác nghiệp, bao gồm các loại dữ liệu về văn bản, đồ họa, âm thanh được mã hóa dưới dạng chuỗi bit 0 và 1 và được lưu trữ trong các bộ nhớ của máy tính. CSDL phản ánh trung thực thế giới dữ liệu hiện thực khách quan. - CSDL dùng chung cho nhiều người. CSDL là tài nguyên thông tin chung cho nhiều người cùng sử dụng. Bất kỳ ngườiPTIT sử dụng nào trên máy tính, tại các thiết bị đầu cuối, về nguyên tắc đều có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo chế độ trực tuyến hay tương tác mà không phụ thuộc vào vị trí địa lý của người sử dụng với các tài nguyên đó. - CSDL được các hệ ứng dụng khai thác, để tìm kiếm, tra cứu, sửa đổi bổ sung hay loại bỏ dữ liệu. Tìm kiếm và tra cứu thông tin là chức năng phổ biến nhất, quan trọng nhất của các hệ CSDL. Hệ quản trị CSDL (DBMS - DataBase Management System) là phần mềm điều khiển các chiến lược xây dựng CSDL. Khi người sử dụng đưa ra yêu cầu truy nhập bằng một ngôn ngữ dữ liệu nào đó thì DBMS tiếp nhận, thực hiện các thao tác trên CSDL lưu trữ và trả lại kết quả (nếu có). - Hiện nay, CSDL quan hệ (Relationship Database) được sử dụng rộng rãi nhất. Đối tượng nghiên cứu của CSDL quan hệ là thực thể và mối quan hệ giữa các thực thể. Thực 1
  3. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT thể và mối quan hệ giữa các thực thể là hai đối tượng khác nhau về căn bản. Mối quan hệ giữa các thực thể cũng là một loại thực thể đặc biệt. Trong cách tiếp cận CSDL quan hệ, người ta xây dựng cơ sở lý thuyết đại số quan hệ xây dựng các quan hệ chuẩn khi kết nối không tổn thất thông tin và khi biểu diễn dữ liệu là duy nhất. Dữ liệu được lưu trữ trong bộ nhớ của máy tính không những phải tính đến yếu tố về tối ưu không gian lưu tữ, mà phải đảm bảo tính khách quan, trung thực dữ liệu hiện thực. Nghĩa là phải đảm bảo tính nhất quán của dữ liệu và dữ liệu được sự vẹn toàn của dữ liệu. 1.2 Hệ quản trị CSDL a. Giới thiệu: Hệ quản trị CSDL là hệ thống phần mềm điều khiển toàn bộ các chiến lược truy nhập CSDL Các chức năng cơ bản của hệ quản trị CSDL bao gồm - Tạo ra và duy trì cấu trúc dữ liệu - Cập nhật dữ liệu - Lưu trữ dữ liệu - Tìm kiếm và xử lý các dữ liệu lưu trữ - Cho phép nhiều người dùng truy xuất đồng thời - Hỗ trợ tính bảo mật và riêng tư - Cung cấp một cơ chế chỉ mục (index) hiệu quả để lấy nhanh các dữ liệu lựa chọn. - Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu và phục hồi. b. Phân loại hệ quản trị CSDL:Về cơ bản, hiện nay có 3 loại hệ quản trị CSDL chính là: Hệ quản trị CSDL phân cấp chứa dữ liệu trong một cấu trúc như cây Hệ này thiết lập một quan hệ cha-con trong dữ liệu. Ở đỉnh của cây, còn gọi là root, có thể có một số nút bất kỳ. Các nút này lại có thể có một số nút con bất kỳ, v.v Các hệ CSDL phân cấp ngày nay đã PTITlạc hậu. Hệ quản trị CSDL mạng chứa dữ liệu ở dạng các bản ghi và các liên kết Hệ thống này cho phép nhiều quan hệ nhiều-nhiều hơn hệ CSDL phân cấp. Một hệ quản trị CSDL mạng lưu trữ có hiệu quả và rất nhanh, cho phép quản lý các cấu trúc dữ liệu phức tạp. Tuy nhiên, chúng lại rất cứng nhắc và yêu cầu nặng nề về thiết kế. Một hệ thống đăng ký vé máy bay là một ví dụ của loại này. Hệ quản trị CSDL quan hệ (Relationship DBMS) Hệ quản trị CSDL quan hệ có lẽ là một hệ quản trị CSDL có cấu trúc đơn giản nhất. Trong một hệ quản trị CSDL quan hệ, dữ liệu được tổ chức thành các bảng. Các bảng lại bao gồm các bản ghi và các bản ghi chứa các trường. Mỗi trường tương ứng với một mục dữ liệu. Hai hay nhiều bảng có thể liên kết nếu chúng có một hay nhiều trường chung. 2
  4. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Hệ quản trị CSDL quan hệ được sử dụng khá dễ dàng và phát triển nhiều trong những năm gần đây. Hiện nay có một số hệ quản trị CSDL quan hệ được sử dụng rộng rãi trên thị trường như Oracle, Informix, Sybase, Foxpro, Access, Microsoft Access là một hệ quản trị CSDL đơn giản, dễ sử dụng, rất thích hợp cho các ứng dụng vừa và nhỏ. Tài liệu này sẽ trình bày về các khái niệm và cách sử dụng một cách căn bản hệ quản trị CSDL này. 2 HỆ QUẢN TRỊ CSDL ACCESS 2.1 Tổng quan về Access Về cơ bản, Access là một hệ quản trị CSDL. Tương tự các sản phẩm khác thuộc loại này, Access lưu trữ và thu thập các thông tin (thường gọi là dữ liệu), hiển thị các thông tin yêu cầu và tự động hoá các thao tác được lặp lại (thí dụ duy trì các tài khoản hoặc một hệ thống thông tin cá nhân, thực hiện việc kiểm soát và lập bảng kiểm kê). Với Access, ta có thể tạo ra các biểu nhập dữ liệu dễ sử dụng. Ta có thể hiển thị các thông tin theo ý muốn và tạo các báo cáo phức tạp. Access cũng là một ứng dụng CSDL mạnh của Windows, nó là một sản phẩm được thiết kế để hỗ trợ người phát triển hoặc người dùng cuối. Bên cạnh tính tiện dụng và nhất quán của Microsoft Window, Microsoft Access cũng bổ sung thêm tính hiệu quả trong quản lý CSDL. Do cả Access và Window đều là những sản phẩm của Microsoft nên cả hai phối hợp với nhau hoạt động rất tốt. Access có khả năng chạy trên nền Windows95, Windows 98, Windows ME, Windows 2000 , do đó Access có mọi lợi thế của Windows. Ta có thể cắt dán, sao chép các dữ liệu từ bất kỳ một ứng dụng nào của Windows vào Access hoặc ngược lại. Ta cũng có thể tạo ra thiết kế biểu mẫu trong Access và cắt dán vào thiết kế báo cáo. Khi sử dụng các đối tượng OLE (Object Linking and Embedding - Liên kết và nhúng đối tượng) trong các sản phẩm của Windows và Microsoft Office (như Excel, Word, PowerPoint và Outlook), ta có thể mở rộng khả năng của Access để hợp nhất các đối tượng có thể xem được của các sản phẩm Microsoft này mà không cần phải sao chép nội dung của chúng và dán vào Access.PTIT Khả năng này cho phép ta có thể làm việc với các dữ liệu thực tế có sẵn trong các sản phẩm này mà không cần phải sao chép thông tin. Bằng cách sử dụng OLE, ta có thể thực sự thay đổi các thông tin trong đối tượng biểu cơ sở (như Excel, Word, v.v ). Với các mở rộng của Internet trong Access, ta có thể lập các biểu tương tác với các dữ liệu lấy trực tiếp từ các trang Web WWW và có thể trực tiếp chuyển các biểu ta lập thành các trang truy cập dữ liệu cho các mạng nội bộ hợp nhất làm việc trực tiếp với trình duyệt Internet của ta. Là một hệ quản trị dữ liệu quan hệ, Access cho phép người sử dụng cùng lúc có thế truy nhập các thông tin từ hai bảng trở lên - thậm chí có thể liên kết các bảng CSDL để lạo lập bảng mới. Access có thể làm giảm tính phức tạp của các dữ liệu và làm cho công việc dễ thực hiện hơn. Có thể nối các bảng Access của ta với các dữ liệu của máy tính lớn hoặc máy chủ - thậm chí có thể sử dụng một bảng được tạo trong các chương trình dBase hoặc 3
  5. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Excel. Có thể dễ dàng kết hợp các kết quả kết nối với một bảng tính trong Excel. Khả năng kết nối của Access với các dữ liệu bên ngoài (lưu giữ trong các dạng CSDL khác) làm cho Access trở thành một chương trình rất thiết thực. Có thể sử dụng Access trong một môi trường mạng để liên kết với một loạt các bảng từ các CSDL khác - vừa ở dạng liên kết nội bộ (trên cùng một máy) vừa liên kết xa (thậm chí với CSDL của một máy tính lớn như Oracle hoặc DB2). Access có thể kết nối trực tiếp với các bảng bên ngoài này hoặc có thể nhập về sử dụng nội bộ. Khi đã kết nối hoặc nhập các bảng bên ngoài về, ta có thể tạo lập các biểu và các báo cáo làm việc với các thông tin - để thay đổi hoặc xem hoặc in các thông tin 2.2 Khởi động, cửa sổ làm việc của Microsoft Access 2.2.1 Khởi động Microsoft Access Microsoft Access là hệ quản trị CSDL được cài đặt trên môi trường Windows nên ta có thể cài đặt và khởi động Access tương tự như khởi động các chương trình ứng dụng khác như Micrsoft Word, Excel Có thể khởi động theo các bước như sau: Trên thanh Start mở Program -> Microsoft Office -> Microsoft Access 2010 PTIT 4
  6. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Khi đó hộp thoại đầu tiên xuất hiện trên màn hình PTIT 5
  7. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Hộp thoại này cho phép chúng ta chọn các hành động sau: o Blank database : Tạo mới hoàn toàn một tập tin CSDL Access trống (tập tin đó phần mở rộng là accdb - chưa có dữ liệu) o Blank web database: o Recent templates: o Sample templates: o My templates: o Open: Mở một tập tinPTIT CSDL Access đã được tạo trước đó 2.2.2 Các thành phần trong cửa sổ khởi động Sau khi khởi động Microsoft Access, cửa sổ của Microsoft Access xuất hiện. Các thành phần trong cửa sổ này gồm: a. Thanh Quick Access: Hiển thị bên trái thanh tiêu đề, mặc định thanh Quick Access gồm các nút công cụ Save, Undo, 6
  8. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Bên phải của Quick Access chứa nút Customize, khi cơ sở dữ liệu đang mở, nếu click nút Customize sẽ xuất hiện một menu giúp bạn chỉ định các nút lệnh hiển thị trên thanh Quick Access, nếu các lệnh không có trong menu, bạn có thể kích vào nút More Commands hoặc kích phải trên thanh Quick Access chọn Customize Quick Access Toolbar. Kích vào More Commands .cửa sổ hiện ra như sau: PTIT 7
  9. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT b. Vùng làm việc: Khi khởi động Access, trong cửa sổ khởi động, mặc định tab File và lệnh New trong tab File được chọn, cửa sổ được chia thành 3 khung: - Khung bên trái gồm các lệnh trong tab File - Khung giữa: chứa các loại tập tin cơ sở dữ liệu mà bạn có thể tạo mới. - Khung bên phải: để nhập tên và chọn vị trí lưu tập tin mới tạo và thực thi lệnh tạo mới cơ sở dữ liệu. c. Thanh Ribbon: Thanh Ribbon được tạo bởi nhiều tab khác nhau, nếu truy cập vào một tab bạn có thể kích.PTIT Ví dụ: Để mở một tập tin CSDL chúng ta phải vào File rồi chọn Open. d. Thanh Navigation Pane Navigation Pane là khung chứa nội dung chính của cơ sở dữ liệu. Từ khung Navigation Pane, bạn có thể mở bất kỳ Table, Query, Form, Report, Macro, hoặc module trong cơ sở dữ liệu bằng cách kích đúp vào tên của đối tượng. Bằng cách kích phải vào tên của đối tượng trong Navigation Pane, bạn có thể thực hiện các thao tác với đối tượng như: đổi tên, sao chép, xóa, import, export một đối tượng 8
  10. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Nhấn phím F11 hoặc kích vào mũi tên kép ở góc trên bên phải của khung Navigation Pane để hiển thị hoặc ẩn khung Navigation Pane. e. Thanh trạng thái (Status bar): Thể hiện tình trạng hiện hành của các phím dặc biệt CapsLock, Numlock ), các thông báo, hướng dẫn sử dụng Microsoft Access . Thanh quick access ThanhThanh tiêu tiêu đề đề Thanh ribbon ThanhPTIT Navigation Pane Thanh trạng thái Nói chung các thao tác với thanh công cụ giống với các thanh công cụ trong Winword 2.3 Các thao tác đối với tệp tin CSDL Tạo một tệp mới: Khi khởi động Access tại cửa sổ khởi động thì cũng có thể tạo nên một tệp CSDL mới bằng cách chọn Blank Database từ của sổ khởi động của Access. Mặt khác tại cửa sổ Database có thể làm như sau: File -> New sau đó chọn Database, OK. Tiếp tục phải đưa tên tệp vào rồi chọn Create. 9
  11. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Mở một tệp CSDL của Acces đã tồn tại trong máy tính: Chúng ta cũng có thể mở một tệp CSDL đã tồn tại trong Access ngay từ màn hình khởi động bằng cách chọn Open.Mặt khác tại cửa sổ Database có thể làm như sau: File -> Open, chọn Tên tệp tin, OK Đóng tệp CSDL: Chọn File -> Close hoặc đóng cửa sổ Thoát khỏi Access: Chọn File -> Exit. 2.4 Các đối tượng bên trong tập tin CSDL Access: Một tệp CSDL gồm có 7 đối tượng cơ bản sau: Bảng (Table): Là thành phần cơ sở của tập tin CSDL của Access, dùng để lưu trữ dữ liệu. Hệ thống bảng chính là cấu trúc CSDL. Do đó đây là dữ liệu đầu tiên phải được tạo ra trước. Bên trong một bảng, dữ liệu được lưu thành nhiều cột và nhiều hàng Truy vấn (Query): Là công cụ cho phép người sử dụng dùng ngôn ngữ truy vấn có cấu trúc SQL (Structure Query Language) hoặc công cụ truy vấn bằng ví dụ QBE (Query by Example) để thực hiện các truy vấn rút trích, chọn lựa dữ liệu hoặc cập nhật dữ liệu (thêm, sửa, xóa) trên các bảng. Truy vấn bằng thí dụ là công cụ hỗ trợ việc thực hiện các truy vấn mà không cần phải viết lệnh SQL, mà chủ yếu chỉ dùng kỹ thuật kéo - thả trên cơ sở đồ họa.Trong tài liệu này chúng tôi chủ yếu đi vào truy vấn QBE. Biểu mẫu (Form): Cho phép người sử dụng xây dựng nên các màn hình dùng để cập nhật hoặc xem dữ liệu lưu trong các bảng, ngoài ra cũng cho phép người sử dụng tạo ra các hộp thoại hỏi đáp giữa người sử dụng và hệ thống ứng dụng. Báo cáo (Report): Cho phép chúng ta tạo ra kết xuất từ các dữ liệu đã lưu trong các bảng, sau đó sắp xếp lại và định dạng theo một khuôn dạng cho trước và từ đó có thể đưa kết xuất này ra màn hình hoặc máy in hoặc các dạng tập tin Word/ Excel. Tập lệnh (Macro): Là công cụ cung cấp cho người sử dụng tạo ra các hành động đơn giản trong Microsoft Access như mở biểu mẫu, báo cáo, thực hiện một truy vấn mà không cần phải biết gì về ngôn ngữ lập trình Visual Basic. Bộ mã lệnh (Module):PTIT Với ngôn ngữ Visual Basic cho phép người sử dụng xây dựng các hàm hoặc thủ tục của riêng mình để thực hiện một hành động phức tạp nào đó mà không thể làm bằng công cụ tập lệnh, hoặc với mục đích cho chương trình chạy nhanh hơn. Các trang Web dữ liệu (Pages): Cho phép chúng ta có thể tạo ra các trang Web dữ liệu mà trên đó có chứa dữ liệu động lấy từ một CSDL nào đó. Người sử dụng có thể cập nhật dữ liệu trực tiếp vào cơ sở dữ liệu thông qua trình duyệt Web (Microsoft Internet Explorer) . 2.5 Làm việc với cửa sổ dữ liệu trong Microsoft Access: Cửa sổ CSDL (cửa sổ Database) là cửa sổ làm việc chính của Microsoft Access, trên cửa sổ này cho phép người sử dụng tạo mới, hoặc sửa đổi hoặc xóa các đối tượng cơ bản trong tập tin CSDL Access bằng cách chọn các dãy nút dọc và ngang 10
  12. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT a. Các thành phần chính trong cửa sổ CSDL của Microsoft Access Các nút đối tượng: Bảng, Query, Form, Report, Macro. Moduls cho phép chúng ta lựa chọn một loại đối tượng làm việc hiện hành trong cửa sổ CSDL. Các nút hành động: Open, Design, New: cho phép chúng ta mở, sửa và tạo mới các đối tượng làm việc hiện hành (là đối tượng đang được chọn trong danh sách các đối tượng) b. Đóng một đối tượng đang mở Kích phải vào tên đối tượng đang mở chọn Close hoặc nhắp vào nút Close trên cửa sổ chứa đối tượng. c. Xóa một đối tượng Chọn đối tượng cần xóa, chọn Home rồi ấn Delete, rồi xác nhận lại đồng ý xóa thật không (chọn YES). d. Đổi tên một đối tượng Chọn đối tượng cần đổi tên trên thanh Navigation Pane, chọn Rename, sau đó ghi vào tên mới (Bấm ESC để trả lại tên cũ trước đó) e. Ẩn hoặc hiện cửa sổ CSDL Ẩn: Chọn Window -> Hide Hiện: Chọn Window -> Unhide (hoặc nhấn phím F11) 2.6 Làm việc với các đối tượng trong Access Trước khi bắt tay vào xây dựng các bảng, biểu mẫu, các báo biểu và các thành phần khác của một CSDL, ta cần phải bỏ thời gian thiết kế chi tiết. Một thiết kế tốt là chìa khoá cho sự thành công của mọi CSDL, nó cho phép người dùng thao tác một cách dễ dàng, chương trình chạy một cách hiệu quả và chính xác. 2.6.1 Quy trình thiết kế CSDL 2.6.1.1 Các bước cơ bản để thiếtPTIT kế một CSDL là: 1. Xác định mục đích của CSDL: CSDL dùng để lưu trữ thông tin gì, cần rút ra những thông tin gì từ CSDL. 2. Xác định các bảng dữ liệu, table, cần có trong CSDL: một bảng không được chứa dữ liệu trùng lặp, và thông tin cũng không nên để bị trùng lặp giữa các bảng. Mỗi một bảng chỉ nên chứa thông tin liên quan đến một chủ đề. 3. Xác định các trường dữ liệu, field, cần có trong mỗi bảng dữ liệu: Mỗi bảng chứa thông tin về cùng một chủ thể, mỗi trường của một bảng lại chứa các thông tin riêng biệt về chủ thể đó. Ta chỉ nên ghi nhận các thông tin cần thiết từ thực tế, không nên có các trường tính toán - calculated field. Lưu trữ thông tin dưới dạng chi tiết nhất có thể (ví dụ: Họ, Tên chứ không nên Họ và Tên). 11
  13. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 4. Xác định các trường chứa giá trị duy nhất ở mỗi bản ghi: Để Access kết nối được các thông tin lưu trữ trong các bảng riêng biệt . Ví dụ: kết nối các khách hàng với đơn đặt hàng của người đó. Mỗi bảng cần phải có một trường hoặc một nhóm các trường chứa giá trị duy nhất dùng để phân biệt giữa các bản ghi trong một bảng. Một trường như vậy gọi là trường khoá - Primary key. 5. Xác định các mối quan hệ giữa các bảng: Ta chỉ ra cho Access cách để tìm kiếm và đưa các thông tin liên quan lại tập hợp với nhau. 6. Tinh chỉnh thiết kế: Sau khi đã thiết kế, ta cần vận hành thử nghiệm CSDL để đảm bảo các chức năng cần có đều thực hiện suôn sẻ đúng như mong đợi. Nếu phát hiện những thông tin gì không cần thiết thì ta nên loại bỏ để tránh sự cồng kềnh. 7. Nhập dữ liệu và tạo các đối tượng CSDL: Khi đã hài lòng với cấu trúc các bảng biểu và các mối liên kết là lúc phải nhập liệu. Dựa trên dữ liệu đã nhập ta có thể dễ dàng xây dựng các biểu mẫu, báo biểu, truy vấn để phục vụ công tác xử lý đầu vào và đầu ra thông tin. 8. Sử dụng công cụ phân tích của Access: Access cung cấp công cụ Bảng Analyzer Wizard giúp người dùng phân tích thiết kế đã có và chỉnh sửa chúng. 2.6.1.2 Tạo và quản lý các bảng dữ liệu (Table) Nói chung, một bảng dữ liệu là tập hợp các dữ liệu về một chủ đề nhất định (ví dụ sản phẩm, người bán). Sử dụng mỗi bảng riêng cho mỗi đối tượng cho phép ta lưu dữ liệu một cách rõ ràng, hiệu qủa , tránh lưu nhiều lần một thông tin, giảm thiểu lỗi nhập liệu. Bảng tổ chức dữ liệu theo cột (gọi là trường - field), và theo hàng (gọi là bản ghi- record). Ta dùng một trường chung để liên kết hai bảng. Việc này cho phép Access kết xuất hiển thị dữ liệu từ các bản ghi ở các bảng dữ liệu khác nhau có liên quan để xem, sửa, hoặc in ra báo cáo Mỗi trường trong bảng sản phẩm chứa Bảng: Sản phẩm PTITcùng một kiểu thông Tên Sản Phẩm Mã nhà cung cấp Số lượng trong kho tin cho tất cả các sản Giấy Vĩnh Phúc 1 20 phẩm, như số lượng. Giấy Bãi bằng 2 50 Giấy Indo 3 20 Mỗi một bản ghi chứa tất cả thông tin liên quan đến một sản phẩm, như là tên sản phẩm, mã nhà cung cấp, số lượng trong kho Bảng: Nhà cung cấp Trường dữ liệu Mã nhà cung Tên nhà cung cấp chung liên kết dữ cấp liệu từ hai bảng 1 Nhà máy giấy Vĩnh 2 Nhà máy giấy Bãi Bằng 3 Công ty xuất nhập khẩu hải phòng Bảng: Sản phẩm Tên Sản Phẩm Nhà cung cấp 12 Số liệu trong kho Giẫy Vĩnh Phúc 21 Nhà máy giấy20 Bãi Bằng Giấy Bãi Bằng 32 Công ty xuất50 nhập khẩu hải phòng Giấy Indo 3 20
  14. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT a. Thiết kế một bảng dữ liệu Cách 1: Tạo bảng dữ liệu bằng cách nhập dữ liệu 1. Chọn cửa sổ Database . 2. Nhấn Tables bên dưới Objects, rồi chọn New trong cửa sổ Database. 3. Nhấn đúp Datasheet View. Một lưới dữ liệu trống được hiển thị với các tên ngầm định của các cột là Field1, Field2, 4. Đổi tên cột bằng cách nháy đúp chuột vào tiêu đề các cột Field1, Field2 , rồi nhập vào tên mới 5. Nhập dữ liệu vào lưới nhập liệu, nhớ rằng mỗi cột chỉ được nhập một kiểu dữ liệu duy nhất từ dòng thứ nhất đến dòng cuối cùng. Tức là, nếu dòng đầu dữ liệu kiểu số, kiểu ngày, thì các dòng tiếp theo cột đó dữ liệu cũng phải là kiểu số, kiểu ngày. Access sẽ tạo kiểu dữ liệu (data type) và dạng hiển thị (display format) tưng ứng cho mỗi cột. Các cột bỏ trống sẽ bị xoá khi ta ghi lại lưới nhập liệu (DataSheet). 6. Chọn Save trên thanh công cụ để ghi lại mọi thay đổi. Access sẽ hỏi nếu bạn có muốn tạo một mã khoá chính cho bảng vừa tạo (Primary key). Cách 2: Tự thiết kế bảng dữ liệu Trình tự thiết kế 1. Chuyển sang cửa sổ CSDL. Ta có thể dùng phím F11 để chuyển đổi giữa các cửa sổ. 2. Nhấn Tables bên dưới Objects, rồi New trong cửa sổ Database. 3. Nhấn đúp chuột vào Design View để chọn chế độ thiết kế. 4. Định nghĩa các trườngPTIT của bảng. 5. Thiết lập trường khóa – Primary key – trước khi ghi lại thiết kế Lưu ý: Không nhất thiết phải xác định trường khóa, nhưng nên tạo trường khóa, vì căn cứ vào các trường khóa này, về sau khi ta thiết kế các truy vấn, biểu mẫu, báo biểu, Access sẽ tự động xác định các liên kết cần thiết để kết nối dữ liệu. 6. Nhấn chuột vào nút lệnh Save trên thanh Quick Access để ghi lại mọi thay đổi, nhập vào tên của bảng. Cửa sổ thiết kế Trong chế độ thiết kế, ta có thể thiết kế một bảng từ đầu, hoặc thêm, xoá, hoặc sửa đổi theo sở thích các trường của một bảng đã có. Trong chế độ này, cửa sổ giao diện có các khu vực chính dưới đây: 13
  15. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Field Name - Tên trường: Nếu ta muốn theo dõi thêm các thông tin, hãy bổ sung thêm các trường mới. Nếu tên của một trường đã có chưa đủ biểu đạt ý nghĩa, ta có thể đổi tên trường. Data types - Kiểu dữ liệu:PTIT Việc thiết lập kiểu dữ liệu của một trường để định nghĩa kiểu dữ liệu ta sẽ nhập vào trường đó. (Kiểu dữ liệu: tính chất của một trường mà xác định kiểu dữ liệu nào sẽ được lưu trữ trong trường. Ví dụ, trường có thuộc tính Data type là Text có thể lưu dữ liệu dạng chữ hoặc số, nhưng một trường Number chỉ có thể chứa dữ liệu số). Primary Key - Khoá chính: Sử dụng một mã số duy nhất, gọi là khoá chính để phân biệt mỗi một bản ghi trong bảng. Một khoá chính của bảng dùng để tham chiếu đến các bản ghi liên kết trong các bảng khác. Khóa chính có thể là một hoặc nhiều trường (cột) mà duy nhất giá trị của nó có thể dùng để phân biệt các bản ghi của một bảng. Một khoá chính không thể chứa giá trị rỗng - Null và phải là chỉ mục sắp xếp duy nhất. Field properties - Thuộc tính của trường: Các thuộc tính của trường là tập hợp các 14
  16. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Các kiểu dữ liệu của một trường: Sử dụng thuộc tính kiểu dữ liệu để chỉ định kiểu dữ liệu sẽ được lưu trong trường. Mỗi trường chỉ có thể chứa thông tin của một kiểu dữ liệu. Kiểu dữ liệu Mô tả Kích thước Tối đa 255 ký tự, quy (Ngầm định) Ký tự hoặc tổ hợp giữa ký định bởi thuộc tính Text tự và chữ số, hoặc cũng có thể chứa só FieldSize (kích thước không cần tính toán như số điện thoại. trường). Memo Những đoạn văn bản dài Tối đa 65,535 ký tự 1, 2, 4, hoặc 8 bytes Dữ liệu số dùngtrong các phép tính Number (16 bytes nếu chọn kiểu số toán số học. là Replication ID). Các giá trị ngày tháng hoặc thời gian Date/Time 8 bytes. tính từ năm 100 đến năm 9999. Kiểu tiền tệ. Độ chính xác đến 15 số về Currency 8 bytes. bên trái dấu phẩy và 4 chữ số về bên phải Số theo thứ tự tăng dần, mỗi lần 1 đơn 4 bytes (16 bytes nếu vị) hoặc số ngẫu nhiên do Access sinh ra thuộc tính FieldSize được AutoNumber khi thêm một bản ghi mới để phân biệt thiết lập là Replication giữa các bản ghi trong một bảng.Trường ID). AutoNumber không thể bị sửa đổi Trường chỉ chứa một trong hai giá trị Yes/No 1 bit. (Yes/No, True/False, hoặc On/Off). Một đối tượng (như trang tính Excel, Tối đa 1 gigabyte (giới OLE Object văn bản Word, hình hoạ, âm thanh) được hạn bởi khoảng còn trống liên kết hoặcPTIT nhúng vào bảng. trên ổ đĩa) Hyperlink Liên kết Tối đa 2048 ký tự Tạo ra một trường mà cho phép ta nhập Cùng kích thước với Lookup liệu bằng cách chọn giá trị từ một bảng trường khoá dùng để thực Wizard khác, hoặc từ một danh sách các giá trị. hiện thao tác tìm kiếm. Ta chỉ có thể thiết lập các thuộc tính này ở phần trên cửa sổ thiết kế bảng dữ liệu (bảng Design view). b. Chỉnh sửa bảng Thêm một trường vào bảng dữ liệu trong chế độ thiết kế Design view: 15
  17. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 1. Mở bảng ở chế độ Design view. 2. Nhấn dòng muốn chèn thêm cột, nhấn Insert Rows trong tab Design trên thanh ribbon. 3. Trong cột Field Name nhập tên cho trường. 4. Trong cột Data Type, nhấn vào mũi tên, chọn kiểu dữ liệu từ danh sách 5. Thiết lập các thuộc tính cho trường. 6. Ghi lại mọi sự thay đổi khi đóng thoát. Quy định tính hợp lệ của dữ liệu trước khi lưu 1. Mở bảng ở chế độ Design view. 2. Nhấn chuột vào nút trên thanh công cụ để hiển thị trang thuộc tính của bảng. Trên dòng Validation Rule, nhập vào quy tắc xác định tính hợp lệ của dữ liệu. 3. Trên dòng ValidationText, đánh vào lời thông báo khi dữ liệu nhập vào vi phạm quy tắc dữ liệu. Ví dụ, “Hàng chỉ có thể được giao sau 01 ngày tính từ ngày đặt hàng” Ví dụ: Doanh nghiệp xác định là hàng chỉ có thể được giao đến khách sớm nhất là sau một ngày. Vậy quyPTIT tắc xác định tính hợp lệ của dữ liệu là: [Hạn giao hàng] >= [Ngày đặt hàng] + 1 (hình bên) Nếu ta nhập vào hạn giao hàng cùng ngày hoặc trước ngày đặt hàng, Access hiển thị ngay lời cảnh báo (Validation text). 16
  18. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Tạo chỉ mục sắp xếp dữ liệu 1. Mở bảng trong chế độ Design view. 2. Nhấn chuột vào nút lệnh Indexes trên thanh công cụ. 3. Tại dòng còn trống đầu tiên trong cột Index Name, đánh vào tên của chỉ mục. 4. Trong cột Field Name, nhấn chuột vào mũi tên bên phải, chọn trường dùng làm chỉ mục sắp xếp. 5. Nếu muốn chọn nhiều trường để làm chỉ mục, tại dòng tiếp theo trên cột Field Name, chọn trường tiếp theo (Lưu ý để cột Index Name bỏ trống trên dòng đó). Làm lại bước này cho đến khi đã có tất cả các trường muốn có trong chỉ mục (tối đa là 10 trường). Tạo khóa chính PrimaryKey Một trường có tính chất khóa là một trường chứa giá trị duy nhất, khác nhau giữa các bản ghi, dùng để phân biệt giữa bản ghi này và bản ghi khác. Để thiết lập tính chất khóa cho trường, mở cửa sổ Indexes, nhấn chuột vào tên trường, chuyển thuộc tính Primary và Unique thành Yes. Tạo một trường tìm kiếm dữ liệu từ các bảng dữ liệu khác Khi nhập dữ liệu cho một đơn đặt hàng, ta phải nhập vào tên khách hàng. Nếu thông tin về khách hàng đó đã được lưuPTIT ở trong bảng Khách hàng thì tốt hơn là ta tìm mã số của khách hàng đó và nhập vào bảng đơn đặt hàng. Ta nên chọn cách làm này, vì nếu ta nhập vào bằng tay thì rất dễ sai sót. Khi nhập liệu bị lỗi, Access sẽ không thể nhận ra khách hàng. Để làm được điều này, khi thiết kế bảng đơn đặt hàng, ta phải làm như sau : - Nhấn chuột vào trường Khách hàng, chọn Lookup Wizard trong cột Data type. Trong cửa sổ sau hiện ra tiếp theo, chọn mục thứ nhất. Nhấn Next để tiếp tục 17
  19. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Access hỏi chọn bảng nào chứa dữ liệu cần tìm. Chọn bảng Khách hàng. Nhấn Next để tiếp tục. PTIT - Access hỏi giá trị của trường nào sẽ được chọn hiển thị. Nếu ta chọn cùng lúc nhiều trường, chỉ trường trên cùng sẽ lưu dữ liệu vào trong bản ghi mới. Ở đây ta chọn 3 trường: Mã khách hàng, Tên công ty, và Địa chỉ. 18
  20. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT PTIT - Có tất cả 3 cột tương ứng với 3 trường, nhưng ta chọn mục Hide Key column để dấu không hiển thị trường khoá. Nhấn Next để tiếp tục. 19
  21. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Bước cuối cùng ta đặt tên cho trường : Mã Khách hàng. PTIT - Ghi lại mọi sự thay đổi bằng cách nhấn chuột lên nút lệnh Save trên thanh công cụ. Mở bảng Đơn đặt hàng ở chế độ nhập liệu. Với mỗi bản ghi bất kỳ, khi ta cần nhập vào một khách hàng, nhấn chuột vào mũi tên ở bên phải của cột Khách hàng, một danh sách các khách hàng từ trước đến nay của Doanh nghiệp hiện ra gồm 2 cột, cột Tên Khách hàng 20
  22. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT và cột Địa chỉ Khách hàng. Nhấn chuột vào tên khách hàng trên danh sách này để nhập dữ liệu vào trường. Rõ ràng với cách thiết kế trường tìm kiếm như thế này, ta có thể kiểm soát hoàn toàn quá trình nhập liệu, dữ liệu nhập vào luôn luôn đúng. Nếu bạn nhập vào tên một khách hàng mà chưa có ở bảng Khách hàng, chương trình sẽ báo lỗi. Hơn nữa, dù về mặt hiển thị, cột Khách hàng ở bảng đơn đặt hàng hiển thị tên khách hàng, nhưng thực tế cột này lại lưu giá trị Mã Khách hàng. Điều này cho phép giảm kích thước của CSDL vì mã khách hàng thì ngắn hơn tên khách hàng. c. Mở một bảng dữ liệu, nhập dữ liệu vào bảng 1. Trong cửa sổ Database, click Tables dưới Objects. 2. Chọn tên của Bảng muốn mở. 3. Để mở bảng ở chế độ thiết kế, Design view, nhấn Design trong thanh công cụ của cửa sổ Database. 4. Để mở bảng trong khung nhìn dạng lưới, Datasheet, nhấn Open. Sử dụng thanh công cụ của Trang dữ liệu Datasheet Sau khi đã thiết kế xong bảngPTIT dữ liệu , bấm để chuyển dang chế độ nhập dữ liệu. Các nút lệnh thao tác chính đối với một bảng trên thanh công cụ Toolbar: Cắt, copy, dán dữ liệu. In, xem trước khi in một báo cáo Sắp xếp theo thứ tự tăng dần, giảm dần Lọc dữ liệu theo giá trị chọn, theo form. Tìm kiếm thông tin, thay thế bằng thông tin mới. 21
  23. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Thêm, xoá một bản ghi. Mô hình liên kết giữa các bảng trong một CSDL. Liên kết với các ứng dụng Office khác. Xoá một dòng, một bản ghi Lập Khóa chính cho một bảng. Ngoài ra: - Để thêm một trường dữ liệu, chọn Column trong menu Insert. - Để đổi tên một cột dữ liệu, nháy đúp mũi tên chuột lên tiêu đề cột, đánh vào tên mới. - Để thay đổi thứ tự của một cột, nhấn trỏ chuột vào cột đó, giữ chuột và kéo cột đó đến vị trí mới. - Muốn giấu đi một cột, dùng chuột chọn cột đó, chọn lệnh Hide columns trong menu Format. - Muốn luôn cho một cột được hiển thị dù cho ta cuộn màn hình, dùng lệnh Format\Freeze columns. - Muốn thay đổi độ rộng của một cột, một dòng: Nháy đúp chuột vào lề của cột để thay đổi chiều rộng của cột đúng bằng chiều rộng của dữ liệu PTITNhấn và giữ trỏ chuột, kéo lề của dòng, cột để thay đổi chiều cao, độ rộng của dòng hay cột đó. 2.6.1.3 Tạo các liên kết giữa các bảng dữ liệu a. Tại sao lại phải xác định liên kết ? Sau khi đã xây dựng và nhập xong dữ liệu vào các bảng, ta phải chỉ cho Microsoft Access làm thế nào để kết xuất các dữ liệu. Bước đầu tiên là để làm điều đó là xác định các mối liên kết, relationship, giữa các bảng. Ví dụ ở đây, các trường từ 3 bảng khác nhau (nhân viên,khách hàng, bán hàng ) được tập hợp lại để hiển thị nội dung của cùng một hóa đơn bán hàng . Sự tập hợp này được thực hiện nhờ có các liên kết giữa các bảng. 22
  24. Phan Thị Hà- KhoaKhóa CNTT1 chính - Học viện CNBCVT Liên kết sẽ tìm kiếm các bản ghi có giá trị giống nhau tại trường dữ liệu chung, thông thường là giữa trường có thuộc tính khóa chính, vì nó chứa giá Trường mã nhân viên xuất hiện trong cả hai trị ID duy nhất đặc trưng bảng cho từng bản ghi, và một khoá ngoại - Foreign key - từ bảng khác. Khóa ngoại Ví dụ, mỗi nhân viên có thể liên kết đến nhiều mặt hàng mà nhân viên đó đã bán, bằng cách tạo relationship giữa bảng nhân viên và bảng bán hàng thông qua trường Mã nhân viên b. Các loại quan hệ Quan hệ Một – Nhiều Mối quan hệ một-nhiều là loại hình phổ biến nhất của liên kết. Trong liên kết này, một bản ghi ở Bảng A có thể có nhiều bản ghi tương ứng ở Bảng B, nhưng mỗi bản ghi ở Bảng B chỉ có một bản ghi tương ứng duy nhất ở Bảng A. Ví dụ, bảng nhân viên có liên kết một-nhiều với bảng bán hàng vì mỗi nhân viên có thể bán nhiều hàng, trong khi một hàng chỉ có thể thực hiện bởi một nhân viên. PTIT Một nhân viên Có thể bán nhiều hàng 23 Nhưng một hàng chỉ được bán bởi một nhân viên
  25. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Quan hệ nhiều – nhiều Trong loại hình này, một bản ghi ở Bảng A có thể có nhiều bản ghi tương ứng ở Bảng B và ngược lại. Quan hệ này chỉ được thể hiện khi có một Bảng thứ 3 chứa dữ liệu từ cả hai Bảng A và Bảng B. Ví dụ, mối liên kết giữa bảng nhân viên và bảng khách hàng là nhiều - nhiều vì nhân viên có thể bán cho nhiều khách hàng và mỗi khách hàng có thể mua nhiều mặt hàng của nhiều nhân viên Quan hệ một – một Trong mối quan hệ loại này, mỗi bản ghi ở Bảng A chỉ có một bản ghi duy nhất tương ứng ở Bảng B và ngược lại. Dạng quan hệ này thường hiếm, bởi thông tin loại này có thể lưu luôn vào một bảng chung c. Xác định liên kết Xây dựng liên kết bằng cách thêm các bảng có liên quan vào cửa sổ Relationships Window, rồi kéo trường khóa từ bảng này và thả vào trường tương ứng của bảng kia PTIT Kiểu liên kết Access tạo ra sẽ dựa trên các trường liên kết được xác định : - Liên kết một – nhiều nếu chỉ có một trong các trường liên kết là khoá chính hoặc có thuộc tính chỉ mục duy nhất (unique index) - Liên kết một – một nếu cả hai trường liên kết là khóa chính hoặc có thuộc tính unique indexes. - Liên kết Nhiều – nhiều khi có một bảng thứ 3 có khóa chính bao gồm hai trường là khoá ngoại (foreign key: một hoặc nhiều trường mà tham chiếu đến trường khóa chính của các bảng khác) từ hai bảng kia. 24
  26. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 2.6.2 Truy vấn - Query Như đã nói ở trên, truy vấn là công cụ mạnh của Access cho phép người sử dụng dùng ngôn ngữ truy vấn có cấu trúc SQL (Structure Query Language) hoặc công cụ truy vấn bằng ví dụ QBE (Query by Example) để thực hiện việc rút trích, chọn lựa dữ liệu hoặc cập nhật dữ liệu (thêm, sửa, xóa) trên các bảng. Có nhiều loại truy vấn, thông dụng nhất là Select query, ngoài ra còn có một số loại khác như: Update query, Append query, Delete query, rosstab query a. Quy trình tạo mới một query Trong cửa sổ Database, nhấn Create chọn Query Design nếu muốn tự thiết kế truy vấn, chọn Query Wizard nếu muốn Access tự tạo ra các truy vấn cho mình. Nếu ta chọn Query Design, cửa sổ Show Table hiện ra yêu cầu ta chọn các bảng cần để xử lý thông tin. Nhấn đúp chuột vào tên của bảng mà ta lấy các bản ghi của nó làm cơ sở. Lưới thiết kế dữ liệu Datagrid Chọn các bảng chứa các bản ghi ta muốn xử lý PTIT Xác định mối liên kết giữa các bảng trong truy vấn, nếu có (Dùng chuột kéo trường liên kết giữa hai bảng từ bảng này sang bảng kia). 25
  27. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Nhấp đúp chuột để chèn tên trường vào lưới thiết kế, hoặc dùng chuột chọn tên trường từ danh sách Tại dòng Field, nhấn vào mũiPTIT tên bên phải của cột để làm hiện ra danh sách các trường dữ liệu (Field list),chọn trường cần thiết từ danh sách. Hoặc ta có thể dùng chuột nhấn đúp vào tên trường hiện ra ở phía trên, Access tự động chèn trường đó vào lưới thiết kế 26
  28. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT b. Cách thức chỉnh sửa một query Thêm một bảng hoặc một truy vấn khác vào một truy vấn 1. Mở truy vấn ở chế độ Design view. 2. Nhấn Show Table 3. Trong hộp thoại Show Tables, nhấn tab liệt kê danh sách các đối tượng chứa dữ liệu ta cần làm việc. Nếu bảng ta cần lại ở một CSDL khác thì phải liên kết bảng đó vào CSDL hiện hành trước. 4. Nhấn vào tên của đối tượng ta muốn thêm vào truy vấn. 5. Nhấn Add, rồi Close. 2.6.2.1.1.1 Chú ý: - Có thể thêm bảng hoặc truy vấn khác vào một truy vấn bằng cách dùng chuột kéo bảng hay truy vấn đó từ cửa sổPTIT Database vào cửa sổ thiết kế của truy vấn (Design view). - Nếu có nhiều bảng hay truy vấn trong một truy vấn, chúng cần phải được kết nối. Đưa dữ liệu từ nhiều bảng hoặc truy vấn vào một truy vấn Khi thêm nhiều bảng hoặc truy vấn vào một truy vấn, ta cần kiểm tra trường chung giữa chúng phải được kết nối với nhau để Access có thể kết nối dữ liệu. Nếu các bảng trong một truy vấn không được kết nối với nhau, trực tiếp hoặc gián tiếp, Access không thể xác định được các bản ghi nào được kết nối với các bản ghi nào, do đó nó hiển thị tất cả các tổ hợp các bản ghi (gọi là một "cross-product" hay "Cartesian product") giữa các bảng. Vì vậy, nếu mỗi bảng có 10 bản ghi, kết quả của truy vấn trên cơ sở hai bảng sẽ chứa 100 bản ghi (10*10). Điều đó cũng có nghĩa là truy vấn cần nhiều thời gian để chạy và thậm chí sẽ tạo ra các kết quả vô nghĩa. Nếu ta đã tạo các quan hệ giữa các bảng trong cửa sổ Relationships, Access tự động 27
  29. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT hiển thị đường liên kết khi ta thêm các bảng vào truy vấn trong chế độ Design view. Nếu đã chọn duy trì tính toàn vẹn tham chiếu, Access cũng sẽ hiển thị "1" ở trên đường kết nối cho biết bảng nào là ở bên một trong mối quan hệ một - nhiều và dấu vô hạn ở bên bảng nhiều. Nếu chưa bao giờ tạo quan hệ, Access tự động tạo các liên kết nếu ta thêm hai bảng vào một truy vấn và các bảng có một trường cùng tên, chứa kiểu dữ liệu tương thích lẫn nhau, và nếu một trong những trường liên kết có thuộc tính khóa chính. Biểu tượng một và nhiều không được hiển thị trong trường hợp này, bởi vì ta không chọn duy trì tính toàn vẹn tham chiếu. Kết nối một nhiều chọn toàn vẹn tham chiếu Kết nối một nhiều không chọn toàn vẹn tham chiếu Chọn các bản ghi ở 2 bảng mà có giá trị trường liên kết như nhau PTIT Cách thực hiện các tính toán trong một truy vấn Có nhiều kiểu tính toán trong một truy vấn: tính tổng, tính trung bình giá trị của một trường, nhân giá trị của nhiều trường, Kết quả hiển thị dựa trên dữ liệu hiện tại được lưu trong các bảng, và Access sẽ chạy lại các tính toán khi ta mở một truy vấn, vì vậy kết quả luôn phản ánh số liệu mới nhất. Để tính toán, ta có thể sử dụng các hàm do Access cung cấp hoặc các hàm do ta tự viết ra. Sử dụng các hàm có sẵn, được gọi là hàm tính tổng - totals calculation, nếu ta muốn tính toán trên một nhóm hoặc toàn bộ các bản ghi. Các hàm này bao gồm sum, average, count, minimum, maximum, standard deviation, hoặc variance. Lưu ý chỉ chọn một hàm tính tổng cho mỗi trường ta cần xử lý số liệu, trong dòng Total trong lưới thiết kế. 28
  30. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Trong lưới thiết kế, ta có thể chỉ ra các tiêu chuẩn để hạn chế nhóm các bản ghi sẽ được tính toán. Một tính toán tuỳ chọn cho phép ta tính toán các giá trị dạng số, ngày tháng và ký tự dựa trên các số liệu từ một hoặc nhiều trường, ví dụ tính tiền thuế, tổng tiền trả, Để làm được điều này, ta phải tạo trường tính toán, calculated field, ngay trong lưới thiết kế, bằng cách nhập vào biểu thức vào một ô Field còn trống trong lưới thiết kế truy vấn. Ví dụ: Tính tổng số đơn vị sản phẩm còn ở trong kho bằng cách cộng hai trường Số lượng sản phẩm còn trong kho và Số lượng sản phẩm đã đặt hàng sắp nhập kho: Sum([SLgKho]+[SLgĐHg]). Ta cũng có thể dùng Update query để sửa đổi đồng loạt giá trị cho một trường, ví dụ tăng đồng loạt 5% giá bán các sản phẩm. Ví dụ: Để khen thưởng nhân viên giao dịch, Giám đốc muốn biết thành tích bán hàng mà họ đã thực hiện được. Khi đó, phòng bán hàng phải liệt kê chi tiết từng hợp đồng bán hàng mà mỗi nhân viên đã thực hiện được. Thông tin thể hiện bao gồm Tên nhân viên, Mã đơn đặt hàng, tổng giá trị hàng bán trong đơn đặt hàng đó (không tính tiền vận chuyển). Ta thiết kế như sau: PTIT Cột thứ 3 là một trường tính toán. Trường này được đặt tên là “Tổng Doanh số”, với biểu thức tính toán là: [Số lượng]*[Đơn giá]*(1-[Chiết khấu]) Để đảm bảo thống nhất kích thước của kết quả, ta dùng hàm CLng (convert long) nhằm mục đích chuyển đổi dữ liệu kiểu số sang loại Long Integer. 29
  31. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Clng([Số lượng]*[Đơn giá]*(1-[Chiết khấu])) Ta muốn tính tổng giá trị của hợp đồng, vậy nên dùng hàm Sum: Sum(Clng([Số lượng]*[Đơn giá]*(1-[Chiết khấu]))) Kết quả khi chạy truy vấn sẽ như sau: Ở đây ta thấy nhân viên mang mã NV01 bán được 2 hợp đồng, số 1 và số 5, với giá trị mỗi hợp đồng là $600 và $ 1.500. PTIT Đến đây, Giám đốc muốn tổng kết mỗi nhân viên đạt được doanh số bán hàng là bao nhiêu:Yêu cầu này có nghĩa là, ông ta không quan tâm đến cá nhân mỗi đơn đặt hàng (mã, ngày tháng, số lượng mỗi loại sản phẩm, ), mà chỉ quan tâm đến tổng tiền hàng cộng dồn mà nhân viên đó đã bán được. Thực hiện yêu cầu này, ta đơn giản là chỉ bỏ đi trường MãĐĐHg ở trong lưới thiết kế trong truy vấn vừa tạo phía trên: dùng con chuột nhấn vào thanh tiêu đề của cột đó, cột chuyển sang màu đen, bấm phím Delete. Kết quả thể hiện như hình: 30
  32. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Tuy vậy, ta cũng có cách như sau: Đánh vào biểu thức: Clng([Số lượng]*[Đơn giá]*(1- [Chiết khấu])) trong dòng Field, chọn Sum trong dòng Total. Kết quả cho ra giống hệt trên. c. Các truy vấn hành động - Action query Truy vấn hành động là một loại truy vấn mà có tác động thay đổi đến rất nhiều bản ghi chỉ trong một lần thực hiện. Có 4 kiểu truy vấn hành động: - Truy vấn xoá: Delete - Truy vấn sửa : Update - Truy vấn bổ sung (thêm bản ghi): Append - Truy vấn tạo bảng: Make-table Delete query: PTIT Xoá một nhóm các bản ghi từ một hoặc nhiều bảng. Ví dụ: Xoá tất cả các đơn đặt hàng của khách hàng có mã số là ALFKI. Các bước thiết kế được mô tả như hình dưới. - Nhấn Create, chọn Query Design, chọn bảng Đơn đặt hàng vào trong lưới thiết kế. Nhấn vào biểu tượng chọn Action query, chọn Delete Query. - Nhấn đúp vào dấu * ở trong bảng Đơn đặt hàng. Hành động này sẽ chọn tất cả các trường của bảng vào trong lưới thiết kế. 31
  33. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Nhấn đúp vào dòng Mã Khách hàng trong bảng Đơn đặt hàng. Tại dòng Criteria, đánh vào công thức: =[Tên khách hàng cần xoá]. - Nhấn vào nút để chạy truy vấn. Khi Access chạy truy vấn này, nó tự động đưa ra một cửa sổ hỏi ta Tên khách hàng cần xoá là gì?. Ta gõ vào “ALFKI”, nhấn OK - Để đảm bảo tránh rủi ro, Access sẽ hỏi lần cuối nếu ta muốn xoá các bản ghi này. Nhấn Yes nếu đồng ý xoá, Cancel nếu huỷ lệnh. Đến đây, khi ta nhấn Yes, 1 bản ghi có Mã khách hàng = ALFKI sẽ bị xoá. Update query: Thực hiện các thay đổi về mặt tổng thể đến một nhóm các bản ghi của một hoặc nhiều bảng. Có nghĩa là dùng để chỉnhPTIT sửa dữ liệu của các trường trong một hoặc nhiều bảng Các bước tiến hành: - Chọn các bảng truy vấn/nguồn - Chọn menu Design trong nhóm Query Type chọn Update - Kéo các trường cần sửa và các trường dùng để lập điều kiện vào hàng Field. Chú ý: cùng một trường có thể là trường cần sửa, vừa là trường điều kiện - Đặt biểu thức vào ô Update To của các trường cần sửa. Giá trị của các biểu thức sẽ là giá trị mới của các trường này - Đặt các biểu thức điều kiện vào các ô Criteria của các trường điều kiện - Ghi thiết kế và đặt tên cho truy vấn 32
  34. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Thực hiện truy vấn. Kết quả: Một số trường sẽ được chuyển đổi theo như thiết kế Make-table query Make-table query để tạo một bảng mới từ một phần hoặc tất cả dữ liệu chứa trong một hoặc nhiều bảng. Make-table query thường được dùng để tạo bản lưu số liệu, tạo bảng chứa tất cả các bản ghi cũ trước khi xoá chúng ra khỏi CSDL hiện tại. Quy trình: - Tạo một truy vấn, chọn các bảng hoặc truy vấn chứa các bản ghi ta muốn có trong bảng mới. - Trong Design view, nhấn vào mũi tên bên cạnh nút lệnh Query Type trên thanh Ribbon, nhấn Make Table. Hộp thoại Make Table xuất hiện. - Trong hộp Table Name, nhập vào tên của bảng ta muốn tạo. - Nhấn Current Database để tạo bảng mới trong CSDL hiện thời đang mở; hoặc nhấn Another Database và đánh vào tên của CSDL ta muốn lưu bảng mới. Đánh vào tên đường dẫn nếu cần. - Nhấn OK. - Kéo các trường muốn có trong bảng mới từ field list vào khung thiết kế truy vấn (design grid). - Nhập vào tiêu chuẩn trong ô Criteria. - Xem kết quả của bảng mới trước khi tạo nó, nhấn View trên thanh Ribbon. Muốn quay lại thiết kế tiếp, nhấn View . - Nhấn Run trên thanh Ribbon Lưu ý: PTIT - Bấm CTRL+BREAK để ngắt quá trình tạo bảng mới khi đang chạy. - Dữ liệu trong bảng mới được tạo sẽ không kế thừa các thuộc tính của bảng gốc. Append query: Thêm các bản ghi từ một bảng vào một bảng khác Quy trình: - Tạo một truy vấn chứa các bản ghi mà ta muốn thêm vào bảng khác. - Trong cửa sổ Design view, nhấn mũi tên bên cạnh Query Type ở trên thanh công cụ, nhấn Append. Hộp thoại Append xuất hiện. - Trong hộp Table Name, nhập tên của bảng mà ta muốn thêm các bản ghi vào. 33
  35. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Nhấn Current Database, nếu bảng ở trong database hiện hành; hoặc nhấn Another Database và đánh vào tên của database nơi bảng đang được lưu. Đánh vào đường dẫn nếu cần thiết. - Ta cũng có thể nhập đường dẫn tới một CSDL Microsoft FoxPro, Paradox, hoặc dBASE. - Nhấn OK. - Dùng chuột lôi từ danh sách các trường vào lưới thiết kế các trường mà ta muốn thêm vào bảng khác và các trường mà ta muốn lấy làm tiêu chuẩn để chọn lựa các bản ghi. - Nếu tất cả các trường của hai bảng có cùng tên như nhau, ta đơn giản chỉ cần lôi dấu (*) vào lưới thiết kế. - Nếu các trường ta vừa chọn có cùng tên ở cả hai bảng, Access tự động điền tên tương ứng vào dòng Append To. Nếu không, ta phải tự nhập vào tên của các trường của bảng mà ta muốn thêm bản ghi tới vào trong dòng Append To. - Trong ô Criteria, chỉ rõ tiêu chuẩn của các bản ghi được lựa chọn. - Để kiểm tra các bản ghi trước khi chạy query, nhấn vào View trên thanh công cụ. Để quay trở lại Design view, nhấn lần nữa View . - Nhấn Run để thực hiện truy vấn. Ví dụ: Nhân dịp 10 năm ngày thành lập Doanh nghiệp, Giám đốc quyết định sẽ gửi thư cảm ơn đến tất cả các khách hàng tại Hà nội Bộ phận Tin học nghiên cứu xem xét dữ liệu, nhận thấy tất cả các thông tin về khách hàng được lưu ở hai bảng, một tên là Khách hàng chứa các thông tin liên quan đến các khách hàng của doanh nghiệp từ năm 1999, một tên là Khách hàng cũ chứa các thông tin liên quan đến các khách hàng của Doanh nghiệp từ trước năm 1999. Thực hiện nhiệm vụ, Bộ phận Tin học khi đó sẽ phải kết xuất từ hai bảng các bản ghi mà trường Địa chỉ cóPTIT giá trị là Hà nội vào một bảng thứ ba tên là Thư khuyến mại. Họ tạo ra một bảng mới có tên là Thư khuyến mại, trong đó chứa tất cả các bản ghi của các khách hàng có trụ sở tại Hà nội. 34
  36. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Bước 1: Tạo query Make-table dựa trên bảng Khách hàng. Chỉ ra các trường mà ta muốn có ở trong bảng mới. Xem hình. Bước 2: Chọn Make-table query từ trong danh sách Action Query. Trong hộp thoại Make table, đánh vào Thư cảm ơn rồi nhấn OK. Bước 3: Nhấn Run để thực hiện truy vấn. Đóng lại truy vấn này lại. Bước 4: Tạo một Append query dựa trên bảng Khách hàng cũ. Nhấn New trong cửa sổ Database, chọn Design view, chọn bảng Khách hàng cũ từ danh sách các bảng. Dùng chuột lôi các trường Tên công ty, Người đại diện, Địa chỉ, Tỉnh thành, điện thoại vào trong PTIT lưới thiết kế (xem hình). Trong cột chứa trường Tỉnh thành, tại dòng Criteria đánh vào “Hà nội”. 35
  37. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Bước 5: Chọn kiểu Append query, trong hộp thoại Append, nhập vào Thư cảm ơn trong mục Table Name. Bước 6: Kiểm tra lại trước khi chạy query. Nhấn View. Nếu các bản ghi được liệt kê đúng theo yêu cầu đặt ra, chuyển sang bước tiếp. Bước 7: Nhấn Run để thực hiện truy vấn. Đóng lại truy vấn này lại. Đến đây bộ phận tin học đã lọc xong dữ liệu. Việc in thư, bao gồm phong bì và lá thư, cho từng khách hàng sẽ bằng cách hoặc là tự động dùng tính năng Mail-merge trong Microsoft Word, hoặc là sử dụng Report trong Microsoft Access. d.Xử lý một số tình huống (thông qua ví dụ) Tình huống 1 Báo cáo tổng doanh số bán của từng sản phẩm, liệt kê theo danh mục của sản phẩm đó và theo tên, thứ tự tăng dần. PTIT Giải pháp: - Do sắp xếp theo danh mục sản phẩm và tên của sản phẩm, vậy nên trong truy vấn ta phải có hai bảng Danh mục hàng và Sản phẩm nhằm lấy giá trị của hai trường Tên danh mục và Tên sản phẩm để hiển thị. - Doanh số của một sản phẩm trong một đơn đặt hàng là bằng số lượng nhân với đơn giá bán. Dữ liệu này được lưu trong bảng Đơn đặt hàng chi tiết nên phải đưa nó vào lưới thiết kế. Để tính tổng doanh số, tại dòng Field nhập vào biểu thức: Đơn giá ta phải dùng hàm Sum tại dòng Total của lưới thiết kế. 36
  38. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Nhằm sắp xếp, ta chọn Ascending tại dòng Sort. - Sau khi đã thiết kế xong, nhấn View để xem kết quả. Tình huống 2 Báo cáo tổng doanh số bánPTIT ra của mỗi danh mục hàng. Giải pháp: - Vì cần có tên danh mục hàng nên phải đưa bảng Danh mục hàng vào trong truy vấn. - Doanh số bán được tính từ bảng Đơn đặt hàng chi tiết, bằng cách nhân giá trị của hai trường Đơn giá và Số lượng. Ta dùng hàm Sum để tính tổng của nó. - Vì hai bảng Danh mục hàng và bảng Đơn đặt hàng chi tiết không có trường nào chung để liên kết, vậy phải đưa vào một bảng trung gian có chứa trường chung với cả hai bảng trên, đó là bảng Sản phẩm: trường Mã sản phẩm chung với Đơn đặt hàng chi tiết và trường Mã danh mục chung với bảng Danh mục hàng. - Xác lập mối quan hệ giữa các bảng. 37
  39. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Cách thiết kế giống trường hợp trên, nhưng bỏ đi cột của trường Tên sản phẩm. - Nhấn View để xem kết quả Tình huống 3 Liệt kê doanh số tất cả các đơn đặt hàng đã hoàn thành giữa hai ngày nào đó. Giải pháp: - Tất cả các thông tin về mỗi một lần bán hàng được lưu trong hai bảng Đơn đặt hàng và Đơn đặt hàng chi tiết, do đó ta sẽ đưa hai bảng này vào trong lưới thiết kế. Thiết lập mối quan hệ giữa hai bảng này. - Một khi đơn đặt hàng đã hoàn thành thì trường Ngày giao hàng sẽ phải chứa giá trị ngày tháng, bằng không sẽ là giá trị trống. Vì vậy, chọn trường Ngày giao hàng làm thông tin đầu tiên. Để giới hạn chỉ cho những đơn hàng giữa hai ngày nhất định, ta nhập vào công thức: Between [Ngày bắt đầu] And [Ngày kết thúc] trong dòng Criteria. Lấy thêm trường Mã Đơn đặt hàng. Tạo thêm thông tin về Doanh số hàng bán (xem hình). Khi chạy truy vấn này, Access sẽ không biết [Ngày bắt đầu] và [Ngày kết thúc] là gì, vì vậy nó coi đó là một biến số, và do đó sẽ hiển PTITthị một cửa sổ để hỏi giá trị của các biến số này. 38
  40. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Nhấn nút Datasheet View để xem kết quả hiển thị. Đầu tiên, Access sẽ hỏi ngày bắt đầu sau đó hỏi ngày kết thúc kết quả truy vấn hiển thịPTIT các bản ghi như hình bên. e. Sử dụng các biểu thức chọn lọc bản ghi Nếu muốn truy vấn hiển thị theo điều kiện nào đó thì trên hàng Criteria đưa vào điều kiện hay biểu thức chọn lọc của các trường tại cột của trường đó Lọc các bản ghi theo biểu thức chọn: Ta có thể dùng các toán tử sau đây để lựa chọn các bản ghi. 39
  41. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 2.6.2.1.1.2Ví dụ T Ý nghĩa o á n t ử > 102 Lớn hơn 102 = >= 102 Lớn hơn hoặc bằng 102 #1/1/1999# Khác ngày 1-1-1999 = = 1000; = #1/1/99# Bằng Betwee Between #1/1/199# and Từ ngày 1-1-1999 đế ngày 1-1- n and #1/1/2000# 2000 Like Like “Hà nội” Bằng Hà nội Các ký tự thay thế (Wild character) Khi thiết kế một truy vấn, đôi khi ta muốn tìm kiếm theo một khuôn dạng linh hoạt chứ không phải cố định. Ví dụ Ta muốn tìm tất cả các khách hàng có tên bắt đầu bằng chữ “H”, Khi đó, ta dùng ký tự thay thế với từ khoá Like hoặc not like. Ký tự Ý nghĩa * Thay thế một số bất kỳ các ký tự ? Thay thếPTIT một ký tự tại vị trí ? xuất hiện # Thay thế một ký tự số tại vị trí # xuất hiện [ ] Thay các ký tự bất kỳ trong ngoặc vuông ! Thay thế ký tự bất kỳ ngoại trừ ký tự sau dấu than trong ngoặc vuông - Từ ký tự đến ký tự Ví dụ: Biểu thức Các giá trị có thể có Like “Hư?ng” Hương, Hưởng, Hường, Like “L*ng” Long, Ling, Levering, 40
  42. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Like “*th” 128th, Smith, Breath, Like “*on*” condinments, confection, congress, Like “10/*/2000” Tất cả ngày mồng 10 các tháng Like “1#23” 1123, 1223, 1323, Like “Hư[ơở]ng” Hương, Hưởng, nhưng không có Hường, Like “Sm[!au]th” Khác với Smath và khác Smuth Like “X[1-9]BC” X1BC, X2BC, X9BC Like “X[a-c]BC” XaBC, XbBC, XcBC Tìm lọc các bản ghi có hoặc không có giá trị Nếu muốn chọn các bản ghi có giá trị của một trường nào đó là rỗng, thêm từ khoá IS NULL vào dòng điều kiện Criteria. Ngược lại ta dùng IS NOT NULL. Ví dụ: Trường Ngày chuyển hàng Ý nghĩa Bảng Đơn đặt hàng Criteria is null Tìm những đơn đặt hàng nào vẫn chưa chuyển hàng đi. Trường Ngày chuyển hàng Ý nghĩa Bảng Đơn đặt hàng PTIT Criteria is not null Tìm những đơn đặt hàng nào đã giao xong hàng cho khách (đã hoàn thành hợp đồng). Lọc các bản ghi có chứa giá trị thuộc một tập hợp nào đó Dùng toán tử IN (danh sách các giá trị). Trường Ngày đặt hàng Mã Khách ý nghĩa hàng Bảng Đơn đặt hàng Khách hàng Liệt kê những ngày trong tháng 1 năm 2000 mà 3 khách hàng có tên là Long, Hùng hoặc là Dũng Criteria Like IN (Long, đã đến đặt hàng tại doanh nghiệp. #*/01/2000# Hùng, Dũng) 41
  43. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT f)Các hàm thường dùng khi thiết kế một truy vấn Left(chuỗi, n) : Hàm này dùng để cắt ra n ký tự kể từ phía bên trái của một chuỗi ký tự. Cú pháp: Left(chuỗi, số_ký_tự_sẽ_lấy) Ví dụ: Khi trao đổi nghiệp vụ trên mạng, mỗi bưu cục được gắn cho một tiêu đề tên. Tiêu đề này bao gồm hai phần, phần đầu là phần mã số bưu chính và phần tiếp là tên bưu cục. Ví dụ, trên các ấn phẩm nghiệp vụ, người ta tham chiếu đến Bưu cục Nguyễn Trãi thuộc cơ sở đào tạo Hà đông bằng tiêu đề 31103 Nguyễn Trãi. Quy tắc đánh số hiệu cho một bưu cục trên mạng là: . Độ dài mã số tổng cộng: 5 chữ số. . 2 ký tự đầu: Mã tỉnh. . 3 ký tự sau: Số hiệu của bưu cục trong mạng nội tỉnh. Vậy, để lọc ra các bưu cục thuộc Bưu điện Hà nội, có mã vùng là 10, từ trong bảng Túi gói đi đến, ta có thể thiết kế một truy vấn có cấu trúc như sau: Field =LEFT(Mã Bưu cục, 2) Bưu cục nhận túi gói Bảng Túi gói đi đến Túi gói đi đến Sort Show   Criteria = “10” Right():Dùng hàm Right(chuỗi, n) để trích ra n ký tự, tính từ phải sang, từ chuỗi ký tự cho trước. Giả sử trong bảng Bưu cục có các mã bưu cục sau: 10103 A, 15201 B, 30101 C, 28201 D. PTIT Dim sMaxBwucucj as string sMaxBwucucj=Inputbox(“Nhập vào mã bưu cục”) Msgbox “Mã số nội tỉnh của Bưu cục là “ & Right(sMaxBwucucj,3) Mid(chuỗi, n, m):Trích ra từ chuỗi m ký tự, kể từ vị trí n. Trim(chuỗi):Loại bỏ dấu cách ở hai đầu chuỗi ký tự. DatePart(Datepart, DateExpr):Thể hiện các giá trị kiểu ngày tháng. Trong đó các giá trị của Datepart là: Datepart ý nghĩa Ví dụ Trả về [Ngày đặt hàng] = #19-07-2001# 42
  44. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT [Giờ đến] = 19:07':20'' d Ngày DatePart("d", [Ngày đặt hàng]) 19 m Tháng DatePart("m", [Ngày đặt hàng]) 7 yyyy Năm DatePart("yyyy", [Ngày đặt hàng]) 2001 q Quý DatePart("q", [Ngày đặt hàng]) 3 ww Tuần DatePart("ww", [Ngày đặt hàng]) w Ngày DatePart("w", [Ngày đặt hàng]) trong tuần h Giờ DatePart("h", [Giờ đến]) 19 n Phút DatePart("n", [Giờ đến]) 7 s Giây DatePart("s", [Giờ đến]) 20 Sum(biểu thức):Tính tổng của biểu thức. Biểu thức đây có thể chỉ là một trường, cũng có thể là công thức cộng trừ nhân chia của nhiều trường. Count: Đếm các giá trị của một trường dữ liệu trong một bảng. 2.6.3 Biểu mẫu nhập liệu (FORM) a. Khái niệm biểu mẫu Một biểu mẫu - Form - là một giao diện dạng cửa sổ cho phép người sử dụng xây dựng nên các màn hình dùng để cập nhật hoặc xem dữ liệu lưu trong các bảng, ngoài ra cũng cho phép người sử dụng tạo ra các hộp thoại hỏi đáp giữa người sử dụng và hệ thống ứng dụng. Việc chưa có một từ trong tiếng Việt đủ chính xác để biểu đạt hết ý nghĩa của khái niệm Form khiến các chuyên gia tin học khuyên người dùng nên sử dụng chính từ gốc không dịch. Kể từ đây trở đi, từ Form sẽ được sử dụng vì trong môi trường Access, tất cả các từ khoá đều bằng tiếng Anh; việcPTIT dùng từ gốc giúp người dùng làm quen với chương trình nhanh hơn là việc dùng từ Việt hoá do tránh được việc phải dịch xuôi rồi lại dịch ngược. Mối liên kết giữa form và nguồn dữ liệu của nó được thể hiện bằng các đối tượng có giao diện đồ họa, được gọi là điều khiển. Kiểu điều khiển được sử dụng thông thường nhất để hiển thị và nhập liệu là hộp văn bản. Các khung nhìn của form Một Form có ba khung nhìn: 43
  45. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Design view - thiết kế, Form view - dạng cửa sổ và Layout view - dạng lưới dữ liệu. Ban đầu, lúc thiết kế form ta dùng chế độ thiết kế (Design). Nhóm Control cho phép thêm các điều khiển vào form Nhóm Themes để thay đổi font chữ, kiểu nét khung, các hiệu ứng màu sắc, Vùng Detail cho phép hiển thị PTITcác điều khiển dữ liệu Thước đo để đặt các điều khiển vào đúng vị trí mong muốn, căn hàng, Thiết kế xong form dữ liệu, chuyển sang dạng Form view hoặc Datasheet dùng hiển thị 44
  46. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT dữ liệu. Các khu vực trên một form PTIT Form Header: Khu vực trên cùng của một Form. Thông thường người ta sử dụng khu vực này làm nơi hiển thị dòng tiêu đề của Form. Form Footer: Khu vực nằm ngang dưới cùng của Form. Khu vực này thường chứa các nút lệnh hành động như In, Lọc dữ liệu, Tìm kiếm, Mở một Form mới Detail: Phần chi tiết của form. Nội dung của tất cả các trường (field) của một bảng dữ 45
  47. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT liệu (bảng) sẽ được hiển thị ở đây. Các đối tượng khác như hình vẽ, bảng tính, đối tượng liên kết OLE cũng được hiển thị ở phần này. Người ta gọi chung tất cả các đối tượng này là các điều khiển – control. Page Header: Khi sử dụng ngắt trang - Page break - trong một form, ta sử dụng khu vực này để hiển thị một thanh tiêu đề như nhau cho tất cả các trang của một form. Page Footer: Khi sử dụng ngắt trang - Page break - trong một form, ta sử dụng khu vực này để duy trì sự hiển thị nhất quán cho tất cả các trang của một form. b. Thiết kế form: Trong Access có 2 cách chính để thiết kế Form - Tạo Form dùng Form Winzard: Đây là cách nhanh chóng dể có thể tạo được một form nhập dữ liệu cho các bảng dữ liệu trên một CSDL. Cách này dễ làm nhưng kết quả của nó không được tốt lắm, thường thì phải chỉnh sửa nhiều thì mới được Form theo như ý muốn của người sử dụng - Thiết kế Form dùng Design View: Đây là cách tạo Form chuyên nghiệp. Cách này có nhiều bước phức tạp đồi hỏi nhiều đến kinh nghiệm và trình độ của người lập trình. Nhưng kết quả làm ra luôn đáp ứng được các yêu cầu khắt khe nhất của người sử dụng Tạo mới form bằng wizard 1. Trong cửa sổ Database, chọn Create trong nhóm Forms chọn Form Wizard 2. Hộp thoại Form WizardPTIT xuất hiện như hình vẽ. 46
  48. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 3. Chọn tên bảng cần tạo Form nhập dữ liệu ở mục Tables/Queries. Sau đó Add (thêm) các trường cần nhập dữ liệu lên form từ danh sách Available Fields: bằng nút> : PTIT 4. Chọn kiểu canh lề các đối tượng trên form:chúng ta có thẻ chọn một trong các kiểu ở dưới, nhưng tốt nhất hãy dùng kiểu Columnar: 47
  49. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 5. Nhập tiêu đề cho form PTIT 6. Chọn Finish để kết thúc quá trình tạo form: Thiết kế form theo nhu cầu (Tạo Form ở chế độ Design View) 48
  50. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Trước khi thực hiện thiết kế ta cũng phải thực hiện bước 1 và bước 2 ở phần “ tạo mới form bằng wizard” sau đó lựa chọn chế độ Design View rồi sử dụng các phím chức năng, hộp công cụ để tạo Form : Hộp công cụ tạo Form (Controls) Để hiển thị hộp công cụ vào Design chọn nhóm Controls. Hộp công cụ có dạng như sau : Ý nghĩa các nút: 1. Select Objects: Chọn đối tượng 2. Label: Dùng để tạo một nhãn để chứa văn bản hướng dẫn hoặc tính toán 3. Option Group: Dùng để tạo một nhóm tự động 4. Option Button: Dùng để tạo một nút lựa chọn 5. Combo box: Dùng để tạo một danh sách lựa chọn 6. Command Button: Dùng để tạo nút lệnh để khi kích vào sẽ hoành thành một nhiệm vụ 7. Unbound Objects Freme: Bổ sung vào biểu mẫu một đối tượng OLE 8. Page Break: Cho máy in biết bắt đầu một trang mới 9. Subform/Subreport: Bổ PTITsung một biểu mẫu phụ vào biểu mẫu chính 10. Rectangle: Tạo một hình chữ nhật 11. Control Wizard: Bật tắt chế độ Control Wizard 12. T ext Box: Tạo một hộp văn bản 13. Toggle Button: Tạo một nút thay đổi từ On sang Off 14. Check Box: Tạo một hộp kiểm tra 15. List Box: Tạo một hộp liệt kê qua đó có thể chọn lựa một giá trị 16. Image: Hiển thị đồ họa trên form 17. Bound Objects Frame: Hiển thị nội dung một trường OLE 18. Tab Control: Chèn một điều khiển Tab 49
  51. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 19. Line: Vẽ một đường thẳng 20. More Controls: Kích vào nút này sẽ mở ra danh sách các điều khiển khác có thể được thêm vào hệ thống Thiết kế mẫu biểu bằng hộp công cụ:  -Sử dụng Textbox hoặc Fields list để thiết kế.Ta thực hiện các bước sau: - Tại cửa sổ Database: Trên thanh Ribbon ta chọn Create, trong nhóm Forms chọn Form Design. - Xuất hiện Form trắng ở chế độ Design View - Tạo tiêu đề form Kích phải chuột lên Form chọn Form Header/Footer Kích chuột vào nút (lable) trên nhóm lệnh Controls và đưa chuột ra vùng Form Header, gõ tiêu đề ( ví dụ : Phiếu chi tiết bán hàng) - Thiết kế các trường Trên thanh Ribbon ở nhóm lệnh Tools kích chuột vào Add Existing Fields Kéo các trường cần thiết từ hộp thoại vào phần Detail của form - Cửa sổ thiết kế form như sau: PTIT - Chọn File/Save để lưu biểu mẫu này - Đóng cửa sổ thiết kế lại. Nếu muốn chạy 1 Form vừa tạo thì từ cửa sổ Database trong thanh Navigation Pane kich phải chuột vào tên Form, rồi chọn Open . 50
  52. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT  Sử dụng Combo Box và check Box : Như đã giới thiệu ở trên. Hộp Combo Box được dùng để tạo danh sách lựa chọn cho một dữ liệu cho 1 trường bất kỳ. Hộp CheckBox được dùng để chọn lựa giá trị Yes hoặc No cho trường có kiểu logic. Giả sử chúng ta có CSDL sau: Giả sử bảng nguồn Nhân viên đã có dữ liệu Yêu cầu: Tạo một form cho phép nhập danh sách bán hàng như sau: PTIT Khi nhập dữ liệu thì trường Mã nhân viên được phép lựa chọn giá trị từ một danh sách có sẵn. 51
  53. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Trình tự thiết kế như sau: Tạo form mới, dùng bảng Bán hàng làm nguồn dữ liệu cho Form Tắt chức năng Control Wizard trong nhóm lệnh Controls trên thanh Ribbon Kéo các trường ( không phải trường MãNV) từ hộp Field List đặt vào một vị trí trên form Tạo ComboBox để nhập mã nhân viên cho trường Mã nhân viên bằng cách lựa chọn giá trị từ danh sách đã có từ bảng Nhân viên: - Chọn nút Combo Box trên nhóm lệnh Controls trên thanh Ribbon. - Kéo trường MaNV từ hộp Field List đặt vào vị trí trên form. Kết quả Access tạo một combo box thuộc vào trường Mã nhân viên - Mở bảng thuộc tính của ComboBox vừa tạo cho trường Mã nhân viên ( click chuột phải vào ComboBox vừa tạo). Thiết lập một số thuộc tính như sau Control Source: Mã nhân viên Row soruce type:Table/Query Row soruce: Nhân viên(tên bảng/truy vấn cần lấy dữ liệu) Column Count: 2 (số cột trong bảng/ truy xấn được hiển thị tính từ trái sang phải) Bound Column: 1 (cột được chọn để nhận dữ liệu, ở đây ta chọn cột Mã nhân viên, các cột khác đóng vai trò hiển thị).  Sử dụng command button: Như giới thiệu ở trên Command Button để tạo nút lệnh mà khi kích vào sẽ hoành thành một nhiệm vụ. Cụ thể có thể sử dụng nút lệnh đó để chạy 1 query hoặc 1 form bất kỳ Sử dụng Nút lệnh như sau: . Nhấn chuột chọn nútPTIT lệnh Control Wizard trên nhóm lệnh Controls của thanh Ribbon. . Chọn nút Command Button trên nhóm lệnh Controls của thanh Ribbon, nhấn trỏ chuột vào vị trí nơi nút lệnh sẽ được định vị. . Cửa sổ Command Button Wizard hiện ra. Trong cửa sổ này, ô Categories phân loại các nhóm hành động, ô Action liệt kê các hành động thuộc mỗi một nhóm hành động ở bên ô Categories. Ví dụ: nếu muốn nút lệnh này mở một 52
  54. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Form(hoặc query) đã có thì ta chọn Form Operations (Miscellaneous) ở bên ô Categories, tiếp đó chọn hành động Open Form (run query) ở bên ô Action. Nhấn Next để tiếp tục.Tương tự ta có thể chọn Close Form nếu muốn đống Form . Chương trình hỏi: “Bạn muốn nút lệnh mở Form (hoặc query) nào ?”, ta chọn Form( query) cần mở bằng cách nhấn chuột vào tên Form(query) trong ô danh sách các Form( query) . Nhấn Next để tiếp tục. . Chọn một trong hai lựa chọn. Lựa chọn : mở Form( query) và hiển thị chỉ một số bản ghi cụ thể; Lựa chọn : hiển thị tất cả các bản ghi. Nhấn Next để tiếp tục PTIT 53
  55. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT . Tại bước cuối cùng, ta có thể chọn nút lệnh có hình như (Picture) hoặc có lời chú dẫn (Text). Nếu chọn Picture, chỉ ra hình như muốn có. Nút lệnh sẽ có dạng Nếu chọn Text, đánh nhãn cho nút vào dòng trống ( vd là đơn đặt hàng). Nút lệnh sẽ có dạng Bước tiếp theo, ta đặt tên cho nút lệnh(ví dụ đơn đặt hàng) rồi chọn PTIT Finish. Chuyển sang chế độ View để xem kết quả Thay đổi kích thước các khu vực trên một Form Có thể tăng hoặc giảm chiều cao, độ rộng từng vùng của form và report. Khi thay đổi độ rộng của một vùng, ta thay đổi độ rộng của toàn bộ form hoặc report. 54
  56. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 1. Mở form (hoặc report) ở chế độ Design view. 2. Thay đổi chiều cao hoặc độ rộng bằng cách đặt con trỏ vào lề dưới hoặc lề phải của vùng. 3. Nhấn giữ và kéo chuột lên xuống để thay đổi độ cao, trái - phải để thay đổi độ rộng. Để thay đổi cả độ rộng và chiều cao, đặt con trỏ chuột vào góc dưới bên phải và kéo theo đường chéo theo hướng mở rộng. Chỉnh sửa các điều khiển trên form Ta có thể di chuyển, đổi kích thước, căn hàng các điều khiển trên form. 1. Để chọn một điều khiển: click chuột vào điều khiển đó. Nếu muốn chọn nhiều điều khiển cùng một lúc thì đồng thời giữ phím SHIFT và click chuột vào các điều khiển. Chọn điều khiển 2. Khi ta chọn một điều khiển, dùng con chuột kéo rê khung của điều khiển để thay đổi kích thước của nó Thay đổi kích thước điều khiển PTIT 3. Di chuột để hiện ra hình bàn tay, giữ và rê chuột để chuyển vị trí cho các điều khiển. Dịch chuyển điều khiển và nhãn 4. Nếu muốn chỉ di chuyển vị trí của một trong hai, điều khiển hoặc nhãn, di chuột vào đúng ô vuông góc trên bên trái của điều khiển, hoặc nhãn đó, bấm và giữ chuột để di chuyển đến chỗ mới Chỉ dịch chuyển điều khiển hoặc nhãn 5. Để căn hàng các điều khiển, chọn chúng rồi dùng lệnh \Format\Alignment, chọn tiếp Right (trái), Left (phải), Top (trên), Bottom (dưới). 55
  57. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 6. Để thay đổi dòng chữ của nhãn, chọn dòng chữ cũ, đánh vào dòng chữ mới. 7. Để thay đổi tên trường dữ liệu gắn kết với điều khiển, trước hết chọn điều khiển đó, bấm trên thanh công cụ, khi cửa sổ Properties hiện ra, trong phần Control Source chỉ ra tên của trường dữ liệu muốn gắn kết. 8. Thêm vào một hộp văn bản hiển thị dữ liệu của một trường: -: Nhấn vào nút lệnh Field List trên thanh công cụ để hiển thị danh sách các trường dữ liệu hiện có.  nhấn chuột vào tên trường muốn chọn trong danh sách các trường, rồi kéo và thả trường đó vào biểu mẫu 9. Thêm một nhãn văn bản vào Form: Nhấn vào biểu tượng trên thanh công cụ Toolbox, nhấn tiếp vào vị trí cần hiển thị trên form, sau đó đánh vào đoạnPTIT văn bản và bấm ENTER để kết thúc. 10. Muốn dùng Wizad để tạo các điều khiển trên form, luôn giữ nút lệnh trên thanh công cụ Toolbox ở dạng được chọn, rồi chọn kiểu điều khiển mà ta muốn có. 2.6.4 Báo biểu (Report) a. Khái niệm báo biểu Một báo biểu là một cách trình bày hiệu quả dữ liệu dưới dạng tài liệu in. Ta có thể chỉnh sửa kích thước và hình thức hiển thị của mọi đối tượng trên một báo biểu, cho nên ta có thể hiển thị dữ liệu theo cách mà ta muốn. Phần lớn các thông tin có trên một báo biểu được tập hợp từ các bảng dữ liệu, các truy vấn. Các thông tin còn lại có được khi thiết kế báo biểu. Các khu vực của một báo biểu 56
  58. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Khu vực tiêu đề trên của báo biểu - Report header - chỉ xuất hiện một lần ngay ở dòng đầu tiên của trang thứ nhất. Ta có thể dùng khu vực này để hiển thị tiêu đề của báo biểu, logo, ngày giờ in báo biểu, Khu vực tiêu đề trên của một trang - Page header - xuất hiện ở đầu tất cả các trang của báo biểu (Chú ý rằng một báo biểu có thể có nhiều trang). Ta dùng khu vực này để hiển thị tiêu đề của cột dữ liệu. Khu vực chi tiết - Detail - là khu vực chính của báo biểu, nó hiển thị từng bản ghi của nguồn dữ liệu của báo cáo. Khu vực cuối trang - Page footer - xuất hiện ở cuối tất cả các trang của báo biểu. Ta dùng khu vực này để hiển thị số thứ tự từng trang của báo biểu. Khu vực cuối báo biểu - Report footer - xuất hiện ở dòng cuối cùng của trang cuối cùng của báo biểu. Trong khu vực này, người ta thường hiển thị con số tổng kết của các báo biểu, (ví dụ tổng số khách hàng, tổng tiền hàng). Ngoài các khu vực trên, ta có thể thiết kế thêm tiêu đề trên cho từng nhóm các bản ghi - Group header. Ví dụ, khi in ra danh sách các hợp đồng xuất hàng trong tháng, ta muốn nhóm các hợp đồng này lại theo từng khách hàng. Khi đó, trường Khách hàng sẽ đóng vai trò tiêu đề của nhóm các bản ghi. Tổng doanh số các hợp đồng của khách hàng này sẽ được đưa vào phần tiêu đề dưới - group footer - của trường Khách hàng. b. Tạo mới một báo biểu Trước hết, ta dùng chuột chọn nhóm Reports trong thẻ Create của thanh Ribbon ở cửa sổ Database. PTIT Các cách tạo mới một báo biểu Có ba cách để chúng ta tạo mới một báo biểu trong nhóm Reports ta có thể chọn. - Sử dụng Report: Chức năng Report là công cụ tạo Report nhanh và dễ dàng, thường dùng để tạo những Report đơn giản có dữ liệu nguồn từ một bảng hoặc một query - Sử dụng Report Wizard: Wizard là một chương trình chức năng mà khi thực hiện sẽ hỏi chi tiết về nguồn dữ liệu, về các trường, về cách bố trí xếp đặt, định dạng mà người thiết kế mong muốn, từ đó sẽ tạo ra báo biểu. 57
  59. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT - Sử dụng Report Design : Chọn Table/Query làm dữ liệu nguồn cho report. Tự thiết kế report bằng cách kéo thả các trường dữ liệu từ field list hoặc các control trong nhóm lệnh Controls trên thanh Ribbon thả vào report. Chuyển đổi giữa các khung nhìn của báo biểu Một Báo biểu có ba khung nhìn khác nhau: - Design view - Thiết kế: Dùng khi ta phải chỉnh sửa, thay đổi cấu trúc của một báo biểu hiện tại. - Print Preview - Hiển thị trước khi in: dùng để xem dữ liệu hiển thị trên trang in trước khi in. - Layout Preview - Hiển thị cách bố trí: Tương tự như Print Preview, nhưng trong cách hiển thị này, Access chỉ cho hiển thị mẫu một vài bản ghi. Hiếm khi ta dùng chức năng này, nó chỉ hữu dụng khi mà nguồn dữ liệu của báo biểu là quá lớn, nếu ta dùng Print Preview thì sẽ mất rất nhiều thời gian, nhưng nếu dùng Layout Preview thì thời gian hiển thị gần như tức thời, bởi vì lúc này Access chỉ chọn ra một vài bản ghi làm mẫu. Cách chuyển đổi giữa các khung nhìn: 1. Mở báo biểu đã có. 2. Nhấn chuột vào nút lệnh View trên thanh công cụ, chọn khung nhìn cần thiết từ danh sách. Sử dùng Wizard để tạo mới một báo biểu Nhấn chuột vào nút lệnh trên cửa sổ Database. Cửa sổ Report Wizard hiện ra như hình bên. Cửa sổ gồmPTIT 2 ô chính. Ô bên trái chứa danh sách các trường của bảng dữ liệu hiện thời. Ô bên phải hiển thị danh sách các trường mà ta đã chọn để hiển thị trên báo biểu mới.Nhấn đúp vào tên trường ở ô bên trái để chọn trường sẽ được hiển thị trên báo biểu report. 58
  60. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Ở đây ta chọn bốn trường: Mã đơn đặt hàng, Mã khách hàng, Ngày đặt hàng, Phí Vận chuyển. Ngoài 4 thông tin rất quan trọng này của một đơn đặt hàng, ta cũng cần phi biết chi tiết về các sản phẩm được bán trong hợp đồng: số lượng, khối lượng, đơn giá, chiết khấu. Các thông tin này được lưu ở bảng đơn đặt hàng chi tiết. Chọn bảng Đơn đặt hàng chi tiết Do đó ta phải chọn ra các từ danh sách. trường này từ bảng Đơn đặt hàng chi tiết, bằng cách chọn bảng Đơn đặt hàng chi tiết trong dòng Tables/Queries Lúc này Access chuyển sang liệt kê các trường của bảng Đơn đặt hàng chi tiết ở ô bên trái. Các trường ta đã chọn từ bảng Đơn đạt hàng trước đó vẫn cònPTIT ở ô bên phải. 59
  61. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Nhấn vào nút lệnh >> để chọn tất cả các trường của bảng đơn đặt hàng chi tiết.Nhấn Next để tiếp tục Access tiếp đó hỏi ta đâu là bảng dữ liệu chính ? Ta chọn bảng đơn đặt hàng.Nhấn Next để tiếp tục. Tại bước tiếp theo, ta chọn trường Mã Khách hàng làm giá trị để tập hợp các bản ghi lại với nhau (tất cả các hợp đồng của một khách hàng sẽ được tập hợp lại cạnh nhau thành một nhóm). Nhấn chuột vào Next để tiếp tục. Trong cửa sổ ở bước này,PTIT ta chỉ ra báo biểu sẽ sắp xếp dữ liệu theo trường nào. Ta có thể chọn một hoặc nhiều trường, hoặc không chọn trường nào.Nếu ta muốn cứ ở cuối mỗi cột có tổng số, chọn mục Summary Options. Nhấn Next để tiếp tục. 60
  62. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Layout là cách bố trí, bài xắp của một đối tượng. Trong Access, người ta đã thiết lập sẵn một số dạng bố trí. Ta có thể chọn bất kỳ dạng bố trí nào bằng cách nhấn chuột vào ô Layout. Ta cũng có thể chọn hướng in của báo cáo theo chiều đứng (Portrait) hay chiều nằm ngang (Landsscape) tại mục Orientation.Nhấn Next để tiếp tục. Cuối cùng, đặt tên cho báo biểu là đơn đặt hàng, nhấn Finish để kết thúc quá trình tạo báo biểu. Sau khi nhấn nút lệnh FinishPTIT để kết thúc quá trình tạo lập báo biểu report bằng công cụ tự động, Access hiển thị một báo biểu như hình bên. Trong biểu này, ta thấy, với mỗi một khách hàng, tất cả các hợp đồng của khách hàng đó với công ty được liệt kê lần lượt, theo thứ tự về ngày tháng ký hợp đồng. 61
  63. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Vì có rất nhiều khách hàng, mỗi khách hàng lại có nhiều hợp đồng cho nên một trang báo biểu không thể chứa hết, báo biểu này sẽ phải kéo dài nhiều trang. Để xem các trang tiếp theo, ta sử dụng thanh di chuyển của báo biểu, nằm ở góc dưới bên trái mỗi báo biểu. Với mỗi báo biểu ta đều có một thanh công cụ. Ta có thể thiết kế riêng cho mỗi báo biểu một thanh công cụ khác nhau. Dưới đây là thanh công cụ ngầm định cho mỗi báo biểu. Xem báo cáo Hiển thị 2 trang của báo cáo Các chế độ Gửi kết quả sang word hoặc excel hiển thị In báo cáo Phóng hoặc thu hình Hiển thị từng trang Chọn số trang hiển thị Thiết lập định dạng trang in cho báo biểu Khi thiết kế các báo biểu, hoặc ngay trước khi in chúng, ta phải định dạng trang in của báo biểu cho phù hợp với các máy in mà ta hiện có. Cách thức làm như sau: 1. Trên cửa sổ các đối tượng của cơ sở dữ liệu, nhấn đúp chuột vào tên báo biểu để mở báo biểu đó. 2. Trên menu File, chọn Page Setup (Thiết lập trang giấy). 3. Nhấn vào một trong các nhãn sau để thiết lập các thuộc tính . Margins. Điều cPTIThỉnh độ rộng các lề và kiểm soát in. . Page. Điều chỉnh hướng in, kích thước giấy, chọn máy in. Thông thường ta chọn khổ A4 (khổ phổ dụng nhất), hướng giấy dọc (Portrait) hoặc ngang (Landscape). . Columns. Thiết lập số cột, kích thước và cách bố trí của các cột. 4. Nhấn OK. Mở xem và in một báo biểu đã có 1. Trong cửa sổ Database window, nhấn chuột vào Reports trong cột Objects. 2. Nhấn chuột vào báo biểu cần mở. 3. Trên thanh công cụ của cửa sổ Database window, nhấn chuột vào nút Design để thiết kế báo biểu hiện tại, hoặc vào nút Preview để hiển thị báo biểu trước khi in. 62
  64. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Hiệu chỉnh một báo biểu Việc dùng quá trình tạo báo biểu tự động đã có thể cho phép chúng ta có được một báo biểu đẹp dựa trên các thông tin có sẵn. Tuy nhiên, để có được các kết quả xử lý phức tạp từ nhiều nguồn thông tin khác nhau, ta phải chỉnh sửa trực tiếp các báo biểu. Cách thiết kế một báo biểu cũng tương tự như thiết kế một biểu mẫu nhập liệu. Trong báo biểu trên, ta mới có thông tin về sản phẩm, số lượng, đơn giá và chiết khấu. Tuy nhiên, ta lại không có thành tiền. Ta sẽ bổ sung thông tin này vào báo biểu. Bước 1: Chuyển báo biểu đơn đặt hàng sang chế độ thiết kế bằng cách nhấn chuột vào nút lệnh (Thiết kế).Lúc này cấu trúc của báo biểu đơn đặt hàng được thể hiện như hình bên. Bước 2: Thêm một nhãn tiêu đề (label) vào bên cạnh dòng tiêu đề hiện tại, bằng cách nhấn vào nút Label trên thanh công cụ Toolbox, sau đó nhấn chuột vào vị trí trên báo biểu. Đánh vào dòng chữ “Thành tiền”. Bước 3: Thêm một hộp văn bản (text box) vào phần Detail của báo biểu, bên cạnh vị trí của trường chiết khấu (vị trí  ), bằng cách nhấn chuột vào nút Text box trên thanh công cụ. Nhấn đúp vào Text box nàyPTIT để hiển thị cửa sổ thuộc tính - Properties, trong mục Other \ Name, đổi tiền của Text box thành : “Thành tiền” Trong mục Data\Control Source, đánh vào công thức: =[Số lượng]*[Đn giá]*(1- [Chiết khấu]). Chuyển sang chế độ Nhìn – View để xem kết quả, bằng cách nhấn chuột vào nút lệnh trên thanh công cụ. 63
  65. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Sau khi đã sửa đổi, báo biểu đơn đặt hàng đã có thêm cột thành tiền chứa tổng số tiền phải trả cho mỗi sản phẩm trong đơn đặt hàng. Tuy nhiên, báo biểu còn thiếu thông tin về tổng giá trị của mỗi đơn đặt hàng. Ta bổ sung thông tin này bằng cách sau: Bướcc 4: Thêm cột mới chứa giá trị cộng dồn của cột thành tiền. Dùng chuột thêm một điều khiển mới kiểu Text box vào trong báo biểu, ngay cạnh điều khiển có tên là Thành tiền, tại vị trí , đặt tên là Tổng con. Tại mục Data\Control Source, nhập vào công thức = [Thành tiền]. Thiết lập mục Data\Running Sum (tính tổng) thành Over group. Việc thiết lập thuộc tính tính tổng con (Over group) cho phép điều khiển này lưu giá trị cộng dồn của từng đơn đặt hàng; sang một đơn đặt hàng mới thì Tổng con này lại được tính lại từ 0. Cột chứ số tiền phải trả cho mỗi sản phẩm cộng dồn PTIT Nhấn chuột vào nút lệnh trên thanh công cụ để xem kết quả. Báo biểu giờ đây đã có thêm cột mới chứa giá trị cộng dồn tiền hàng của mỗi đơn đặt hàng. Bây giờ ta thêm dòng chứa tổng giá trị hợp đồng (bằng tổng của Tiền hàng và Tiền phí vận chuyển) vào phần kết thúc của mỗi đơn đặt hàng. Các bước tiến hành như sau: Nhấn chuột phải vào thanh này để chọn Sorting and Grouping 64
  66. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Cột mới hiển thị giá trị thành tiền Bước 5: Nhấn chuột vào thanh đơn đặt hàng_ Mã Đ Đ Hg Header. Nhấn phím bên phải để hiện cửa sổ Menu các lệnh, chọn Sorting and Grouping (sắp xếp và phân nhóm). Cửa sổ tiếp theo hiện ra.: Muốn thay đổi cách sắp xếp hoặc thứ tự phân nhóm các bản ghi, ta chỉ ra tên trường trong cột Field/Expession Biểu tượng này chỉ ra rằng các Thay đổi thứ tự sắp xếp của bản ghi ở trên trường. Ascending: tăng, báo biểu đang Descending: giảm được phân nhóm và sắp xếp theo giá trị của trường. Để được phân nhóm, 1 trường phải PTITcó Group Header (tiêu đề trên nhóm) hoặc Group footer (tiêu đề dưới) Trong cửa sổ Sorting and Grouping, chọn dòng đơn đặt hàng_Mã Đ Đ Hg, thiết lập thuộc tính Group Footer (tiêu đề dưới) thành Yes. Việc này để nhằm tạo ra một khoảng trống phía dưới cứ mỗi khi kết thúc một đơn đặt hàng. Cửa sổ khoảng trống như sau: Khoảng trống kết thúc sau mỗi đơn đặt hàng. 65
  67. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Trong dòng trống này, ta thêm một điều khiển dạng Text box, đặt tên là Giá trị hợp đồng, nhập vào trong mục Control Source công thức: = [Phí Vận chuyển]+[Tổng con]. Chuyển sang chế độ View ( ), kết quả báo biểu đơn đặt hàng hiển thị ra đã có ô chứa tổng giá trị đơn hàng ở cuối. Đến đây ta đã sử dụng qua tất cả các chức năng cần thiết khi xây dựng một báo biểu. 3 SỬ DỤNG NGÔN NGỮ VISUAL BASIC PTIT FOR APPLICATION 3.1 Giới thiệu chung Ta có thể sử dụng ngôn ngữ Visual Basic for application để viết các đoạn chương trình trong các ứng dụng của Access. Mặc dầu Access đã được trang bị rất nhiều chương trình có sẵn được gọi là Macro, nhưng dần dần người ta thấy rằng còn có rất nhiều điều cần làm 66
  68. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT mà các Macro chưa đáp ứng được. Việc sử dụng Macro nhiều khi cũng rất bất tiện, vì ta không biết cách thức hoạt động bên trong các macro. Các chương trình trong Access thường gồm các phần khai báo chung và các hàm, thủ tục. Các phần khai báo chung này và các thủ tục được tập hợp trong hai loại Module là module chuẩn (Standard Module) và Module lớp (Class Module). Bộ mã lệnh chuẩn: Bộ mã lệnh chuẩn chứa các đoạn mã lệnh mà có thể chạy bất cứ đâu trong ứng dụng. Ta có thể tạo một bộ mã lệnh chuẩn mới bằng cách tương tự như khi tạop các đối tượng khác. ta chọn đối tượng làm việc là Modules, sau đó nhấn vào nút New, hoặc chọn Insert từ thanh thực đơn ròi chọn Module. Bộ mã lệnh lớp: Chúng ta sử dụng bộ mã lệnh lớp để có thể tạo các đối tượng mới của riêng mình. Các thủ tục và hàm mà chúng ta định nghĩa trong bộ mã lệnh sẽ trở thành các phương thức của đối tượng. Các thuộc tính mà chúng ta định nghĩa bằng các lệnh Property Get, Property Let, Property Set sẽ trở thành các thuộc tính của đối tượng. Để tạo mới một bộ mã lệnh lớp ta thực hiện chọn Insert, Class Module. Các đoạn lệnh nằm trong một biểu mẫu hoặc báo cáo cũng là các bộ mã lệnh lớp. 3.2 Các thành phần trong bộ mã lệnh Trong bộ mã lệnh có thể chứa các thành phần sau: Các khai báo (Declaration): Là các câu lệnh dùng định nghĩa các biến, hằng, loại dữ liệu do người dùng định nghĩa. Thủ tục biến cố (Event Procedure): là các thủ tục được gọi tới khi một biến cố nào đó của biểu mẫu, báo cáo hoặc các điều khiển xảy ra. Ví dụ thủ tục hay dùng nhất là _Click() là thủ tục biến cố được thực hiện khi người sử dụng Click chuột trên đối tượng tương ứng. Thủ tục chung (General Procedure): là các thủ tục mà không trực tiếp liên quan đến một đối tượng hoặc một biến cố nào cả. Chúng ta có thể tạo các thủ tục chung này bên trong một bộ mã lệnh chuẩn hoặc một bộ mã lệnh lớp. Các thủ tục chung có thể là thủ tục hoặc hàm. 3.2.1 Sử dụng đối tượng DoCmd (Do Command) Trong khi sử dụng ngôn ngữ VB for Applications chúng ta có thể thực hiện các hành động tương ứng trong công cụPTIT tập lệnh bằng cách sử dụng các phương thức của đối tượng DoCmd. Cú pháp chung: Docmd. [Các tham số] Ví dụ. để có thể đóng biểm mẫu SINHVIEN chúng ta dùng phương thức Close của đối tượng Docmd Docmd.Close acForm, "Sinhvien" trong đó acForm là hằng số chỉ định loại đối tượng là biểu mẫu muốn đóng và chuỗi "Sinhvien" là tên của biểu mẫu SINHVIEN. Khi phương thức cần nhiều tham số thì ta dùng dấu phẩy để ngăn cách các tham số. Một số phương thức thường dùng của đối tượng docmd. Tên phương Ví dụ Ý nghĩa thức 67
  69. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT FindNext FindRecord GoToControl GoToRecord OpenTable OpenQuery OpenForm DoCmd.OpenForm "Sinhvien" Mở biểu mẫu Sinhvien OpenReport DoCmd.OpenReport "Baocao1", Mở báo cáo BAOCAO1 để xem acViewPreview trên màn hình DoCmd.OpenReport "Baocao1", In báo cáo BAOCAO1 acViewNormal OpenModule Quit DoCmd.Quit Thoát khỏi Access ReName RunCommand RunSQL Save DoCmd.Close acForm, "sinhvien", Đóng biểu mẫu SINHVIEN, trước acSaveYes khi đóng thì hỏi có Save không. SelectObject 3.2.2 Các cấu trúc điều khiển chương trình Các cấu trúc điều khiển là các câu lệnh cho phép người lập trình có thể điều khiển thứ tự vận hành các câu lệnh bên trong chương trình khi chúng được thực hiện. Nếu không có các câu lệnh điều khiển thì chương trình sẽ được thực hiện tuần tự từ trên xuống theo đúng thứ tự các câu lệnh mà ta đã viết. a/ Cấu trúc if then if then if then [các lệnh] PTIT endif if then [các lệnh 1] else [các lệnh 2] endif Ví dụ. if mDate<Now then mDate=Now if mDate<Now then mDate=Now Enđif 68
  70. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT b/Cấu trúc Select Case Select Case Case Case Case Case Else End Select Ví dụ. Select Case performance Case 1 Bonus = salary * 0.1 Case 2, 3 Bonus = salary * 0.09 Case 4 To 6 Bonus = salary * 0.07 Case Is > 8 Bonus = 100 Case Else Bonus = 0 End Select c/ Cấu trúc Do While Loop Do while Loop PTIT Do Loop while Có thể thay while bằng Until While Wend Chú ý. While và Until có tác dụng ngược nhau: While sẽ dừng khi điều kiện sai, còn Until lại dừng khi điều kiện đúng. 69
  71. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT d/ Cấu trúc For Next For = To [bước nhảy] [Exit for] Next [biến] For Each In [Exit for] Next [phần tử] e/ Thoát khỏi thủ tục, vòng lặp Exit Sub, Exit Function, Exit Do, Exit For 3.3 Một số chương trình mẫu Lập trình trong Access Giống như ngôn ngữ C và một số ngôn ngữ cấp cao khác, trong Access các công việc được thực hiện thông qua các hàm (Function) hoặc thủ tục (Procedure). Bên ngoài hàm chỉ có lệnh khai báo, không có các lệnh loại khác như phép gán chẳng hạn. a/ Khai báo các biến Ví dụ về khai báo các biến: Dim ws As Workspace Dim db As Database Dim tbl As TableDef Dim tdf as QueryDef Dim rst as Recordset Dim fld As Field PTIT Dim tblname As String Dim mm as Single Dim n as integer Dim a as Double b/ Thủ tục và hàm Có hai loại thủ tục: Thủ tục sự kiện, là thủ tục gắn liền với một sự kiện nào đó, Ví dụ. command1_click() là thủ tục được thực hiện khi ta nhắp chuột vào nút lệnh có tên Command1. Thủ tục cũng có thể có tên không gắn với sự kiện, thí dụ hàm msgbox chẳng hạn. Lúc này muốn gọi hàm hoặc thủ tục thì ta phải ghi rõ tên hàm cùng các tham số, ví dụ 70
  72. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT msgbox "Chao ban". Các ví dụ khác về thủ tục và hàm không gắn với sự kiện: Public Sub Databases() Dim ws As Workspace Dim db As Database Dim db1 As Database Dim db2 As Database Set ws = DBEngine(0) Set db1 = CurrentDb Set db2 = ws.OpenDatabase("d:\hoc_acc\qlsv1.mdb") For Each db In ws.Databases MsgBox db.Name Next db End Sub Public Sub Open_Report(strReportName As String) DoCmd.OpenReport strReportName, acViewPreview End Sub Public Sub Print_Report(strReportName As String) 'Print specified report. DoCmd.OpenReport strReportName, acViewNormal End Sub c/ Tạo các thủ tục sự kiện Chúng ta sẽ làm việc chủ yếu với thủ tục sự kiện. Để có thể tạo thủ tục sự kiện cho một đối tượng hay điều khiển nào đó, ví dụ tạo thủ tục tương ứng với một nút lệnh, ta làm như sau: Trước hết ta chọn đối tượng, sau đó nhắp chuột vào "đũa thần". Nếu chương trình đã có sẵn thì trên màn hình sẽ hiệnPTIT ra cửa sổ soạn thảo. Nếu chưa có chương trình thì ta thấy hộp thoại sau: Ta chọn Code Builder và thấy xuất hiện cửa sổ soạn thảo, ví dụ: 71
  73. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Hộp Combo bên trái chứa các đối tượng, còn hộp Combo bên phải chứa các sự kiện. Ta có thể chọn các đối tượng từ cửa sổ bên trái, sau đó nhắp vào hộp combo bên phải để chọn sự kiện: Sau khi chọn xong thì tên thủ tục được tự động tạo ra và ta chỉ việc gõ các dòng lệnh vào trong đó. Ví dụ. Ta có thể tạo một bảng chọn, sau đó tạo trên đó các nút lệnh mở Form, đóng form, mở report, đóng report, thoát về Windows, thoát về Access như sau: Mở Form. DoCmd.OpenForm Ví dụ. DoCmd.OpenForm "[Danh Sach]" Đóng Form. Ví dụ. DoCmd.Close acForm, "NhanSu", acSaveYes Mở Report Ví dụ. Mở để xem PTIT DoCmd.OpenReport strReportName, acViewPreview In Report. DoCmd.OpenReport strReportName, acViewNormal d/ Các hàm trong Form "NhanSu" Option Compare Database Option Explicit Private Sub MAH_GotFocus() Dim db As Database, qdf As QueryDef Dim strSQL As String, strName As String 72
  74. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT strName = "HUYENLookUp Query" strSQL = "SELECT MAH,TenHUYEN FROM HUYEN WHERE MAT= '" & Me.MAT & "'" Set db = CurrentDb db.QueryDefs.Refresh For Each qdf In db.QueryDefs If qdf.Name = strName Then db.QueryDefs.Delete qdf.Name End If Next qdf Set qdf = db.CreateQueryDef(strName, strSQL) 'qdf.Close 'Set db = Nothing Me.MAH.RowSource = strName End Sub Private Sub Luong_AfterUpdate() Me.ThuNhap = Val(Me.Luong) + Val(Me.PhuCap) End Sub Private Sub PhuCap_AfterUpdate() Me.ThuNhap = Val(Me.Luong) + Val(Me.PhuCap) End Sub Private Sub cmdClose_Click() DoCmd.Close acForm, "NhanSu", acSaveYes End Sub === Private Sub cmdMakeTblQuery_Click() Dim strName As String, strSQL As String strName = "NhanSu vut" strSQL = "SELECT NhanSu.Hoten,PTIT NhanSu.Dantoc, TINH.TenTinh " & _ "INTO [" & strName & "]" & _ "FROM TINH INNER JOIN NhanSu ON TINH.MAT = NhanSu.MAT " & _ "WHERE (((NhanSu.Luong) 400))" Dim db As Database, tdf As TableDef Set db = CurrentDb db.TableDefs.Refresh For Each tdf In db.TableDefs If tdf.Name = strName Then db.TableDefs.Delete tdf.Name End If Next tdf CurrentDb.Execute strSQL 73
  75. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT MsgBox "Query " & strName & " da duoc tao" End Sub Private Sub cmdUpDateQuery_Click() Dim strSQL As String strSQL = "UPDATE NhanSu SET NhanSu.Luong = 100 WHERE(([PhuCap]=10) and [DanToc]='Kinh')" CurrentDb.Execute strSQL MsgBox "Table NhanSu da duoc cap nhat" End Sub Private Sub cmdDeleteQuery_Click() Dim strSQL As String strSQL = "DELETE * from NhanSu WHERE(([PhuCap]=10) and [DanToc]='Kinh')" CurrentDb.Execute strSQL MsgBox "Mot so ban ghi da bi xoa tu Table NhanSu" End Sub Private Sub cmdCrosstabQuery_Click() Dim db As Database, qdf As QueryDef Dim strSQL As String, strName As String strName = "Cross Query vut" strSQL = "TRANSFORM Max(NhanSu.Luong) AS MaxOfLuong " & _ "SELECT NhanSu.Dantoc " & _ "FROM NhanSu " & _ "GROUP BY NhanSu.Dantoc " & _ "PIVOT NhanSu.MAT" Set db = CurrentDb db.QueryDefs.Refresh For Each qdf In db.QueryDefsPTIT If qdf.Name = strName Then db.QueryDefs.Delete qdf.Name End If Next qdf Set qdf = db.CreateQueryDef(strName, strSQL) MsgBox "Query " & strName & " da duoc tao" ' Khong the su dung: CurrentDb.Execute strSQL End Sub === 74
  76. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Private Sub Form_Load() Me.OrderBy = "[MAKHOA],[HO],[TEN]" Me.OrderByOn = True End Sub Private Sub gofirst_Click() Dim rst As Recordset Set rst = Me.RecordsetClone rst.MoveFirst Me.Bookmark = rst.Bookmark End Sub Private Sub golast_Click() Me.RecordsetClone.MoveLast Me.Bookmark = Me.RecordsetClone.Bookmark End Sub Private Sub goprev_Click() Me.RecordsetClone.MovePrevious If Me.RecordsetClone.BOF Then Me.RecordsetClone.MoveFirst End If Me.Bookmark = Me.RecordsetClone.Bookmark End Sub Private Sub gonext_Click() Me.RecordsetClone.MoveNext If Me.RecordsetClone.EOF Then Me.RecordsetClone.MoveLast End If Me.Bookmark = Me.RecordsetClone.Bookmark End Sub PTIT Private Sub mah_GotFocus() Dim strSQL As String, strName As String strName = "HUYENLookUp Query" strSQL = "SELECT MAH,TenHUYEN FROM HUYEN WHERE MAT= '" & Me.MAT & "'" NewQuery strName, strSQL Me.MAH.RowSource = strName End Sub Private Sub Timkiem_Click() Dim strMsg As String, strInput As String ' Prompt user for input. 75
  77. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT strInput = InputBox("Hay nhap ma sinh vien can tim:") If strInput = "" Then 'user chose "cancel" Exit Sub End If Dim rst As Recordset Set rst = Me.RecordsetClone rst.FindFirst "MASV = '" & strInput & "'" If rst.NoMatch Then MsgBox "khong tim thay ma sinh vien " & strInput, vbInformation Else Me.Bookmark = rst.Bookmark End If End Sub Private Sub Them_Click() Dim strMsg As String, strInput As String strInput = InputBox("Hay nhap ma sinh vien can them:") If strInput = "" Then 'user chose "cancel" Exit Sub End If Dim rst As Recordset Set rst = Me.RecordsetClone rst.FindFirst "MASV = '" & strInput & "'" If Not rst.NoMatch Then MsgBox "Ma sinh vien " & strInput & " da co, khong them duoc!", vbExclamation Exit Sub End If With rst .AddNew ' Add new record. !MASV = strInput ' Add data. !DIEMVT = 22 .Update ' PTITSave changes. End With rst.MoveLast Me.Bookmark = rst.Bookmark 'DoCmd.GoToRecord , , acNewRec End Sub Private Sub Dong_Click() DoCmd.Close acForm, "sinhvien", acSaveYes End Sub Private Sub viewdatasheet_Click() DoCmd.OpenQuery "SINHVIEN Query", acViewNormal End Sub 76
  78. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Private Sub Xoa_Click() Dim strMsg As String, strInput As String ' Prompt user for input. strInput = InputBox("Hay nhap ma sinh vien can xoa:") If strInput = "" Then 'user chose "cancel" Exit Sub End If Dim rst As Recordset Set rst = Me.RecordsetClone rst.FindFirst "MASV = '" & strInput & "'" If rst.NoMatch Then MsgBox "khong tim thay ma khoa " & strInput, vbInformation Exit Sub Else Me.Bookmark = rst.Bookmark End If strMsg = "Ban xoa sinh vien co ma " & strInput & "?" If MsgBox(strMsg, vbYesNo, "Chu y!") = vbNo Then Exit Sub Else rst.Delete If Not rst.BOF Then rst.MovePrevious End If If Not Me.RecordsetClone.BOF Then Me.Bookmark = rst.Bookmark End If End If End Sub Public Function ExitMicrosoftAccess() As Integer Dim strMsg As String PTIT strMsg = "Thoat khoi Access va tro ve Windows?" If MsgBox(strMsg, vbYesNo, "Chu y!") = vbNo Then Exit Function End If 'Exit Microsoft Access. DoCmd.Quit End Function Public Function DisplayDatabaseWindow() As Integer Dim strDocName As String strDocName = "Main Switchboard" ' Close Main Switchboard form. DoCmd.Close 77
  79. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT ' Give focus to Database window; select "Main Switchboard" form DoCmd.SelectObject acForm, strDocName, True End Function PTIT 78
  80. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT Phụ lục: Làm việc với dữ liệu. 1.Sử dụng bộ xây dựng biểu thức – Expression Builder Khi xây dựng một query hay một form, một report, ta thường xuyên phải sử dụng đến bộ xây dựng công thức Expression builder. Sử dụng công cụ này, chúng ta có thể nhanh chóng xây dựng được một công thức tham chiếu đến các đối tượng trong một c sở dữ liệu một cách chuẩn xác mà chỉ cần sử dụng con chuột. Bộ xây dựng biểu thức có ba khu vực:  Ô công thức: Khu vực phía trên của giao diện là một ô nơi ta xây dựng các biểu thức. Ta có thể trực tiếp nhập vào từ bàn phím biểu thức; hoặc sử dụng danh sách trong các ô phía dưới – bằng cách nhấn đúp chuột vào tên các đối tượng, toán tử –để dán chúng vào ô biểu thức từ đó tạo nên biểu thức.  Nút Toán tử: Tại khu vực giữa của giao diện là các nút nhấn cho các toán thử thường được sử dụng nhất. Nhấn chuột vào nút nào thì Expression Builder sẽ chèn toán tử đó vào trong ô công thức. Muốn có danh sách đầy đủ các toán tử, nhấn chuột vào Operators ở ô phía dưới bên trái và nhóm các toán tử thích hợp. Ô bên phaỉ sẽ hiển thị tất cả các toán tử của nhóm được chọn. Các phần tử: có ba ô ở nửa dưới của giao diện: Ô phía trái là thư mục các bảng, query, form, và report, các hàm tính(functions), các hằng số – constants), các tóan tử – operators. Ô ở giữa liệt kê các đối tượng cụ thể hoặc nhóm các đối tượng thành phần của mục đã được chọn tại ô bên trái. Ví dụ, nếu nhấn chuột vào Built-In Functions trong ô bên trái, các loại hàm của Microsoft Access sẽ được liệt kê. Ô bên phải liệt kê các giá trị, nếu có, của các phần tử đã được chọn ở hai ô đầu. 2.Tìm kiếm và thay thế dữ liệu Có nhiều cách để tìm kiếmPTIT hoặc thay thế các dữ liệu mà ta muốn, dù dữ liệu đó là một giá trị nhất định, một bản ghi hay một nhóm các bản ghi Tìm bản ghi bằng cách dùng thanh cuộn ở trên lưới dữ liệu Datasheet hoặc trên biểu mẫu Form, hoặc đánh số thứ tự của bản ghi vào ô Record number trên thanh di chuyển. Sử dụng hộp thoại Tìm kiếm – Find, để định vị các bản ghi hoặc tìm kiếm các giá trị nhất định của các trường dữ liệu. Nếu muốn thay thế các giá trị nào đó bằng một giá trị khác, sử dụng hộp thoại Thay thế – Replace. Sử dụng một bộ lọc – Filter, ta có thể tạm thời cô lập và hiển thị một tập hợp các bản ghi cụ thể để xử lý trên một Form hoặc một lưới dữ liệu – Datasheet. Sử dụng truy vấn query, ta có thể làm việc với một tập hợp cụ thể các bản ghi trích 79
  81. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT ra từ một hoặc nhiều bảng khác nhau, thỏa mãn các tiêu chuẩn đã chỉ ra ban đầu. 3.Sử dụng ký tự đại diện để tìm kiếm giá trị Khi cần tìm tập hợp các giá trị mà ta chỉ biết một phần của giá trị đó (ví dụ tìm người có tên bắt đầu bằng chữ H và kết thúc bằng chữ ng), ta sử dụng ký tự đại diện để thay vào vị trí các ký tự chưa biết. Ký tự đại diện có thể sử dụng trong hộp thoại Tìm kiếm – Find, hộp thoại Thay thế – Replace, trong truy vấn – query, trong các biểu thức – expression. Trong ACCESS, ta có thể sử dụng ký tự đại diện trong hộp thoại Tìm kiếm, Thay thế, trong truy vấn query, trong biểu thức để tìm các giá trị, các bản ghi, hoặc các tệp. Ký tự Sử dụng Ví dụ * Tương đương với một nhóm các chữ cái. Nó có thể wh* sẽ tìm what, white, được sử dụng ở đầu hoặc ở cuối chuỗi tìm kiếm. và why. ? Tương đương bất cứ một chữ cái nào. B?ll sẽ tìm ball, bell, và bill [ ] Tương đương với một trong các chữ cái ở trong B[ae]ll sẽ tìm ball hoặc ngoặc vuông. bell chứ không tìm bill ! Loại trừ những chữ cái trong ngoặc vuông. b[!ae]ll chỉ tìm bill chứ không tìm bell,ball - Tìm các chữ cái trong khoảng hai chữ cái cho b[a-c]d sẽ tìm bad, trước (theo thứ tự tăng dần: A đến Z, chứ không bbd, và bcd được từ Z đến A). # Tương đương một số. 1#3 sẽ tìm 103, 113, 123, Lưu ý: . Ký tự đại diện được sử dụng cho dữ liệu kiểu chữ, tuy nhiên đôi khi cũng có thể sử dụng thành công với các kiểuPTIT dữ liệu khác, như kiểu ngày tháng. . Khi sử dụng các ký tự đại diện để tìm kiếm một dấu hoa thị (*), dấu hỏi (?), ký hiệu số (#), dấu ngoặc vuông mở ([), dấu nối (–), ta phải cho dấu đó vào trong ngoặc vuông. Ví dụ để tìm một dấu hỏi, ta phi nhập vào [?] trong hộp thoại Tìm kiếm – Find. Nếu tìm kiếm dấu cảm thán (!), dấu ngoặc vuông đóng (]) thì không cần phi cho vào trong ngoặc. . Muốn tìm kiếm cùng lúc cặp ngoặc vuông thì ta phi nhập vào “[[ ]] “ trong hộp tìm kiếm – Find. 4.Tìm kiếm giá trị cụ thể trong một trường - field 1. Trên Biểu mẫu – Form hoặc lưới dữ liệu – Datasheet, chọn cột của trường – field mà ta muốn tìm kiếm (nếu muốn tìm kiếm dữ liệu ở tất cả các trường thì không cần phải chọn). 80
  82. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT 2. Nhấn nút lệnh Find trên thanh công cụ. 3. Trên dòng Find What (tìm gì), đánh vào giḠtrị muốn tìm. 4. Lựa chọn các tuỳ chọn (options) tìm kiếm. 5. Nhấn Find Next. 5.Thay thế giá trị trong một trường field 1. Trên Biểu mẫu – Form hoặc lưới dữ liệu – Datasheet, chọn cột của trường – field mà ta muốn tìm kiếm (nếu muốn tìm kiếm dữ liệu ở tất cả các trường thì không cần phải chọn). 1. Chọn Replace trên menu Edit. 2. Đánh vào giá trị cần tìm trên dòng Find What, đánh vào giá trị mới sẽ thay thế giá trị cũ vào dòng Replace With. 3. Thiết lập các tuỳ chọn cần thiết. 4. Để thay thế tất các các giá trị cũ bằng giá trị mới, chọn Replace All. 5. Để thay thế chỉ một số các giá trị cũ bằng giá trị mới, chọn Find next, sau đó nhấn Replace. Để bỏ qua không thay thế mà chuyển tiếp đến lần xuất hiện tiếp theo của giá trị đó, nhấn Find Next. 6. Xắp sếp dữ liệu 1. Trong khung nhìn Form View hoặc Datasheet View, nhấn chuột chọn trường cần xắp sếp. Muốn xắp sếp các bản ghi ở SubDatasheet, nhấn chuột vào dấu + để mở rộng khung nhìn, sau đó chọn trường. 2. Làm thao tác sau: Để xắp sếp tăng dần, chọn Sort Ascending . Để xắp sếp tăng dần, chọnPTIT Sort Descending . Nếu ta chọn nhiều cột (trường) cùng một lúc để xắp sếp thì ACCESS sẽ xắp sếp lần lượt các cột từ trái qua phải 81
  83. Phan Thị Hà- Khoa CNTT1- Học viện CNBCVT TÓM TẮT 1. Tổng quan về hệ quản trị CSDL Hệ quản trị CSDL là hệ thống phần mềm điều khiển toàn bộ các chiến lược truy nhập CSDL Các chức năng cơ bản của hệ quản trị CSDL bao gồm · Tạo ra và duy trì cấu trúc dữ liệu · Cập nhật dữ liệu · Lưu trữ dữ liệu · Tìm kiếm và xử lý các dữ liệu lưu trữ · Cho phép nhiều người dùng truy xuất đồng thời · Hỗ trợ tính bảo mật và riêng tư · Cung cấp một cơ chế chỉ mục (index) hiệu quả để lấy nhanh các dữ liệu lựa chọn. · Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi (recovery). Hiện nay có một số hệ quản trị CSDL quan hệ được sử dụng rộng rãi trên thị trường như Oracle, Informix, Sybase, Foxpro, Access, 2. Hệ quản trị CSDL Access Access là hệ quản trị CSDL,vì vậy bạn có thể dùng M.ACCES để quản lý các thông tin trong CSDL . Trong một file Access, các dữ liệu được chia vào các bảng riêng biệt, gọi là bảng; Việc xem, thêm hay cập nhật dữ liệu thực hiện bằng các cửa sổ nhập liệu, gọi là biểu mẫu - form; Việc tìm kiếm và xử lý các thông tin có chọn lọc thực hiện bằng các truy vấn - query; Việc phân tích và in dữPTIT liệu theo một khuôn mẫu thiết kế trước sử dụng đến các báo biểu – report; để cho phép người dùng xem, sửa, phân tích các thông tin của c sở dữ liệu từ Internet hoặc Intranet bằng các trang truy cập dữ liệu, data access pages. 3. Quy trình thiết kế một CSDL Trước khi bắt tay vào xây dựng các bảng, biểu mẫu, các báo biểu và các thành phần khác của một CSDL, ta cần phải bỏ thời gian thiết kế chi tiết. Các bước cơ bản để thiết kế một CSDL là: 1. Xác định mục đích của CSDL: CSDL dùng để lưu trữ thông tin gì, cần rút ra những thông tin gì từ CSDL. 2. Xác định các bảng dữ liệu – bảng - cần có trong CSDL: một Bảng không được chứa dữ liệu trùng lặp, và thông tin cũng không nên để bị trùng lặp giữa các bảng. Mỗi một bảng chỉ nên chứa thông tin liên quan đến một chủ đề. 82