Chương 5: XÂY DỰNG GIÁO DIỆN NGƯỜI DÙNG BẰNG FORM

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 361 - 365)

TÌM KIẾM VÀ HIẾN THỊ DU LIEU

Chương 5: Chương 5: XÂY DỰNG GIÁO DIỆN NGƯỜI DÙNG BẰNG FORM

DoCmd.OpenQuery “qprHistoryfromTextBox"

End Sub

paiement jee bepeal Reese ed

Hình 5-10. Query qprHistoryfromTextBox trong khung nhin Design.

Sử Dụng Hộp Kết Hợp Để Nhập Thông Tin Người Dùng

Form trình bày trong Hình 5-11 có thiết kế đẹp hơn so với form trong Hình 5-9. Thay vì bắt buộc người dùng phải phỏng đoán mã khách hàng, nó cho phép người dùng chọn khách hàng từ một hộp nhập. Một thủ tục sự kiện After Update của hộp kết hợp mở query gprHistoryfromComboBox để người dùng chọn một khách hàng, vì thế nút lệnh không còn cần thiết nữa.

© treComboBosLookup : Form 1 [JEP]

Select a customer to find the total quantity ordered of each product bought by the customer

Company Nene: 7 JAfieds Fotteikecte ˆ

JAna Trujlo Evow cdsdos v helados — |

Antonio Morena Taqueria Around the Horn, Blazer See Och atossen es Bloradet pare et fig.

Bétdo Comidas preparadas ~

Hình 5-11. Một dạng thiết kế tốt hơn cho form tìm kiếm.

353

Ee GHI CHU: Form tim kiếm của hộp kết hợp có thể trở nên chậm khi số lượng các mục tìm kiếm quá nhiều.

Trong trường hợp này, bạn có ít nhất hai lựa chọn. Đầu tiên, bạn có thể quay lại form tìm kiếm của hộp văn bản

như đã giới thiệu ở trên. Thứ hai, bạn có thể tạo một hệ thống theo từng lớp trong đó người dùng có thể chọn để

giới hạn phạm vi các mục có thể có trong hộp kết hợp.

Để cung cấp bất kỳ điều khiển hộp kết hợp nào cho chức năng này, hãy thực hiện theo các bước sau:

1. Thiết lập thuộc tinh Row Source Type cia điều khiển cho

Table/Query (mặc định). :

2. Thiét lap thudc tinh Row Source cia điều khiển cho một chuỗi lệnh SQL để trả về cỏc ủeld bạn muốn. (vớ dụ chuỗi của SQL cho mau lA SELECT CUSTOMERID, COMPANYNAME FROM CUSTOMERS.)

3. Thiét lap thuéc tinh Column Count cia diéu khién 1a 2.

4. Xác định độ rộng của cột, phân cách bằng đấu chấm phẩy.

(giá trị đầu tiên nên luôn luôn là 0.)

Nếu bạn thích, công cụ wizard Combo Box có thể tạo điểu khiển cho bạn. Đơn giản bạn chọn nút Control Wizards trên Toolbox và thêm hộp kết hợp vào form.

Hiển Thị Kết Quả Trong Hộp Thông Báo

Những ví dụ trước mắc phải hai khuyết điểm. Đầu tiên, chúng truyền những giá trị tới và biểu lộ những giá trị từ query. Điều này có nghĩa là người sử dụng có thể tình cờ làm hỏng thiết kế của query. Thứ hai, người ding còn có thể chỉnh sửa đữ liệu căn bản của

query.

fẹ] Chương 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG BANG FORM

Form tìm kiếm mẫu ở trên cùng của Hình 5-12 khắc phục những thiếu sót này bằng cách sử dụng VBA và ActiveX Data Objects (ADO).

Seer cd

Salect a customer to find the total quantity. ordered of each product ị

bought by the customer

Programming Micravolt Acesss 2009

a? Sect aban Mice ko.

w Begnch snabtklo, Arhsos ao, XI

Besgunds mebtaap. poh Coffee,

Beghads wabthey, Tnhh nd Cl Chon, 0

snabbkop. Koribu,

Pear mene Cok oon 2 Bangknd3 snabbkbo, Maecapooe Bexgunde enabtkop, Masaki. 185 Bacgunds snabthbn, NoréCel Makeshedng, 8 Bergunds srabkip, Pad chincit, 29 F abso, 10 Bergande snabtkip, Pavlow, 12

‘Chek 0% to se mat in anther maszogh bee

Programming Mictosalt Access 2000

; Resgunch knabbkdp, Pedh Paskei, 12

i wD: Barchands srubli.in, °°. Bergundi seabbkoo, Jeske waitin Rott Seu he TU pecs eibton, Rhone KeovEe 5Ì Racieite Coudevat, 15 Red Kove, 25 Mawnalede,

Hình 5-12. Rorm ở trên cùng hiển thị kết quả trong hộp thông báo vì thế người dùng có thể xem kết quả nhưng không thay đổi được dữ liệu căn bản.

355

Đầu vào của form trông giống như form trong Hình 5-11.

Trong khi kết quả trả về của query thực hiện bởi hai form giống hệt, nhau, chúng thể hiện theo những cách khác nhau. Ví dụ trong Hình 5-12 trình bày tập các kết quá trả về trong các hộp thông báo thay vì trong một cửa sổ query trong khung nhìn Datasheet. (Ví dụ sử dụng càng nhiều hộp thông báo càng cần để thể hiện kết quả trả ve của nó). Phương pháp này bảo vệ dữ liệu căn bản tránh việc vô tình làm hỏng dữ liệu do người sử dụng gây ra.

Thủ tục dưới đây chạy sự kiện Affer Update của hộp kết hợp trong Hình 5-12. Nó thực hiện một câu lệnh dựa vào một query để biểu lộ tập hợp kết quả một recordset trả về. Sau đó nó gán kết quả trả về từ câu lệnh và hiển thị một recordset bằng cách sử dụng một hay nhiều hộp thông báo.

Private Sub cboLookup_AfterUpdate() Dim ctl1 As Control

Dim cmd1 As Command

Dim rst! As Recordset, stri As String

"Thiết lập tham chiếu tới điều khiển ComboBox.

Set ctli = Me.Controls("cboLookup")

"Tạo và định nghĩa lệnh.

'Sử dụng giá trị ComboBox trong chuỗi lệnh SQL cho lệnh.

Set cmd1 = New ADODB.Command With cmd1

-ActiveConnection = CurrentProject.Connection

.CommandText = "Select Customers.CompanyName, "&

*Products.ProductName, * & _

"Sum ([Order Details].Quantity) As TotalQuantity " & _

“From Products Inner Join ((Customers Inner Join Orders " & _

“ON Customers.CustomerlD = Orders.CustomerlD)# & _

“Inner Join [Order Details] ON * & _

“Orders.OrderlD = [Order Details}].OrderiD) * & _

"ON Products.ProductiD = [Order Details].ProductID * & _

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 361 - 365)

Tải bản đầy đủ (PDF)

(383 trang)