Tao các truy van long nhau trong Access
Page 1 of 1
Tao các truy van long nhau trong Access
Tạo các truy vấn lồng nhau trong Access
Hỏi: Trong căn cứ dữ liệu Access của tôi có 3 bảng (bảng 1, 2, 3). Tôi muốn thiết kế một form gồm có field MaSV và TenSV lấy dữ liệu từ bảng dữ liệu SINH_VIEN, và một combo box cboMaMon dùng để liệt kê danh sách các môn học mà sinh viên hiện hành chưa đăng ký
Trả lời: Ý tưởng để giải quyết bài toán này là: bạn cần thiết kế một combo box có thuộc tính Row Source là một truy vấn (query) mà dữ liệu của nó được lọc từ danh sách tất cả các môn học (bảng dữ liệu MON_HOC) sao cho dữ liệu lọc được không nằm trong danh sách các môn học mà sinh viên hiện hành (có thông tin đang hiển thị trên form) đã đăng ký (bảng dữ liệu DANG_KY). Truy vấn này thuộc loại truy vấn lồng nhau.
Giả sử bạn thiết kế form có tên (thuộc tính Name) là SINH_VIEN để nhập dữ liệu vào các field MaSV và TenSV của bảng dữ liệu SINH_VIEN. Lúc này chưa vội thiết kế combo box. Bạn thiết kế một query có tên qryMonHocChuaDangKy với lệnh SQL gõ vào cửa sổ SQL View (cửa sổ này được mở bằng cách chọn mục SQL View trên trình đơn View khi đang thiết kế truy vấn) như sau:
SELECT MaMon FROM MON_HOC
WHERE MaMon NOT IN (SELECT MaMon FROM DANG_KY
WHERE MaSV=[Forms]![SINH_VIEN]![MaSV]);
Sau đó, bạn thiết kế thêm một combo box (có tên cboMaMon) cho form SINH_VIEN với thuộc tính Row Source là qryMonHocChuaDangKy. Gõ đoạn mã sau đây vào thủ tục xử lý tình huống On Current của form:
Private Sub Form_Current()
cboMaMon.Requery
End Sub
Mỗi lần chuyển đến một mẩu tin sinh viên khác thì combo box tạo lại danh sách.
Bảng 1: Bảng dữ liệu SINH_VIEN
Bảng 2: Bảng dữ liệu MON_HOC
Bảng 3: Bảng dữ liệu DANG_KY
Hỏi: Trong căn cứ dữ liệu Access của tôi có 3 bảng (bảng 1, 2, 3). Tôi muốn thiết kế một form gồm có field MaSV và TenSV lấy dữ liệu từ bảng dữ liệu SINH_VIEN, và một combo box cboMaMon dùng để liệt kê danh sách các môn học mà sinh viên hiện hành chưa đăng ký
Trả lời: Ý tưởng để giải quyết bài toán này là: bạn cần thiết kế một combo box có thuộc tính Row Source là một truy vấn (query) mà dữ liệu của nó được lọc từ danh sách tất cả các môn học (bảng dữ liệu MON_HOC) sao cho dữ liệu lọc được không nằm trong danh sách các môn học mà sinh viên hiện hành (có thông tin đang hiển thị trên form) đã đăng ký (bảng dữ liệu DANG_KY). Truy vấn này thuộc loại truy vấn lồng nhau.
Giả sử bạn thiết kế form có tên (thuộc tính Name) là SINH_VIEN để nhập dữ liệu vào các field MaSV và TenSV của bảng dữ liệu SINH_VIEN. Lúc này chưa vội thiết kế combo box. Bạn thiết kế một query có tên qryMonHocChuaDangKy với lệnh SQL gõ vào cửa sổ SQL View (cửa sổ này được mở bằng cách chọn mục SQL View trên trình đơn View khi đang thiết kế truy vấn) như sau:
SELECT MaMon FROM MON_HOC
WHERE MaMon NOT IN (SELECT MaMon FROM DANG_KY
WHERE MaSV=[Forms]![SINH_VIEN]![MaSV]);
Sau đó, bạn thiết kế thêm một combo box (có tên cboMaMon) cho form SINH_VIEN với thuộc tính Row Source là qryMonHocChuaDangKy. Gõ đoạn mã sau đây vào thủ tục xử lý tình huống On Current của form:
Private Sub Form_Current()
cboMaMon.Requery
End Sub
Mỗi lần chuyển đến một mẩu tin sinh viên khác thì combo box tạo lại danh sách.
Bảng 1: Bảng dữ liệu SINH_VIEN
Bảng 2: Bảng dữ liệu MON_HOC
Bảng 3: Bảng dữ liệu DANG_KY
Similar topics
» Tao query trong Access de cap nhat luong
» Chuyen các muc giua hai ListBox trong Access
» BÀI TÂP ACCESS 01
» BÀI TAP ACCESS 02
» BAI TAP ACCESS 03
» Chuyen các muc giua hai ListBox trong Access
» BÀI TÂP ACCESS 01
» BÀI TAP ACCESS 02
» BAI TAP ACCESS 03
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|