Giáo trình Access tạo giao diện
- taïo modul capnhatOption Compare DatabasePublic Sub moirec() 'DoCmd.GoToRecord , , acNewRec DoCmd.RunCommand acCmdRecordsGoToNewEnd SubPublic Sub luurec() 'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 DoCmd.RunCommand acCmdSaveRecordEnd SubPublic Sub huyrec() 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 DoCmd.RunCommand acCmdUndoEnd SubPublic Sub xoarec() 'DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 'DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.RunCommand acCmdDeleteRecordEnd Sub- tao module dichuyenOption Compare DatabasePublic Sub daurec() 'DoCmd.GoToRecord , , acFirst DoCmd.RunCommand acCmdRecordsGoToFirstEnd SubPublic Sub luirec() 'DoCmd.GoToRecord , , acPrevious DoCmd.RunCommand acCmdRecordsGoToPreviousEnd SubPublic Sub toirec() 'DoCmd.GoToRecord , , acNext DoCmd.RunCommand acCmdRecordsGoToNext Trang 1 End SubPublic Sub cuoirec() 'DoCmd.GoToRecord , , acLast DoCmd.RunCommand acCmdRecordsGoToLastEnd SubPublic Sub thoatrec() 'DoCmd.Close DoCmd.RunCommand acCmdCloseEnd SubPublic Sub dichuyen(sukien As String) Select Case sukien Case "dau" DoCmd.RunCommand acCmdRecordsGoToFirst Case "lui" DoCmd.RunCommand acCmdRecordsGoToPrevious Case "toi" DoCmd.RunCommand acCmdRecordsGoToNext Case "cuoi" DoCmd.RunCommand acCmdRecordsGoToLast Case "thoat" DoCmd.RunCommand acCmdClose Case "moi" DoCmd.RunCommand acCmdRecordsGoToNew Case "xoa" DoCmd.RunCommand acCmdDeleteRecord Case "luu" DoCmd.RunCommand acCmdSaveRecord Case "huy" DoCmd.RunCommand acCmdUndo End SelectEnd Sub* chú ý khi thiết kế không chọn đối tượng control wizard trên thanh công cụ toolboxV/. Thiết kế form giao diện:1/.Thiết Kế Form Thay Đổi Ngày Hệ Thống(Dùng làm form Startup trong chương trình)- nhấn nút more control ở thanh công cụ toolbox,chọn microsoft date and time picker control,kéo thả vào form.Private Sub cancel_Click()Me.ok.SetFocusMe.layngay.Visible = FalseMe.NGAY.Visible = FalseEnd SubPrivate Sub Form_Activate()DoCmd.MaximizeEnd SubPrivate Sub ok_Click()Me.ok.SetFocusMe.NGAY.Visible = TrueMe.layngay.Visible = TrueMe.Refresh Trang 2 Date = Me.layngayMe.RefreshEnd SubĐối tượng ngay: Hiển thò ngày hiện tại của hệ thống bằng cách dùng hàm Date()Đối tượng layNgay: hiển thò ngày tháng năm cho người sử dụng chọn ngày mới nếu ngày hiện tại của hệ thống không đúng thực tế.Nút ok: Khi nhấn vào sẽ sửa ngày hệ thống là ngày mà người sử dụng chọn trong đối tượng Nút cancel: không cho sữa đổi ngày hệ thống.2/.Tạo Form Cập Nhật DMHH- Vào Tab Form/New/Design View, record Source = DMHH.- Bật Form Header và Form Footer.- Thiết kế giống như sau:Tạo 1 function trả về giá trò là mã hàng mới, tham số nhập vào là mã nhà cung cấp.Mở Table DMHH ở chế độ Design, vào menu View/Index, tạo 1 Index mới tên STT, sắp xếp field MAHANG giảm dần. Mục đích sắp xếp để khi Browse Table này thì các mẫu tin sẽ được liệt kê theo MAHANG giảm dần.Khi người sử dụng nhấn nút tạo mới, Focus sẽ được chuyển đến comboBox mã nhà cung cấp cho người sử dụng chọn, sau khi chọn sẽ kích hoạt sự kiện After Update để tạo ra 1 mã hàng mới.Viết Code cho sự kiện After Update của combo MANCC như sau:Private Sub MANCC_AfterUpdate()MAHANG = MAHH(Me.MANCC)End SubTa chỉ muốn cho ComboBox MANCC hiện ra khi người sử dụng nhấn nút tạo mới, còn đối với những mẫu tin đã có thì nó bò mờ đi bằng cách viết Code cho sự kiện Current của Form.Viết Code cho sự kiện Current của Form:Private Sub Form_Current()If IsNull(Me.MAHANG) Then Me.MANCC.Enabled = TrueElse Me.MANCC.Enabled = FalseEnd IfEnd SubChọn thẻ Module tạo một hàm, đặt tên là MAHH. Hàm này sẽ trả về mã hàng mới phụ thuộc vào mã nhà cung cấp nên nó có 1 tham số là mã nhà cung cấp tương ứng mà ta sẽ đưa vào sau.Public Function MAHH(NCC As String) Trang 3 Dim db As DAO.DatabaseDim HH As DAO.RecordsetSet db = CurrentDbSet HH = db.OpenRecordset("DMHH")If HH.RecordCount = 0 ThenMAHH = NCC & "001"Exit FunctionElseHH.Index = "STT"HH.MoveFirstMAHH = NCC & Format(Val(Right(HH!MAHANG, 3)) + 1, "000")End IfEnd FunctionMã hàng sẽ được tạo tương ứng với nhà cung cấp đã cung cấp mặt hàng đó kết hợp với số thứ tự tăng dần tương ứng với số mặt hàng mà nhà cung cấp đã cung cấp cho cửa hàng. NCC01 cung cấp mặt hàng CocaCola => Mã hàng tương ứng là NCC01001NCC01 cung cấp mặt hàng Pepsi => Mã hàng tương ứng là NCC01002Giải thích các giải thuật trong hàm:Khai báo biến DB kiểu Database (cơ sở dữ liệu), sau đó đặt biến DB tham chiếu đến cơ sở dữ liệu hiện đang mở, có nghóa là DB chứa tất cả các Table từ DMKH đến CTPXK.Khai báo biến RS kiểu Recordset (kiểu bảng), đặt biến RS tham chiếu đến bảng cần xử lý là DMHH để tạo mã hàng tương ứng.Kiểm tra Table DMHH có mẫu tin nào chưa, nếu chưa có sẽ phát sinh mã hàng = Tham số nhập vào & “001” (tham số nhập vào chính là MANCC)Nếu đã có mẫu tin thì sẽ sắp xếp Table DMHH theo field MAHANG giảm dần bằng cách gọi một Index tên STT đã tạo sẵn phần trên, sau đó nhảy lên mẫu tin đầu tiên.Thực hiện 1 vòng lặp tìm đến mã hàng nào có 5 ký tự đầu là mã nhà cung cấp đã nhập vào hàm, nếu tìm thấy mẫu tin đầu tiên thoả có nghóa là mã hàng đó có 3 ký tự sau cùng là giá trò lớn nhất, dùng hàm Right cắt 3 ký tự đó ra và cộng thêm 1, sau đó gắn vào bên trái nó mã nhà cung cấp tương ứng, trả giá trò này về cho hàm MAHH và thoát khỏi hàm. Ngược lại, nếu tìm đến cuối mẫu tin vẫn chưa thấy hoặc đến mẫu tin nào có 5 ký tự đầu của mã hàng nhỏ hơn nhà cung cấp thì cho hàm MAHH trả về giá trò bằng nhà cung cấp ghép với số thứ tự 001.- nút đầu: đặt thuộc tính enable=no- nút lưu, huỷ:visabled=no- đặt thuộc tính form: default view – continuous forms- đặt thuộc tính các text box: locked=yes- mã lệnh cho form CNDMHHOption Compare DatabasePrivate Sub dau_Click()On Error GoTo Err_dau_Click Me.MAHANG.SetFocus Call daurec Me.dau.Enabled = False Me.lui.Enabled = False Me.toi.Enabled = True Me.cuoi.Enabled = TrueExit SubErr_dau_Click: Trang 4 MsgBox ""End SubPrivate Sub Form_Activate()DoCmd.MaximizeEnd SubPrivate Sub lui_Click()On Error GoTo Err_lui_Click Me.MAHANG.SetFocus Call luirec Me.toi.Enabled = True Me.cuoi.Enabled = True Exit SubErr_lui_Click: MsgBox "Da den mau tin dau tien", 64, "Th«ng B¸o" Me.dau.Enabled = False Me.lui.Enabled = FalseEnd SubPrivate Sub MANCC_AfterUpdate()MAHANG = MAHH(Me.MANCC)End SubPrivate Sub toi_Click()On Error GoTo Err_toi_Click Me.MAHANG.SetFocus Call toirec Me.dau.Enabled = True Me.lui.Enabled = True Exit SubErr_toi_Click: MsgBox "Da den mau tin cuoi cung", 64, "Thong bao" Me.toi.Enabled = False Me.cuoi.Enabled = FalseEnd SubPrivate Sub cuoi_Click()On Error GoTo Err_cuoi_Click Me.MAHANG.SetFocus Call cuoirec Me.toi.Enabled = False Me.cuoi.Enabled = False Me.dau.Enabled = True Me.lui.Enabled = True Exit SubErr_cuoi_Click: MsgBox Err.DescriptionEnd SubPrivate Sub thoat_Click()On Error GoTo Err_thoat_Click Trang 5 Call thoatrecExit Sub Trang 6 . công cụ toolboxV/. Thiết kế form giao diện: 1/.Thiết Kế Form Thay Đổi Ngày Hệ Thống(Dùng làm form Startup trong chương trình) - nhấn nút more control ở thanh. thống.2/ .Tạo Form Cập Nhật DMHH- Vào Tab Form/New/Design View, record Source = DMHH.- Bật Form Header và Form Footer.- Thiết kế giống như sau :Tạo 1 function