Danh mục

Sắp xếp phòng thi bằng Access

Số trang: 5      Loại file: pdf      Dung lượng: 138.01 KB      Lượt xem: 21      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Để sắp xếp phòng thi cho học sinh, tôi dùng hai bảng trong Access: table1 có hai cột PHONGTHI và SOLUONG, table2 có các cột SBD, HOTEN, MONTHI, PHONGTHI. Tôi muốn gán tên phòng thi ở table1 vào tên phòng thi ỏ table2 với điều kiện: những học sinh có cùng môn thi thì ở chung phòng thi và số học sinh không được quá số lượng trong table1, nếu vượt quá số lượng thì cho qua phòng kế tiếp. Xin hướng dẫn. Kinh nghiệm: Ví dụ sau đây dựa trên hai bảng có tên tbDSPhongThi (vai trò như table1...
Nội dung trích xuất từ tài liệu:
Sắp xếp phòng thi bằng AccessSắp xếp phòng thi bằng Accesshắc mắc: Để sắp xếp phòng thi cho học sinh, tôi dùnghai bảng trong Access: table1 có hai cộtPHONGTHI và SOLUONG, table2 có các cộtSBD, HOTEN, MONTHI, PHONGTHI. Tôi muốngán tên phòng thi ở table1 vào tên phòng thi ỏ table2với điều kiện: những học sinh có cùng môn thi thì ởchung phòng thi và số học sinh không được quá sốlượng trong table1, nếu vượt quá số lượng thì cho quaphòng kế tiếp. Xin hướng dẫn.Kinh nghiệm:Ví dụ sau đây dựa trên hai bảng có tên tbDSPhongThi(vai trò như table1 của bạn) và tbDSThiSinh (vai trònhư table2 của bạn), trong đó field PhongThi củatbDSPhongThi có thuộc tính Index là Yes (NoDuplicates) (không phải là Primary Key), và fieldMonThi của tbDSThiSinh cũng có thuộc tính Indexlà Yes (No Duplicates). Việc tạo index chỉ để sắp thứtự các thí sinh của cùng môn thi vào một nhóm, cũngnhư sắp thứ tự phòng thi theo tên.Trên form bạn vẽ một nút lệnh có têncmdSapXepPhongThi, rồi gõ đoạn mã 2 vào thủ tụcxử lý tình huống Click.Căn cứ vào ví dụ này, bạn có thể áp dụng vào nhucầu thực tế của mình. Bạn lưu ý: để sử dụng các đốitượng Database và Recordset, trong cửa sổ soạn thảoVBA, bạn chọn Tools > References, rồi chọn mụcMicrosoft DAO 3.6 Object Library (hoặc phiên bảncao nhất của DAO Object Library) trong hộp thoạiReferences.Đoạn mã 2Private Sub cmdSapXepPhongThi_Click() Dim db As Database, rsDSPhongThi AsRecordset, rsDSThiSinh As Recordset Dim sMonThi As String, nSoLuongHienHanh AsByte Set db = CurrentDb Set rsDSPhongThi =db.OpenRecordset(tbDSPhongThi) Set rsDSThiSinh =db.OpenRecordset(tbDSThiSinh) rsDSPhongThi.Index = PhongThi Khôngphải Primary key, chỉ để sắp thứ tự rsDSPhongThi.MoveFirst rsDSThiSinh.Index = MonThi Không phảiPrimary key, chỉ để sắp thứ tự With rsDSThiSinh nSoLuongHienHanh = 0 .MoveFirst sMonThi = !MonThi Do While Not .EOF If !MonThi sMonThi Then Sang mônthi khác rsDSPhongThi.MoveNext Sang phòngthi khác If rsDSPhongThi.EOF Then Hết phòng MsgBox Hết phòng thi rồi! Exit Do End If nSoLuongHienHanh = 0 sMonThi = !MonThi End If If nSoLuongHienHanh >=rsDSPhongThi!SoLuong Then Het cho rsDSPhongThi.MoveNext Sang phòngthi khác If rsDSPhongThi.EOF Then Hết phòng MsgBox Hết phòng thi rồi! Exit Do End If nSoLuongHienHanh = 0 End If .Edit !PhongThi = rsDSPhongThi!PhongThi .Update nSoLuongHienHanh = nSoLuongHienHanh+1 .MoveNext Loop End With rsDSThiSinh.Close rsDSPhongThi.Close db.CloseEnd Sub echip

Tài liệu được xem nhiều: