Sei sulla pagina 1di 11

THI ACCESS 2

Bài tập 1: Tạo form lấy dữ liệu nguồn từ Q_ThiAB, Các nút đầu lùi…. Tạo bằng MacRo.
Bài tập 2: Quản lý sách

2
Field hoa hồng được tính bằng hàm.

3
Dữ liệu nguồn của form F_NhapDL được lấy từ Q_TinhToan

4
Form F_Tonghop

5
`

6
Option Compare Database
Dim DL As Database
Dim Sach As Recordset
Dim cKQ As String
Dim CoDL As Boolean

Private Sub ChGiamgia_Click()


Giamgia1.Enabled = Not Giamgia1.Enabled
End Sub

Private Sub ChMasach_Click()


masach1.Enabled = Not masach1.Enabled
masach2.Enabled = Not masach2.Enabled
End Sub

Private Sub Chngaynhap_Click()


ngaynhap1.Enabled = Not ngaynhap1.Enabled
ngaynhap2.Enabled = Not ngaynhap2.Enabled
End Sub

Private Sub ChTenkhach_Click()


tenkhach1.Enabled = Not tenkhach1.Enabled
End Sub

Private Sub Dem_Click()


LocDL
If CoDL = True Then
tongso.Caption = DCount("TenKhach", "Q_TinhToan", cKQ)
End If
End Sub

Private Sub Form_Open(Cancel As Integer)


Set DL = CurrentDb()
Set Sach = DL.OpenRecordset("Q_TinhToan", dbOpenDynaset)
Me.Caption = "Hom nay la :" & IIf(Weekday(Date) = 1, " Chu Nhat ", " Thu ") & Weekday(Date) & ", Ngay
" & Date
End Sub

Private Sub LocDL()


Dim tam(1 To 4) As String
Dim k As Integer

For k = 1 To 4
tam(k) = "True"
Next k

If ChMasach = True Then


tam(1) = "MaSach>='" & masach1 & "' and MaSach<='" & masach2 & "'"
End If
If ChTenkhach = True Then
tam(2) = "Instr(1,tenkhach,'" & tenkhach1 & "')>0"
End If

If ChGiamgia = True Then


tam(3) = "GiamGia=" & Giamgia1 & ""

7
End If
If Chngaynhap = True Then
tam(4) = "NgayNhap<=#" & ngaynhap1 & "# and NgayNhap<=#" & ngaynhap2 & "#"
End If
cKQ = "True"
For k = 1 To 4
cKQ = tam(k) & " and " & cKQ
Next k
If DCount("TenKhach", "Q_TinhToan", cKQ) > 0 Then
CoDL = True
Else
CoDL = False
MsgBox "Khong co ai ca"
End If
End Sub

Private Sub In_Click()


LocDL
If CoDL = True Then
DoCmd.OpenReport "R_BaoCao", acViewNormal, "Q_TinhToan", cKQ
End If
End Sub

Private Sub OK_Click()


Dim k As Integer
Dim sort As Boolean
sort = False
If Not IsNull(sort1) And Not IsNull(sort2) Then
cKQ = sort1 & " " & chieu1 & "," & sort2 & " " & chieu2
'MaSach ASC, SOlg DESC
sort = True
End If
If Not IsNull(sort1) And IsNull(sort2) Then
cKQ = sort1 & " " & chieu1
sort = True
End If
DoCmd.Beep
If sort = True Then
Sach.sort = cKQ
'MaSach ASC, SoLg DESC
Set Sach = Sach.OpenRecordset
k=1
Sach.MoveFirst
Do While Not Sach.EOF
Sach.Edit
Sach!SOTT = k
Sach.Update
Sach.MoveNext
k=k+1
Loop
MsgBox "Da sap xep xong"
Else
MsgBox "Khong thuc hien duoc"
End If
End Sub

8
Private Sub Thoat_Click()
DoCmd.Close acForm, "F_TongHop"
End Sub

Private Sub Xem_Click()


LocDL
If CoDL = True Then
DoCmd.OpenForm "F_XemDL", acFormDS, "Q_TinhToan", cKQ
End If
End Sub

Private Sub XemIn_Click()


LocDL
If CoDL = True Then
DoCmd.OpenReport "R_BaoCao", acViewPreview, "Q_TinhToan", cKQ
End If
End Sub
---------------------------------------
Report

Macro

9
Bài tập tính các phép toán:

Ràng buộc khi nhập Masach. Dùng Macrro


Condition Action Comment
Dcount(“Masach”,”DmSach”,”form.Masach=Masach”)>0 Msgbox Msgbox: Ma sách này co rồi,
Tile: Thông báo
… CancelEvent
Viết code:
Private Sub MaSach_Before update (Cancel as integer)
If Dcount(“Masach”,”DmSach”,”form.Masach=Masach”)>0 then
Msgbox “Mã sách này có rồi”
Docmd.cancelEvent
End if
End sub

10
Tạo Macro làm Menu

11

Potrebbero piacerti anche