Access luôn luôn cho phép bạn kết hợp form va đữ liệu một cách dễ dàng và đơn giản, Đây là lý do chính tại sao nó là môi trường phát triển ứng dụng nhanh.
345
Su Dung Wizard Ctia Autoform
Để liên kết một form với dữ liệu, bạn có thể sử dụng công cụ wizard của AutoForm. Chọn một bảng hay query trong cửa sổ cơ sở dữ liệu và click nút New Object: AutoForm trên thanh công cu Database. Công cụ wizard mở một form mới đã liên kết trực tiếp với dữ liệu nguồn đã chọn. Hình ð-õ trình bày ví dụ một form dua trén bang Order Details trong cơ sở dữ liệu mẫu của chương này.
Bạn có thể sử dụng form này để duyệt, chỉnh sửa, thêm và xoá các record trong bang Order Details.
& Oider Details at Of x]
Order ID | 10248
Product Queso Cabrales x
Unit Price F400
Quantity [——#z
Discount ƒ—w
Record: l4| (J[ 1 _> [ou fra] of 2185
Hình 5-5. Mộ! form được tạo bằng công cụ wizard AuloForm.
Bởi vì nguồn dif liéu cho field Product cia form lA mét field tim kiém trong bang Order Details & bén duéi, field Product ty động xuất hiện thành hộp két hop (combo box) để hiển thị những 'ên sản phẩm thay vì cho các giá trị ProductlD ở bên dưới. Tất ca các chức năng này được cung cấp tự động bằng công cụ wizard.
Định Dạng Có Điều Kiện
Access 2000 cho phép bạn định dạng có điều kiện cho đữ liệu bằng một hộp văn bản hoặc điều khiển hộp kết hợp mà không phải lập trình. Bạn có thể áp dụng việc định dạng một cách có chọn lọc cho các điều khiển form thuộc hai field hạn chế và tính toán.
346
Chương 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG BẰNG FORM
Hình 5-6 trình bày ba trường hợp của cùng một form. Sử dụng việc định dạng để điều khiển dạng thể hiện của các field Discount va Extended Price.
Hình 5-6. Định dạng có điều kiện kiểm soát dạng thể hiện của các field Extended Price va Discount trén các form nay.
ee oe) [—T]
>
Conditional Formating Sample Form
Extended Price:
Order 30: { Tey $163.00 Product: [Queso Cabrales. *
Unik Price: ta
Quaddty: 12
| Record: tay df T _ằ [re {ra] of zis
re ee ed So EbÁ.. ND ƠNGDn...-.` JMIR
>
Conditional For mating Sample Form
Extended Price:
Order 1b; [Fy [ H19 608—
Đyoduct: [3anynup Ôred đụph c]
Unk Pre: [72.40 Quandy[ Ta LJ Record: Mpa f[~ "FS _> Lon tno] oF 2155
8 tmConditional armatting : Form
Conditional Formating Sample Form
Extended Price:
Order 10: [TS [Frere Product: [Mangmup Oned Aople =]
Une Price: [ra Quantty: FF”
‘Dascount: 15%
Record: E+ a} 7 ằ [ore] of 2155
347
Field Discount trong form & trén cing không có tác dụng.
Form ở giữa làm nổi bat gid tri trong field Extended Price bang cách sử dụng định dạng đậm và nghiêng. Form cuối cùng là cho field Discount cé hiéu luc vA lam néi bat gid tri field Extended Price.
Field Extended Price là field tính toán; nó không nhận giá trị trực tiếp từ bảng ở dưới. Một biểu thức trong thuộc tính Control Source cua hop van ban cai đặt là ((UnitPrice}*[Quantity |*(1- [Discount])) tính giá trị khi người dùng đi chuyển vào một record mới hoặc cập nhật giá tri cho cdc field UnitPrice, Quantity hoac Discount cha record hién hành. (Các mục trong các dấu ngoặc là các điểu khiển tham chiếu, không phải là tên của các field cho nguồn dữ liệu ở dưới.)
Ee GHI CHÚ: Những người bắt đầu học đôi khi đặt tên field và các
điều khiển cùng tên. Thói quen này có thể làm khó hiểu và dẫn
đến lỗi. (Công cụ wizard AutoForm còn phạm phải thói quen này). Hãy xem xét việc thêm những tiền tố vào các tên của một điều khiển để phân biệt chúng với các tên field của chúng ở
dưới. Ví dụ, một tên hợp lệ cho một điều khiển hộp văn bản gắn với field dat tén UnitPrice la txtUnitPrice.
Để áp dụng việc định dạng có điều kiện cho một điều khiển, hãy chọn điều khiển đó và chọn mục Conditional Formatting trong menu Format để mở hộp thoại Conditional Formatting, trình bày trong Hình 5-7. Mỗi điều khiển theo kiểu định dạng có điều kiện có ít nhất hai định dạng— một định dạng mặc định và một định dạng đặc biệt khi điều kiện chỉ ra là đúng. Bạn có thể định dạng dựa trờn giỏ trị fủeld của điều khiển, giỏ trị biểu thức của nú hoặc khi nú là tiờu điểm. Khi bạn làm việc với giỏ trị ủeld của một đối tượng, bạn có thể chọn từ danh sách các phép toán so sánh, chẳng hạn như phép toán bằng (=), lớn hơn (>) và nhỏ hơn (<). Điều kiện đối với field Discount trong Hình 5-7 là giá trị của field bằng 0. Tùy
348
GY Chuong 5: XAY DUNG GIAO DIEN NGUGI DUNG BANG FORM
chon dinh dang cho diéu kién này không có hiệu lực điều khiển khi sự giảm là 0.
eerie) CPJ
Daft formating
The Forme od be used f ne oe BOC EZ: eres - x
ằ Contiien |
EU YINN-liae =f
Pree of format to use B 2 xÌA xí
Tae vit Bide
did >> | eine | ~o_] Cares J
Hình 5-7. Hộp thoai Conditional Formatting.
Nếu bạn áp dụng việc định dạng có điều kiện cho mét field tính toán, chang han nhu Extended Price, ban phải viết một biểu thức sử dụng các phép toán VBA chuẩn. Điều kién cho field Extended Price 1a text4.value>500. (Text4 la diéu khién dé hién thi giỏ trị tớnh toỏn). Khi giỏ trị của ủeld lớn hơn 500, làm nổi bật nội dung trong hộp văn bản bằng cách định dạng đậm và nghiêng.
Bạn có thể dễ dàng áp dụng điều kiện và những định dạng đặc biệt khác vào một điểu khiển bằng cách click nút Add trong hộp thoại Conditional Formatting và chỉ ra điểu kiện mới và những thông tin định dạng của nó.
Form Phụ
Một form phụ (sub/orm) là một trong những cách thể hiện dữ liệu thông dụng nhất trong Access. Form phụ là một form được
nhúng vào trong một form chính. Form chính chứa những thông tin chung về một đối tượng (chẳng hạn như đơn đặt hàng hay tên người bệnh). Một hay nhiều thông tin chỉ tiết có liên hệ phân cấp (chẳng hạn như các mực của đơn đặt hàng hoặc thăm người bệnh) xuất hiện trong một hay nhiều form chính. Phải có ít nhất một field chung để nối kết nguồn record của form chính và từng form phụ với nhau. Field chung cho phép form phụ thể hiện những record nào 349
tương hợp với record hiện hành trong form chính. Khi người dùng di chuyển sang một record méi trén form chính, form phụ hiển thị một tập bợp record nối kết duy nhất tới record mới trong form
chính.
Hình 5-8 trình bày một form chính Ä#yOrders, form này chứa một form phụ được nhúng MyOrderDetdils. Form MyOrders liên kết véi query MyOrders va query MyOrderDetails dua trén mét field chia sẻ OrderID. (Nhitng query nay và những bảng ở dưới xuất phát từ cơ sở đữ liệu Northwind). Khi tạo một form chính và form phụ, bạn không cần tạo mối quan hệ giữa hai query trong cửa sổ ltelationships hoặc sử dụng tờ bảng tính phụ. Xem lại Chương 4 phần nói về tờ bảng tính phụ (subdatasheet)).
Ì xảy m[ Tô Caatrner ROegoieCvwan omy 2]
tư [TT SH ‘
hp FC ST
se den EU BỨC toa Praxc
She hegen fa
She Postal Code fS71IG She Comer {GA TC
vil UnitPrice | Quantity { Ciscount
Chang saw a AI
11077 Aniseed Syrup s00 4 9%
11077 Chef Anton's-Caus Seascnin $22.00 1 04 „J
Paco: BIT TU a bot ipel of zs ơJ
Recerd: Leif aằ |etioo} of se
Hình 5-8. Một form chứa một form phụ.
Để tạo một form phụ, bạn mở form chính trong khung nhìn Design, chắc chắn rằng nút Control Wizards trên Toolbox đã được nhấn xuống rồi drag một bảng, query hoặc form từ cửa sổ Database va drep chúng vào form chính. Form phụ xuất hiện như là một diéu-
khiển trên form chính. Để đồng nhất form chính và form phụ, bạn phải chỉ định ớt nhất một ủeld chung. Chọn thựng chứa của form phụ và thiết lập các thuộc tính Link Child va Link Master cho field
350
Chương 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG BẰNG FORM
chung này. Đối với query ÄyOrders và MyOrderDetails, field chung là OrderID.
Một form chính có thể có nhiều form phụ. Chỉ có yêu cầu là trong nguồn record phải có ít nhất một field chung cho từng form phụ với form chính. Ví dụ, nếu form chính trong Hình 5-8 chứa field EmpioyeelD, form này có thể có form phụ thứ hai dựa trên bảng Employees.
Nếu bạn định nghĩa những mối quan hệ giữa các bảng và query trong cửa số Relationships hoặc sử dụng những thuộc tính của tờ bảng tính phụ, bạn có thể tạo một form chính với một form phụ được nhúng cũng dễ dàng như bạn tạo một form giới hạn đơn giản.
Trong cửa số Database, chọn bảng hoặc query lay form chính làm co Sở rồi click nút New Object: AutoForm. Công cụ wizard AutoForm sẽ xây dựng một form chính với một form phụ được nhúng. Form phụ sử dụng thông tin trong cửa sổ Relationships hoặc trong tờ bảng tính phụ. Bạn có thể drag các bảng, các query hoặc các form khác vào form chính trong khung nhìn Design để tạo những form phụ bổ sung.