Trong bài viết này xin giới thiệu một số code thường dùng trong Form Access như code cho button Về đầu, Trước, Kế, Về Cuối, Thêm, Lưu, Sửa, Xóa ...
1. Code cho button Về đầu
Private Sub CMDau_Click()
DoCmd.GoToRecord , , acFirst
Me.CMTruoc.Enabled = False
Me.CMKe.Enabled = True
End Sub
* Giải thích câu lệnh: Khi click button Về đầu sẽ về record đầu tiên, đồng thời vô hiệu hóa button Trước (bị mờ đi) và kích hoạt button Kế.
2. Code cho button Trước
Private Sub CMTruoc_Click()
On Error GoTo Err_CMTruoc_Click
DoCmd.GoToRecord , , acPrevious
Me.CMKe.Enabled = True
Exit_CMTruoc_Click:
Exit Sub
Err_CMTruoc_Click:
MsgBox "Day la mau tin dau tien"
Resume Exit_CMTruoc_Click
End Sub
* Giải thích câu lệnh: Khi click button Trước sẽ về record trước record hiện hành, đồng thời kích hoạt button Kế. Nếu click về record đầu tiên sẽ xuất hiện thông báo "Đây là mẫu tin đầu tiên".
3. Code cho button Kế
Private Sub CMKe_Click()
On Error GoTo Err_CMKe_Click
DoCmd.GoToRecord , , acNext
Me.CMTruoc.Enabled = True
Exit_CMke_Click:
Exit Sub
Err_CMKe_Click:
MsgBox "Day la mau tin cuoi cung"
Resume Exit_CMke_Click
End Sub
* Giải thích câu lệnh: Khi click vào button Kế sẽ đến record kế tiếp của record hiện hành, đồng thời kích hoạt button Trước. Nếu record kế là record cuối thì sẽ xuất hiện thông báo "Đây là mẫu tin cuối cùng".
4. Code cho button Cuối
Private Sub CMCuoi_Click()
DoCmd.GoToRecord , , acLast
Me.CMKe.Enabled = False
Me.CMTruoc.Enabled = True
End Sub
* Giải thích câu lệnh: Khi click button Cuối sẽ đến record cuối cùng, đồng thời vô hiệu hóa button Kế (bị mờ đi) và kích hoạt button Trước.
5. Code cho button Thêm
Private Sub CMThem_Click()
DoCmd.GoToRecord , , acNewRec
End Sub
* Giải thích câu lệnh: Thêm record mới
6. Code cho button Lưu
Private Sub CMLuu_Click()
On Error Resume Next
DoCmd.RunCommand acCmdSave
CMSua.Enabled = True
CMSua.SetFocus
CMLuu.Enabled = False
CMXoa.Enabled = False
Me.AllowEdits = False
Me.FHDSubDC.Form.AllowEdits = False
Me.FHDSubDC.Form.Repaint
Me.Repaint
End Sub
* Giải thích câu lệnh: Khi click button Lưu sẽ thực hiện lưu dữ liệu, đồng thời kích hoạt button Sửa, vô hiệu hóa button Xóa (bị mờ đi) và không cho sửa dữ liệu đã lưu chỉ khi nào click vào button Sửa.
7. Code cho button Sửa
Private Sub Cmsua_Click()
If Year(Me.NgayLHD) = Year(Date) Then
If Month(NgayLHD) <> Month(Date) Then
MsgBox "Mau tin nay da thong ke khong sua duoc"
Exit Sub
End If
End If
Me.AllowEdits = True
Me.FHDSubDC.Form.AllowEdits = True
Me.FHDSubDC.Form.Repaint
Me.Repaint
CMLuu.Enabled = True
CMXoa.Enabled = True
CMLuu.SetFocus
CMSua.Enabled = False
End Sub
* Giải thích câu lệnh: Khi click vào button Sửa nếu năm hóa đơn = năm hiện hành và tháng hóa đơn khác tháng hiện hành thì xuất hiện thông báo "Mẫu tin này đã thống kê không sửa được" (tất nhiên sẽ không chỉnh sửa được dữ liệu này). Ngược lại, sẽ cho chỉnh sửa dữ liệu đồng thời kích hoạt button Lưu và Xóa.
8. Code cho button Xóa
Private Sub CMXoa_Click()
On Error GoTo Err_CmXoa_Click
If MsgBox("Ban muon xoa mau tin nay", vbOKCancel) = vbCancel Then Exit Sub
If Year(Me.TNgay) = Year(Date) Then
If Month(TNgay) <> Month(Date) Then
MsgBox "Mau tin nay da thong ke khong xoa duoc"
Exit Sub
End If
End If
Me.AllowEdits = True
Me.Repaint
DoCmd.SetWarnings (False)
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.SetWarnings (True)
Me.AllowEdits = False
Me.Repaint
Exit_CmXoa_Click:
Exit Sub
Err_CmXoa_Click:
MsgBox Err.Description
Resume Exit_CmXoa_Click
End Sub
* Giải thích câu lệnh: Khi click button Xóa sẽ xuất hiện thông báo "Bạn muốn xóa mẫu tin này". Chọn Ok sẽ xóa, chon Cancel sẽ không hủy lệnh. Nếu năm hóa đơn = năm hiện hành và tháng hóa đơn khác tháng hiện hành sẽ xuất hiện thông báo "Mẫu tin này đã thống kê không xóa được".
9. Code cho button Đóng
Private Sub CMDong_Click()
DoCmd.Close
End Sub
* Giải thích câu lệnh: Khi click sẽ đóng Form hiện hành