Bài giảng Access nâng cao potx

15 2.1K 48
Bài giảng Access nâng cao potx

Đ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

Bài Giảng Access NC Trung Tâm Tin Học Kỷ Nguyên Phần ứng dụng Visual Basic vào Access Thiết Kế FORM: Khi thiết kế Form chúng ta nên sử dụng chức năng Design View của form B1: FormNewDesign View OK B2: Vào thuộc tính của form Data  Control SourceChọn dấu …lấy nguồn dữ liệu cho form B3: Thiết kế form (giống phần căn bản) B4: Tạo các đối tượng trên form bằng chức năng tự thiết kế B5: Viết các câu lệnh cho các sự kiện Thuộc Tính Chung Của Form Default View: chế độ hiển thị của Form  Single Form: Form đơn (tạo Main form )  Datasheet: Thường dùng tạo Subform Scroll Bars: Thanh cuộn trn Form  Neither: Khơng hiển thị thanh cuộn  Vertical: Thanh cuộn dọc  Horizontal: Thanh Cuộn ngang Navigation Button: Yes/No cho hay khơng hiển thị thanh di chuyển mẩu tin Picture Type: chọn hình nền hiển thị trên Form Data: Control source: Nguồn dữ liệu cho Form ( Field List) ( Ta có thể click biểu tượng …mở cửa sổ SQL_Staterment để chọn nguồn dữ liệu cho Form khi tạo sub Allow Edits: Yes/No Cho/Khơng sửa dữ liệu trên form Allow Deletions: Yes/ No-> Cho/ Khơng Xóa mẩu tin Allow Additions: Yes/ No -> Cho/ Khơng thêm mẩu tin mới All Caption: Tiêu đề của Form Dividing lines: Đường qua các phân vùng Navigation Buttons: Thanh chỉ mẩu tin Record seletors: Chức năng chỉ mẩu tin Record locks: Khoa mẩu tin trên form Enabled: Sáng/mờ đối tượng Tab Index: Thứ tự khi nhấn phím tab Visible: Ẩn/ hiện đối tượng Width: Độ rộng Hight: Chiều cao Even Của Control On Click: Xảy ra khi nhấn con trỏ chuột On Dbl Click: Khi nhấp đơi chuột Before Update: Trước khi dữ liệu trên Control được cập nhật vào bảng After Update: Sau khi dữ liệu trên Control được cập nhật vào bảng Event Của Form On Current: xảy ra khi có sự di chuyển qua các mẩu tin khác Before Update: Xảy ra trước khi mẩu tin trong Form được cập nhật vào Table After Update: Xảy ra sau khi mẩu tin trên Form được cập nhật vào Trang 1 Lưu Hành Nội Bộ -2009 Baøi giaûng Access 1 On Got Focus: Khi Control nhận con trỏ On Exit: Khi con trỏ bắt đầu rời khỏi Control On Lost Focus: Khi con trỏ rời hẳng Control On Not In List: Kiểm tra dữ liệu trong Combo box Table On Load: Xảy ra khi Form được mở lên Before Del Confirm: Xảy ra trước khi xóa Record After Del confirm: Xảy ra sau khi xóa record On Error: Xảy ra khi Form xuất hiện một lỗi Dạng 1: If <điều kiện > Then <một câu lệnh> Nếu <điều kiện> đúng thì câu lệnh sẽ thực hiện Dạng 2: If <điều kiện> Then < Nhóm lệnh> End if Nếu <điều kiện> đúng thì Nhóm câu lệnh sẽ thực hiện Dạng 3: If <điều kiện> Then <nhóm câu lệnh 1> Else <nhóm câu lệnh 2> End if -Nếu <điều kiện> đúng thì <nhóm câu lệnh 1> sẽ thực hiện. Ngược lại <điều kiện sai> thì <nhóm câu lệnh 2> sẽ thực hiện. Dạng 4: if <điều kiện 1> Then <Nhóm câu lệnh 1> Elseif <điều kiện 2> Then <Nhóm câu lệnh 2> Elseif <diều kiện 3> Then <Nhóm câu lệnh 3> …… Else <Câu lệnh cuối> End if Chú ý: Có thể kết hợp các dạng lồng vào nhau Ví dụ: Thiết kế Form thực hiện công việc sau Trang 2 Baøi giaûng Access 1 1. Nếu DTB>=8 Xep loại: Giỏi 2. Nếu 6.5<= DTB <8 : Kh 3. Nếu 5<= DTB <6.5 : Trung Bình 4. Cịn lại: Yếu Giải thuật: để viết giải thuật trên ta đặt tên cho các Control và chọn sự kiện tương ướng Private CmdTrungBinh_Click() Dim DTB As Single DTB= Val(TxtNhapDiem.Text) If (DTB>=8) Then TxtXeploai=“ Giỏi” Elseif (DTB>=6.5) Then TxtXeploai=“Kh” Elseif (DTB>=5) Then TxtXeploai=“Trung Bình” Else TxtXeploai=“Yếu” End if End sub Dùng các công cụ Control tạo giao diện cho form; đặt lại tên-> vào thuộc tính On Click của nút lệnh viết sự kiện cho nút lệnh đó. Thủ Tục Msgbox Và Hàm Msgbox: Thủ tục MsgBox: MsgBox “chuỗi thông báo”, “loại thông báo”, “ Tiêu đề” Ví dụ: MsgBox “ Trùng khóa chính”,16,”thông báo” Hàm MsgBox: MsgBox( “chuỗi thông báo”, “loại thông báo”, “ Tiêu đề”) Ví dụ: Private Sub Cmdclose_Click() If MsgBox("ban có muon thoat khong?", 36, "Thoat") = 6 Then DoCmd.Close End If End Sub Chức Năng Di Chuyển Mẫu Tin Navigation Di chuyễn MT: Nằm trong thư viện Docmd Về đầu: Docmd.GoToRecord , , acFirst Về cuối: Docmd.GoToRecord , , acLast về sau: Docmd.GoToRecord , ,acNext Về trước: Docmd.GoToRecord , , acPrevious Khi đang ở MT đầu và cuối; ta thao tác di Ví d : ng d ngụ ứ ụ Trang 3 Baøi giaûng Access 1 chuyển sẽ xảy ra lỗi, chú ý xử lý lỗi này Thêm mới MT: Me.AllowAddition = True Docmd.GoToRecord , , acNewRec Vào sự kiện On Click của các nút lệnh và viết Code như sau Private Sub Cmddau_Click() DoCmd.GoToRecord , , acFirst End Sub Private Sub Cmdtruoc_Click() On Error GoTo loi ‘Xủ lý lỗi về trước DoCmd.GoToRecord , , acPrevious Exit Sub loi: MsgBox "Dang o mau tin dau ", 16, "chú ý" End Sub Private Sub CmdCuoi_Click() DoCmd.GoToRecord , , acLast End Sub Private Sub CmdSau_Click() On Error GoTo loi ‘Xủ lý lỗi nút sau DoCmd.GoToRecord , , acNext Exit Sub loi: MsgBox "Dang o mau tin cuoi?",16, "Chu ý" End Sub Thao Tác Trên Điều Khiển – Text Box, List Box, Combo Box, Label,… Lưu mẫu tin: Docmd.RunCommand acCmdSaveRecord Xóa mẫu tin: DoCmd.SetWarnings False ‘tắt cảnh báo DoCmd.RunCommand acCmdDeleteRecord DoCmd.SetWarnings True ‘bật cảnh báo Phục hồi (không lưu) If Me. Dirty=True Then Me.Undo ( Dirty: kiểm tra mẫu tin có rỗng hay không ) Sáng/ Mờ các điều khiển: Tên điều khiển.Enabled=True (Sáng) Tên điều khiển.Enabled=False (Mờ) Ví dụ: Me.Them.Enabled=False Hiện/ Ẩn điều khiển: Tên điều khiển.Visible = True ( hiện) Tn điều khiển.Visible = False (Ẩn ) Ví dụ: Me.Makh.Visible = False Di chuyển con nháy ( Focus) Tên điều khiển.SetFocus Ví dụ: Me.Makh.SetFocus Trang 4 Baøi giaûng Access 1 Private Sub Form_Open(Cancel As Integer) Me.GHI.Enabled = False Me.KHONG.Enabled = False End Sub Private Sub THEM_Click() Me.AllowAdditions = True DoCmd.GoToRecord , , acNewRec Me.MASV.SetFocus Me.THEM.Enabled = False Me.XOA.Enabled = False Me.SUA.Enabled = False Me.THOAT.Enabled = False Me.GHI.Enabled = True Me.KHONG.Enabled = True End Sub Private Sub GHI_Click() If DCount("*", "dmsv", "masv=forms!f7! masv") > 0 Then MsgBox "trung khoa chinh ", 16, "trung khoa chinh " Me.MASV.SetFocus Exit Sub Else DoCmd.RunCommand acCmdSaveRecord End if Me.MASV.SetFocus Me.GHI.Enabled = False Me.KHONG.Enabled = False Me.THEM.Enabled = True Me.THOAT.Enabled = True Me.SUA.Enabled = True Me.XOA.Enabled = True End Sub Private Sub KHONG_Click() DoCmd.GoToRecord , , acLast Me.MASV.SetFocus Me.KHONG.Enabled = False Me.GHI.Enabled = False Me.THEM.Enabled = True Me.SUA.Enabled = True Me.XOA.Enabled = True Me.THOAT.Enabled = True End Sub Private Sub thoat_Click() If MsgBox("BAN CHAC THOAT?", 36, "XOA") = 6 Then DoCmd.Close End If End Sub Private Sub XOA_Click() If DCount("*", "ketqua", "masv=forms!f7!masv") > 0 Then MsgBox "khong the xoa vi co chi tiet", 16, "chu y" Else If MsgBox("ban chac xoa", 36, "xoa") = 6 Then DoCmd.SetWarnings False DoCmd.RunCommand acCmdDeleteRecord DoCmd.GoToRecord , , acLast DoCmd.SetWarnings True End If End If End Sub Text Box Tên khoa: =Dlookup(“tenkhoa”,”khoa”, “makhoa=forms!Tenform!makh”) Nút Sửa: Sử dụng chúc năng Locked = True/False để cho phép người dùng nhập liệu vào Trang 5 Baøi giaûng Access 1 Các Hàm Cơ Sở Dữ Liệu Trong Access Dlookup: Tìm 1 trường Table theo ĐK = DLooKup(“Tên trường”, “Tên Table”, “điều kiện”) Ví dụ: =Dlookup(“Tenkh”, “DMKH”, “Makh=‘“&makh &” ’ ”) ‘Cho ra tên khoa theo makh được chọn Dcount: Đếm tổng số mẫu tin theo điều kiện =Dcount(“tên trường”, “Tên Table”, “điều kiện”) Ví dụ: =Dcount(“Masv”, “Dmsv”, “Makh=‘” &Me. makh &” ’ ”) ‘Đếm số sinh viên theo makh chọn Hoặc có thể: =Dcount(“Masv”, “Dmsv”, “Makh=Forms!FA4!makh”) Dsum: Tính tổng theo điều kiện =Dsum(“Tên trường”, ”Tên Table”, “Điều kiện) Ví dụ: Dsum(“Hocbong”, “DMSV”, “makh=‘” &makh &” ’ ”) ‘Tổng học bổng theo từng khoa Ngoài ra còn có các hàm áp dụng như = DAvg( ) = DMax( ) = DMin( ) Trang 6 Baøi giaûng Access 1 Kiểm Tra Trong Form Trước khi thoát có hỏi người dùng If MsgBox(“ Bạn chắc thóa không?”,36, “Thoát”)=6 Then Docmd.Close End if Chú ý: Nếu form không có nút thóat thì ta lập trình trên sự kiện UnLoad của form Private Sub Form_Unload(Cancel As Integer) Docmd.SetWarnings False If MsgBox(“ bạn chắc thóat?”,36,”thóat”)=7 Then Cancel= True End if Docmd.SetWarning True End Sub Trùng khóa chính If Dcount(“*”, “Table chứa khóa chính”, “DK”)>0 then MsgBox “ Trùng khóa chính”, 16, “trùrng khóa” Me.khóa chính.SetFocus Exit sub End if Docmd.RunCommand acCmdSaveRecord If Dcount(“*”, “DMSV”, “Masv=forms! FA7!Masv”)>0 Then MsgBox “Trùng khóa chính”, 16, “Trùng khóa” Me.Masv.SetFocus Exit sub End if Docmd.Runcommand acCmdSaveRecord Một số hàm xử lý lỗi và mã lỗi IsNull Kiểm tra rỗng IsNull(Mamh) – Mamh rỗng Not IsNull Kiểm tra không rỗng Not IsNull(Mamh) –Mamh không rỗng And Toán tử và Hocbong>=0 And hocbong<=1000000 Or Toán tử Hoặc Mã lỗi thực hiện trong sự kiện của nút lệnh – bằng On Error Goto Nhãn 3022 Trùng khóa chính - Err.Number = 3022 3058 Khóa chính rỗng - Err.Number = 3058 3317 Tồn tại một trường rỗng 3201 Khóa chính chưa tồn tại (khi thêm bên khóa ngoại kiểm tra trong khóa chính) Khóa chính Rỗng Học bổng từ 0 đến 1,000,000 If IsNull( Tên Khóa chính) Then MsgBox “Khóa chính rỗng”,16, “rỗng” Me.khố chính.SetFocus Exit sub End if Docmd.RunCommand ac CmdSaveRecord Ví dụ: If IsNull(Masv) Then MsgBox “ Khóa chính rỗng”, 16, “rỗng” If Hocbong<0 or Hocbong>1000000 Then Msgbox “ Học bổng từ 0 đến 1tr”,16,”rỗng” Me.Hocbong.SetFocus Exit sub End if Kiểm tra kiểu dữ liệu: Private sub Form_Error( DataErr As Integer, Response As Integer) Response=0 Trang 7 Baøi giaûng Access 1 Me.Masv.SetFocus Exit sub End if Docmd.Runcommand ac CmdSaveRecord If DataErr=2113 Then MsgBox “Học bổng phải l kiểu số”,16,”chú ý” End if End Sub Thiết kế ListBox  Chọn List box -> vẽ ra mặt bằng form  Vào thuộc tính của List box Name: Tên của List Box Row Source Type: Table/Query (Kiểu của list box) Row Source: (…) chọn dữ liệu cho List box Column Count: số cột hiển thị trong list Column Head: Yes/No (tiêu đề) Column Width: độ rộng tương ứng của cột, cột nào không hiển thị cho độ rộng =0 Bound Column: vị trí cột liên kết (1) ListCount: Đếm tổng dòng trong List TênList.ListCount – 1(khi có tiêu đề) Ví dụ: Tổng khoa=Listkh.ListCount – 1 Truyền tham số cho TextBox TênList.Column(vị trí cột) ->cột đầu =0 Ví dụ: List4.Column(1) -hiển thị thông tin của cột thứ 2 trong List Đồng bộ dữ liệu List Box với Form B1: Event/ OnClick của ListBox Me.khóa chính.SetFocus Docmd.FindRecord Me.TênListbox.Value  Ví dụ:  Me.Masv.SetFocus  Docmd.FindRecord Me. List4.Value B2: Event/ On Current của Form Me.ListBox=Me.khóa chính Ví dụ: Me.List4=Me.Masv Trang 8 Baøi giaûng Access 1 B1: Thiết kế Form như mẫu –dữ liệu lấy từ SINHVIEN B2: Tạo List Box –vào thuộc tính (F4) - Name: ListSV - Row Sounce type: Table/Query - Row Sounce: nhấp vào (…)-vào giống như Query –lấy dữ liệu cho List Box - Đóng lại và chọn Yes - Column Count: 4 - Column widths: 1’ - Bound column: 1 - Column Heads: Yes B3: Makhoa –combo box -Tạo giống như List Box nhưng cho độ rộng cột thứ 2 bằng 0 B4: Tên khoa C1:Dlookup(“Tenkhoa”,”khoa”,”makhoa=’ ” & makh & “’”) C2: Makh.column(1) B5: Tạo một Option Group bên trong là 2 Togle bottom -Option value: -1 (bên Nam) -Option value: 0 (bên nữ) - Control sounce: Phai (Fram) Trang 9 Baøi giaûng Access 1 Khi nhấn vào một mẫu tin trên List Box thì trên Form chạy đến mẫu tin đó Do đó chúng ta phải đồng bộ dữ liệu cho Form và List bằng cách làm 2 việc Private Sub Form_Current() Me.ListSV = Me.MASV End Sub Private Sub Listsv_Click() Me.MASV.SetFocus If Not IsNull(MASV) Then DoCmd.FindRecord Me.ListSV.Value End If Me.ListSV.Requery ‘cập nhật lại List End Sub Combo Box Dùng Winzard thiết kế  Kiểm tra lại thuộc tính của Combo box Name:Cbkhoa(đặt tên) Control Source: Trường liên kết Row Source Type: Table/Query Column Count: số cột hiển thị (2) Column Width: độ rộng cột(để ẩn đi một cột ta cho độ rộng của cột đó= 0)  Truyền tham số cho TextBox (để hiển thị dữ liệu trong combo ra ngoài) = Tên Combo box.Column(cột) Vidu: =Cbkhoa.column(1) ->hiển thị tên khoa trong combo box 1) Click Phải/ Chang To/ Combo Box 2) Thiết lập lại thuộc tính:  Row Source Type:  Row Source  Column Count  Column Width III) Kiểm tra gi trị tồn tại trong Combo Box Trang 10 [...]...Baøi giaûng Access 1 • • Thuộc tính: Data/ Limit To List : Yes Event: On Not In List Response=0 MsgBox “ Gi trị nay khong ton tai”,16,”loi” 1) Ví dụ 1:  FA8(Combo Box Makh)  Change To/ Combo Box  Thuộc tính: All... Liệt kê tên hiển thị của trang Ch ý: Trang đầu tin của Tab tính là một 3) Thiết lập nguồn dữ liệu từng trang của Tab Có thể nguồn dữ liệu từ Form Có thể l một ListBox Có thể l Sub Trang 11 Baøi giaûng Access 1 Đồng bộ dữ liệu giữa các trang của TabControl:  Nhấp đôi lên Tab Other/ Name: Tabsv(đặt tên cho Tab) Event: On Change If TenTab=0(List ở trang đầu) Then Me.ListBox= Me.Khố chính Else Me.Khóa... Name: Tong (đặt tên) Control Source: =Sum(diem) =sum(iif(phai=-1,1,0)) =Count(*) Bước 4: Truyền Tổng số điểm:=SubFb1.Form!tong 1) Kiểm tra khóa chính, kiểu dữ liệu Khóa chính trùng Trang 12 Baøi giaûng Access 1 Khóa chính rỗng Lập trình trên sự kiện: On Error của Sub Form Response=0 If DataErr=3022 Then MsgBox “Trùng khố chính”,16,”trùng” Elseif DataErr=3101 Then MsgBox “Khóa chính rỗng”,16,”chú ý” Kiểu... dụng một TextBox( Detail) Name: LK Control Source: iif(TenTab=0, List,khóa chính)  Hiệu chỉnh lại thông số Sub Link Child Field: như củ Link Master Field: LK ví dụ: FC2 Name: Makh Trang 13 Baøi giaûng Access 1 Row Source: DMKH Column Count: 2 Column Width: 0;1 On Click: Me.List4.Requery 3) ListBox: Row Source: Column Width: 0;1 Column Count: 2 Sub: Trong Sub phải có chứa trường liên kết với List đó... Report”, acViewPriview  Ví dụ: Form FA12( danh sách sinh viên theo khoa) 2) In Report với điều liện lọc dữ liệu  Docmd.OpenReport “Tn Report”,,acViewPriview,, “điều kiện lọc”  Ví dụ: Trang 14 Baøi giaûng Access 1  Docmd.OpenReport “B2”,acViewPriview,,”MAsv=Forms!FA12! Masv” Trang 15 . Bài Giảng Access NC Trung Tâm Tin Học Kỷ Nguyên Phần ứng dụng Visual Basic vào Access Thiết Kế FORM: Khi thiết kế Form chúng ta nên sử. Locked = True/False để cho phép người dùng nhập liệu vào Trang 5 Baøi giaûng Access 1 Các Hàm Cơ Sở Dữ Liệu Trong Access Dlookup: Tìm 1 trường Table theo ĐK = DLooKup(“Tên trường”, “Tên Table”,. Xảy ra sau khi mẩu tin trên Form được cập nhật vào Trang 1 Lưu Hành Nội Bộ -2009 Baøi giaûng Access 1 On Got Focus: Khi Control nhận con trỏ On Exit: Khi con trỏ bắt đầu rời khỏi Control

Ngày đăng: 01/07/2014, 21:20

Từ khóa liên quan

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

Tài liệu liên quan