một số nút lệnh

11 1.1K 11
Tài liệu đã được kiểm tra trùng lặp
một số nút lệnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Một Số Ví Dụ Về Cách Sử Dụng Nút Lệnh Nút LệnhĐầu -Trước- Sau –Cuối Trước hết vẽ Command Button 1/ Nút về Đầu -Trước 1.1/ Thực hiện lệnh không kiểm tra : Private Sub Cmdvedau (Cmdvetruoc )_Click() DoCmd.GoToRecord , , acFirst {Di chuyển mẫu tin về đầu } Hoặc DoCmd.GoToRecord , , acPrevious {Di chuyển mẫu tin về Trước } End Sub 1.2/Thực hiện lệnh có kiểm tra : Private Sub Cmdvedau(Cmdvetruoc )_Click() MAPHIEU.SetFocus { Đối tượng .Setfocus } If Me.CurrentRecord > 1 Then {Nếu mẫu tin hiện tại >1 thì } DoCmd.GoToRecord , , acFirst {Di chuyển mẫu tin về đầu } Hoặc DoCmd.GoToRecord , , ac Previous {Di chuyển mẫu tin về Trước } Else {Ngược lại là Loi khi di chuyen } MsgBox "Ban dang o record dau tien ",vbYesNo + vbQuestion, "H_T thong bao" {Msgbox “Lỗi thông báo ”,Nút lệnh , “chuổi làm tiêu đề hộp thoại ” } End If End Sub 1.3/Thực hiện lệnh có kiểm tra và có xử lý bẩy lỗi giả để không hiện thông báo sau khi vượt qua Recordset Private Sub CMDvedau (Cmdvetruoc)_Click() { Private Sub Tenthutuc () On Error GoTo VD | On error goto . . . Mhãn | Dãy kết thúc { Đối tượng .Setfocus } If Me.CurrentRecord > 1 Then {Nếu mẫu tin hiện tại >1 thì } DoCmd.GoToRecord , , acFirst {Di chuyển mẫu tin về đầu } Hoặc DoCmd.GoToRecord , , ac Previous {Di chuyển mẫu tin về Trước } Else {Ngược lại là Loi khi di chuyen } MsgBox "Ban dang o record dau tien ",vbYesNo + vbQuestion, "H_T thong bao" {Msgbox “Lỗi thông báo ”,Nút lệnh , “chuổi làm tiêu đề hộp thoại ” } End If Ketthuc : Exit Sub VD: | Nhãn | Msgbox“Bạn đang ở Record đầu tiên ” ,vbyesno+vbquestion, “Hop thoai thong bao” | Dãy lệnh thông báo lỗi | Err_ CMDvedau _Click: MsgBox Err.Description Resume Exit Ketthuc End Sub 2/ Nút về Sau –Cuối 2.1/ Thực hiện lệnh không kiểm tra : Private Sub Cmdvecuoi(Cmdvesau )_Click() DoCmd.GoToRecord , , acLast {Di chuyển mẫu tin về cuối } Hoặc DoCmd.GoToRecord , , acNext {Di chuyển mẫu tin về Sau } End Sub 2.2 Thực hiện lệnh có kiểm tra : Private Sub cmdvecuoi(Cmdvesau) _Click() MAPHIEU.SetFocus { Đối tượng .Setfocus } If Me.CurrentRecord < Me.RecordsetClone.RecordCount Then {Nếu mẫu tin hiện tại >tổng số mẫu tin thì } DoCmd.GoToRecord , , acLast {Di chuyển mẫu tin về cuối } Hoặc DoCmd.GoToRecord , , acNext {Di chuyển mẫu tin về Sau } End If End Sub 2.3 Thực hiện lệnh có kiểm tra và có xử lý bẩy lỗi giả để không hiện thông báo sau khi vượt qua Recordset Private Sub CMDvedSau(Cmdvecuoi)_Click() { Private Sub Tenthutuc () On Error GoTo VD | On error goto . . . Mhãn | Me.Đốitượng . SetFocus { Đối tượng .Setfocus } If Me.CurrentRecord < Me.RecordsetClone.RecordCount Then {Nếu mẫu tin hiện tại >tổng số mẫu tin thì } DoCmd.GoToRecord , , acLast {Di chuyển mẫu tin về cuối } Hoặc DoCmd.GoToRecord , , acNext {Di chuyển mẫu tin về Sau } End If Ketthuc : Exit Sub VD: | Nhãn | Msgbox“Bạn đang ở Record cuối cùng ” ,vbyesno+vbquestion, “Hop thoai thong bao” | Dãy lệnh thông báo lỗi | Err_ CMDvedSau _Click: MsgBox Err.Description Resume Exit Ketthuc End Sub Nút Lệnh-Xoá- ( Delete ) Chú ý : Cú pháp : <Biến Recordset>.Delete Công dụng : Xoá mẫu tin hiện hành 1 Xoá không kiểm tra : Private Sub cmdHuy_Click() DoCmd.RunCommand (acCmdDeleteRecord) End Sub 2 Xoá kiểm tra : Private Sub cmdHuy_Click() MAPHIEU.SetFocus { Đối tượng .Setfocus } If DCount("*", "ctdatbao ", "maphieu='" & Me.MAPHIEU & "'") > 0 Then { Nếu Dò tìm mã của đối tượng trong bảng Table nhiều với điều kiện Mã của đối tượng trong bảng Table nhiềuphải = Mã của đối tượng đó ở trên form } MsgBox "Da co xai " Else |Ngược lại | If MsgBox(" Vay xoa nha ", vbYesNo, "th") = vbYes Then { Nếu Muốn xoá thông báo hộp thoại } DoCmd.SetWarnings (False) DoCmd.RunCommand (acCmdDeleteRecord) DoCmd.SetWarnings (True) End If End If End Sub 3.Xoá có kiểm tra , bỏ qua khi không xoá được : Private Sub Xoa_Click() On Error GoTo TH If MsgBox("ban co muon xoa hay khong", vbYesNo) = vbYes Then End If DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Hoặc If DCount("*", "ctdatbao ", "maphieu='" & Me.MAPHIEU & "'") > 0 Then { Nếu Dò tìm mã của đối tượng trong bảng Table nhiều với điều kiện Mã của đối tượng trong bảng Table nhiềuphải = Mã của đối tượng đó ở trên form } MsgBox "Da co xai " Else |Ngược lại | If MsgBox(" Vay xoa nha ", vbYesNo, "th") = vbYes Then { Nếu Muốn xoá thông báo hộp thoại } DoCmd.SetWarnings (False) DoCmd.RunCommand (acCmdDeleteRecord) DoCmd.SetWarnings (True) End If End If Exit_xoa_Click: Exit Sub Err_xoa_Click: MsgBox Err.Description Resume Exit_xoa_Click TH: MsgBox "ban khong the xoa vi con lien ket table" End Sub 4.Thêm –xoá chi tiết : Trong trường hợp xử lý trên Main –subform , trước khi muốn thêm hoặc xoá record trong subform cần chuyển điều khiển vào Subform Docmd Gotocontrol “Tên subform” Hoặc Me!Tênsubform. setfocus Nút Lệnh Thêm (Add) Chú ý : Hàm dò tìm :Dlookup(“ field name”, “tablename or Query name”, “điều kiện ”) Với : Field name : Tên field cần lấy giá trò Tablename or Query name : Tablename or Query namecần lấy dữ liệu Biểu thức điều kiện : Điều kiện tìm kiếm Cú pháp : Me.refresh Công dụng Làm tươi ( cập nhật ) lại Form, dùng để cập nhật lại dữ liệu cho combo box sau khi xoá Record trên Table tương ứng Cú pháp : <Biến Recordset>.Edit hoặc <Biến Recordset>.Update Công Dung : Edit :Hiểu chỉnh (sửa ) dữ liệu của mẫu tin hiện hành Update :Cập nhật lại dữ liệu vào bộ mẫu tin hiện hành Chú ý : để hiểu chỉnh dữ liệu của mẫu tin hiện hành phải sử dụng phương thức Edit đi kèm với phương thức Update Cú pháp : < biến recordset>.AddNew Công dụng : Thêm một mẫu tin mới vào cuối Recordset Lưu ý : khi nhập mẫu tin mới vào Table thì cần phải Update để cập nhật lại dữ liệu vào Table 1.Thêm mẫu tin không kiểm tra : Private Sub them_Click() DoCmd.GoToRecord , , acNewRec Đối tượng .SetFocus |Con trỏ nhảy | End Sub 2.Thêm mẫu tin có kiểm tra : Biểu mẫu hiển chỉnh đã bò khoá “khoá ” chế độ Addtion Sửa ( Edit ) Xoá (deletion )khi nó mới hoạt động và chỉ cho phép từng công việc tương ứng khi nhấn vào nut lệnhNút thêm ( Sự kiện OnClick )  Bật chế độ cho phép thêm Me.AllowAddtions= True  Thêm mẫu tin trắng Docmd.Gotorecord ,, acNewRec  Chuyển điều khiển về điều khiển nhập giá trò cột đầu tiên Me!Tên điều khiển cột I .Setfocus  “Khoá ” các nút lệnh ( Bằng cách Xử lý mờ cho các nút lệnh nếu có ) Me.đối tượng .Enabled= False • Trên biến cố After Insert  Tắt chế độ cho phép thêm Me.allowadditions =false  Trả trạng thái nút vềnhư trước khi thêm Me!đối tượng .Enabled • Kiểm tra mẫu tin trắng : Kiểm tra không được trùng khoá , kiểm tra không được rỗng ,kiểm tra các giá trò được nhập {Kiểm tra có nhập field name và có bò trùng khoá hay không ?} Private Sub Form_BeforeUpdate(Cancel As Integer) If isnull(field name) then Msgbox “mã fieldname không được rỗng ”,, “Lỗi khoá chính ” Cancel=True End if If Dcount(“Mamh”, “monhoc ”, “Manh”& me.mamh& “’”)>0 then Msgbox “mã fieldname không được rỗng ”,, “Lỗi khoá chính ” Cancel=True End if End Sub {Kiểm tra số tiết có >=15 hay không ?} Private Sub Sotiet_BeforeUpdate(Cancel As Integer) If me!Sotiet>15 then Msgbox “số tiết học mỗi môn >= 15”,, “Loi về giá trò ” Cancel=True End if End Sub {Kiểm tra ngày hiện hành hay không ?} Private Sub txtchinhngay_DblClick(Cancel As Integer) Me.txtchinhngay = Date End Sub Nút Lệnh Thoát (Close ) (Đặt tên cmdclose) Private Sub cmdClose_Click() If MsgBox(" Ban muon thoat khong?",vbYesNo +vbQuestion, "Hop thoai thong bao") = vbYes Then DoCmd.close , , acSaveYes End If End Sub Nút Lệnh In ( Print) 1/ Print Preview ( Xem kết quả trên màn hình ) a/ Print preview bằng chế độ wizrad Private Sub CMDIN_Click() On Error GoTo Err_CMDINTOA_Click Dim stDocName As String {Khai báo biến } stDocName = "Cau 3_Main" {Khai báo tên của report} DoCmd.OpenReport stDocName, acViewPreview {Khai báo lệnh in ra màn hình } Exit_CMDINTOA_Click: Exit Sub Err_CMDINTOA_Click: MSGBOX Err.Description Resume Exit_CMDINTOA_Click End Sub b/ Print preview không sử dụng chế độ wizrad Private Sub CMDIN_Click() DoCmd.OpenReport “Tên report”, acViewPreview, , “Manv=’”&me.manv& “’” {Khai báo lệnh in ra màn hình } End Sub 2/ Print ( Xem kết quả trên giấy ) Private Sub CMDIN_Click() On Error GoTo Err_CMDINTOA_Click Dim stDocName As String {Khai báo biến } stDocName = "Cau 3_Maiây1” {Khai báo tên của report} DoCmd.OpenReport stDocName, acNormal {Khai báo lệnh in ra giấy } Exit_CMDINTOA_Click: Exit Sub Err_CMDINTOA_Click: MSGBOX Err.Description Resume Exit_CMDINTOA_Click End Sub 3/ Print ( Xem kết quả dưới dạng thiết kế ) Private Sub CMDIN_Click() On Error GoTo Err_CMDINTOA_Click Dim stDocName As String {Khai báo biến } stDocName = "Cau 3_Maiây1” {Khai báo tên của report} DoCmd.OpenReport stDocName, acdesignView {Khai báo lệnh in ở chế độ thiế kế } Exit_CMDINTOA_Click: Exit Sub Err_CMDINTOA_Click: MSGBOX Err.Description Resume Exit_CMDINTOA_Click End Sub Mẫu Tin Hiện Hành Vẽ Textbox và đặt tên cho Textbox là cmd Vào Code gõ : Private Sub Form_Current() Cmd = Me.CurrentRecord & "/" & Me.RecordsetClone.RecordCount {Mẫu tin hiện tại / Tổng số mẫu tin } End Sub Nút Tìm (Find ) Cú pháp : <Biến Recordset>.FindFirst<Biểu thức điều kiện > {Tìm mẫu tin đầu tiên thoả điều kiện }(1) <Biến Recordset>.FindNext<Biểu thức điều kiện > {Tìm mẫu tin hiện hành trở về sau }(2) <Biến Recordset>.FindPrevious<Biểu thức điều kiện > {Tìm mẫu tin hiện hành trở về trước }(3) <Biến Recordset>.FindLast<Biểu thức điều kiện > {Tìm mẫu tin cuối cùng trở lên }(4) Công dụng : Khi dò tìm con trỏ đònh vò tai ( (1),(2),(3),(4))thoả điều kiện tìm kiếm Sử dụng thuộc tính NoMatch để kiểm tra kết quả tìm kiếm <Biến Recordset>.Nomatch=True →Tìm có <Biến Recordset>.Nomatch=False →Tìm không có 1/ Tìm bằng chế độ wizrad Private Sub Tim_Click() On Error GoTo Err_Tim_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_Tim_Click: Exit Sub Err_Tim_Click: MSGBOX Err.Description Resume Exit_Tim_Click End Sub 2/ Tìmkhông sử dụng chế độ wizrad Private Sub Tim_Click() Đối tượng .setfocus DimRecord can tim as string Record can tim= Inputbox (“nhap field name cân tìm ”) If Dcount (“* ”, “DMMH ”, “Mamh =” & Record can tim & “’” ) =0 then Msgbox record can tim & “Khong tìm thấy ” Else Docmd.Findrecord Record can tim End if End Sub Nút Ghi ( save ) Cú pháp : DoCmd.RunCommand acCmdSaveRecord Private Sub CMDGHI_Click() {Gán lệnh nhã error } On Error GoTo Err_CMDGHI_Click {Không kiểm tra lỗi } Me.AllowAdditions = True Me.AllowEdits = True {Thực hiện lưu mẫu tin } DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 DoCmd.RunCommand acCmdSaveRecord {Xử lý sáng mờ } CMDKHONG.Enabled = False CMDTHEM.Enabled = True CMDXOA.Enabled = True {Có kiểm tra lỗi } If Me.NewRecord And DCount("*", "CTTOA", "STTTOA='" & Me.STTTOA & "'") > 0 Then MSGBOX " thông báo " Exit Sub End If Exit_CMDGHI_Click: Exit Sub Err_CMDGHI_Click: MSGBOX Err.Description Resume Exit_CMDGHI_Click End Sub Nút không UNDO( bỏ qua ) Cú pháp : Docmd.RunCommand acCmdUndo Hoặc DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Private Sub CMDKHONG_Click() {Gán lệnh nhã error } On Error GoTo Err_CMDKHONG_Click {Thực hiện lệnh UNDO } If MsgBox(" Ban muon thoat khong?",vbYesNo +vbQuestion, "Thong bao") = vbYes Then Docmd.RunCommand acCmdUndo Hoặc DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 End if {Xử lý sáng mờ } CMDGHI.Enabled = False CMDTHEM.Enabled = True CMDXOA.Enabled = True Exit_CMDKHONG_Click: Exit Sub Err_CMDKHONG_Click: MSGBOX Err.Description Resume Exit_CMDKHONG_Click End Sub Mở Form Khác Ở Chế Độ Thêm Mới Me.đối tượng .setfocus Docmd.OpenForm "Tên của form",acNormal ,"Ten khoa chinh ='"&me.đối tượng " Docmd.gotorecord ,, acnewrec Nút Thêm Mới Trang 1 Và Đồng Thời Thêm Mới Trang 2 Me. Têntrang2.setfocus  Thêm mẫu tin trắng Docmd.Gotorecord ,, acNewRec [...].. .Nút Bỏ Qua {Thực hiện bỏ qua bằng cách Ấn phím ESC} Senkeys “{ ESC }” {Con trỏ sẽ nhảy đến record cuối } Docmd.gotorecord ,,aclast Xử lý List box Private Sub Form_Current() Tên listbox=khoá chính trên... “so luong phai >0” Cancel = True End if End sub Xử Lý Combo Box Chỉ Được Chọn Những Giá Trò Có Trong Danh Sách Private Sub Tenkhoa_notInlist (New data as string , Response as Interger ) Msgbox “ban chọn một giá trò không ton tại ! Vui long bạn chọn lại ” Response =True End sub . Một Số Ví Dụ Về Cách Sử Dụng Nút Lệnh Nút Lệnh ầu -Trước- Sau –Cuối Trước hết vẽ Command Button 1/ Nút về Đầu -Trước 1.1/ Thực hiện lệnh không. đầu tiên Me!Tên điều khiển cột I .Setfocus  “Khoá ” các nút lệnh ( Bằng cách Xử lý mờ cho các nút lệnh nếu có ) Me.đối tượng .Enabled= False • Trên biến

Ngày đăng: 30/07/2013, 01:25

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan