- Chọn khối với phím tắt M. Hoặc tùy chỉnh Marquee
- Tô màu khối: Chọn màu trong color picker ( D) . Bấm tổ hợp phím Alt + Del . Chú ý chọn đúng layout phù hợp
- Chèn ảnh vào layout. File chọn Place. Tùy chỉnh kích thước ảnh
- Chèn text vào. Chọn T. Tùy chỉnh text trên
Lưu trữ danh mục: Uncategorized
Thực hiện Alt + F11 để vào code
Tạo module mới. Nhập code. Lưu và chạy macro
SubColorCompanyDuplicates()'Updateby Extendoffice 20160704DimxRg AsRangeDimxTxt AsStringDimxCell AsRangeDimxChar AsStringDimxCellPre AsRangeDimxCIndex AsLongDimxCol AsCollectionDimI AsLongOnErrorResumeNextIfActiveWindow.RangeSelection.Count > 1 ThenxTxt = ActiveWindow.RangeSelection.AddressLocalElsexTxt = ActiveSheet.UsedRange.AddressLocalEndIfSetxRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)IfxRg IsNothingThenExitSubxCIndex = 2SetxCol = NewCollectionForEachxCell InxRgOnErrorResumeNextxCol.Add xCell, xCell.TextIfErr.Number = 457 ThenxCIndex = xCIndex + 1SetxCellPre = xCol(xCell.Text)IfxCellPre.Interior.ColorIndex = xlNone ThenxCellPre.Interior.ColorIndex = xCIndexxCell.Interior.ColorIndex = xCellPre.Interior.ColorIndexElseIfErr.Number = 9 ThenMsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"ExitSubEndIfOnErrorGoTo0NextEndSub
Môn học tập trung vào tìm hiểu các kiến thức cơ bản về CSDL, thiết kế CSDL quan hệ và xây dựng truy vấn, tiến tới xây dựng một hệ CSDL quan hệ hoàn chỉnh. Một phần không nhỏ thời lượng của môn học được dành cho lý thuyết cơ sở của CSDL là đại số quan hệ và lý thuyết chuẩn hóa. Môn học còn giới thiệu một số thuật toán được dùng trong các hệ CSDL quan hệ để chuẩn hóa và kiểm tra tính đúng đắn của các dạng chuẩn.
Tài liệu Bài tập thực hành Buổi 1. :
Học phần gồm :
Chương 1: CÁC KHÁI NIỆM CƠ BẢN
Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT
Chương 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Chương 4: ĐẠI SỐ QUAN HỆ
Chương 5: RÀNG BUỘC TOÀN VẸN
Chương 6: PHỤ THUỘC HÀM
Chương 7: CHUẨN HÓA CƠ SỞ DỮ LIỆU
- Nội dung chi tiết học phần
Chương 1: CÁC KHÁI NIỆM CƠ BẢN
1.1. Định nghĩa CSDL
1.2. Đối tượng sử dụng CSDL
1.3. Hệ quản trị CSDL
1.4. Mô hình CSDL
Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT
2.1. Quá trình thiết kế CSDL
2.2. Mô hình thực thể – liên kết
2.2.1. Thực thể
2.2.2. Thuộc tính
2.2.3. Mối liên kết
2.2.4. Mô hình ER
2.3. Thiết kế CSDL
2.4. Mô hình thực thể liên kết mở rộng
2.4.1. Lớp cha, lớp con và sự thừa kế
2.4.2. Phân cấp “is a”
2.4.3. Chuyên biệt hóa
2.4.4. Tổng quát hóa
2.4.5. Sơ đồ mô hình EER
Chương 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
3.1. Giới thiệu mô hình quan hệ
3.2. Các khái niệm của mô hình quan hệ
3.2.1. Quan hệ
3.2.2. Lược đồ quan hệ – lược đồ CSDL
3.2.3. Miền giá trị
3.2.4. Liên kết
3.3. Các đặc trưng của quan hệ
3.4. Ràng buộc lược đồ quan hệ
3.4.1. Ràng buộc khóa
3.4.2. Ràng buộc tham chiếu
3.4.3. Ràng buộc miền giá trị
3.5. Chuyển đổi mô hình ER sang mô hình CSDL quan hệ
3.5.1. Các quy tắc chuyển đổi
3.5.2. Bài tập áp dụng
Chương 4: ĐẠI SỐ QUAN HỆ
4.1. Các phép toán đại số trên tập hợp
4.1.1. Phép hợp
4.1.2. Phép giao
4.1.3. Phép trừ
4.1.4. Tích Decac
4.1.5. Phép chia
4.1.6. Các tính chất của đại số quan hệ
4.2. Các phép toán đại số quan hệ
4.2.1. Phép chiếu
4.2.2. Phép chọn
4.2.3. Phép kết nối
4.3. Các phép toán gom nhóm trên quan hệ
Chương 5: RÀNG BUỘC TOÀN VẸN
5.1. Khái niệm cơ bản
5.2. Các đặc trưng của RBTV
5.2.1. Bối cảnh
5.2.2. Bảng tầm ảnh hưởng
5.2.3. Biểu diễn – Nội dung
5.3. Phân loại RBTV
5.3.1. Miền giá trị
5.3.2. Liên bộ
5.3.3. Liên thuộc tính
5.3.4. Giá trị thuộc tính theo thời gian
5.3.5. Tham chiếu
Chương 6: PHỤ THUỘC HÀM
6.1. Giới thiệu
6.2. Hệ tiên đề Amstrong
6.3. Bao đóng
6.3.1. Các khái niệm cơ bản
6.3.2. Thuật toán tìm bao đóng của tập thuộc tính
6.3.3. Bài toán thành viên
6.4. Tập phụ thuộc hàm tương đương
6.5. Phụ thuộc hàm dư thừa
6.6. Thuộc tính dư thừa
6.7. Khóa của quan hệ
6.7.1. Định nghĩa
6.7.2. Thuật toán tìm khóa
6.7.3. Thuật toán tìm khóa cải tiến
6.8. Tập PTH tối thiểu
Chương 7: CHUẨN HÓA CƠ SỞ DỮ LIỆU
7.1. Một số khái niệm cơ bản
7.2. Phép tách – kết nối không mất thông tin
7.3. Chuẩn hóa lược đồ quan hệ
7.3.1. Dạng chuẩn 1NF
7.3.2. Dạng chuẩn 2NF
7.3.3. Dạng chuẩn 3NF
7.3.4. Dạng chuẩn BCNF
7.4. Chuẩn hóa quan hệ
7.4.1. Phân rã thành các BCNF
7.4.2. Phân rã thành các 3NF
Microsoft Office trong Doanh Nghiệp.
Khóa học gồm các nội dung sau:
Noi dung chi tiet
Tiến độ giảng dạy
Slide bài giảng
3. TÀI LIỆU thực hành theo buổi học
Word: Tài liệu thực hành
Excel: Tài liệu thực hành
– Phần thi Thực Hành:
Chào mừng các bạn đến với khóa học
Microsoft Office Nâng Cao trong Doanh Nghiệp.
Noi dung chi tiet
Tiến độ giảng dạy
Slide bài giảng
3. TIỆN ÍCH hỗ trợ:
Thiết lập cài đặt onedrive trên máy. Tải bộ cài tại đây:
Thực hiện cài đặt outlook với tài khoản email: hocvienthuchanh@outlook.com hoăc hocvienthuchanh@gmail.com( thông số 995/587/TLS khi cài gmail) (pass giảng viên cung cấp)
Bộ gõ tiếng việt Unikey
4. TÀI LIỆU thực hành theo buổi học
Word: Tài liệu thực hành
Excel: Tài liệu thực hành
Trong 1 sheet excel dài, người dùng có thể thiết lập 1 mục lục cho sheet bảng tính bằng kỹ thuật đặt tên vùng dữ liệu.
Sub TachNhom()
Dim myCell As Range
Dim wks As Worksheet
Dim DataBaseWks As Worksheet
Dim ListRange As Range
Dim dummyRng As Range
Dim myDatabase As Range
Dim TempWks As Worksheet
Dim rsp As Integer
Dim i As Long
Const TopLeftCellOfDataBase As String = “A4”
Const KeyColumn As String = “C”
‘muon tach cot nao thi dien ten cot do
Set DataBaseWks = Worksheets(“DATA”)
i = DataBaseWks.Range(TopLeftCellOfDataBase).Row – 1
Set TempWks = Worksheets.Add
With DataBaseWks
Set dummyRng = .UsedRange
Set myDatabase = .Range(TopLeftCellOfDataBase, _
.Cells.SpecialCells(xlCellTypeLastCell))
End With
With DataBaseWks
Intersect(myDatabase, .Columns(KeyColumn)).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=TempWks.Range(“A1”), _
Unique:=True
TempWks.Range(“D1“).Value = _
.Cells(.Range(TopLeftCellOfDataBase).Row, KeyColumn).Value
End With
With TempWks
Set ListRange = .Range(“A2”, .Cells(.Rows.Count, “A”).End(xlUp))
End With
With ListRange
.Sort Key1:=.Cells(1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
For Each myCell In ListRange.Cells
If WksExists(myCell.Value) = False Then
Set wks = Sheets.Add
On Error Resume Next
wks.Name = myCell.Value
If Err.Number <> 0 Then
MsgBox “Please rename: ” & wks.Name
Err.Clear
End If
On Error GoTo 0
wks.Move After:=Sheets(Sheets.Count)
Else
Set wks = Worksheets(myCell.Value)
wks.Cells.Clear
End If
If rsp = 6 Then
DataBaseWks.Rows(“1:” & i).Copy Destination:=wks.Range(“A1”)
End If
TempWks.Range(“D2”).Value = “=” & Chr(34) & “=” & myCell.Value & Chr(34)
If rsp = 6 Then
myDatabase.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=TempWks.Range(“D1:D2”), _
CopyToRange:=wks.Range(“A1”).Offset(i, 0), _
Unique:=False
Else
myDatabase.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=TempWks.Range(“D1:D2”), _
CopyToRange:=wks.Range(“A1”), _
Unique:=False
Columns(“D:D”).ColumnWidth = 20
Columns(“F:F”).ColumnWidth = 20
Columns(“G:G”).ColumnWidth = 15
End If
Next myCell
Application.DisplayAlerts = False
TempWks.Delete
Application.DisplayAlerts = True
MsgBox “TÁCH THÀNH CÔNG”
End Sub
Function WksExists(wksName As String) As Boolean
On Error Resume Next
WksExists = CBool(Len(Worksheets(wksName).Name) > 0)
End Function
———————
code tách các sheet ra thành nhiều file tại 1 forder
Sub tachsheet()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
sh.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "" & sh.Name, 51' Có thể đổi lại vị trí lư tại chỗ ""
ActiveWorkbook.Close
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub Code tìm các file dữ liệu cần gộp
Sub GopfileTH()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:=”Microsoft Excel Files (*.xls*), *.xls*”, MultiSelect:=True, Title:=”Files to Merge”)
If TypeName(FilesToOpen) = “Boolean” Then
MsgBox “Khong co file nao duoc chon”
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Code gộp file vừa chọn
Sub Gopfile()
Dim FilesToOpen
Dim Filetonghopmoi As Workbook
Dim filedangmo As Workbook
Dim strFilename As String
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:=”Microsoft Excel Files (*.xls*), *.xls*”, MultiSelect:=True, Title:=”Files to Merge”)
If TypeName(FilesToOpen) = “Boolean” Then
MsgBox “Khong co file nao duoc chon”
GoTo ExitHandler
End If
‘=====
‘Tao file tong hop moi noi luu mac dinh ngoai desktop
Set Filetonghopmoi = Workbooks.Add(xlWBATWorksheet)
strFilename = Dir(“C:UsersAdministratorDesktop” & “*.xls”, vbNormal)
x = 1
While x <= UBound(FilesToOpen)
Set filedangmo = Workbooks.Open(Filename:=FilesToOpen(x))
Sheets(“PL”).Copy After:=Filetonghopmoi.Sheets(Filetonghopmoi.Sheets.Count)
‘Thay ten sheet can gop cho phu hop. o day dang gop tat ca cac sheet co ten “PL” o ca file da cho
Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
filedangmo.Close False
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
———
Code gộp sheet trong file
Option Explicit
‘ Tao chuc nang tim ra DONG cuoi cung
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:=”*”, After:=sh.Range(“A1”), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
On Error GoTo 0
End Function
‘ Tao chuc nang tim ra COT cuoi cung
Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:=”*”, After:=sh.Range(“A1”), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
On Error GoTo 0
End Function
‘ Tao lenh GOPSHEET
Sub gopsheet()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long
Dim shLast As Long
Dim CopyRng As Range
Dim StartRow As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
‘ XÓA bo sheet TONGHOP neu no da duoc thiet lap
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets(“TONGHOP”).Delete
On Error GoTo 0
Application.DisplayAlerts = True
‘ TAO 1 sheet moi ten TONGHOP
Set DestSh = ActiveWorkbook.Worksheets.Add
DestSh.Name = “TONGHOP”
‘Nhap dong bat dau
StartRow = 2
‘ Chay qua tat cac cac sheet va thuc hien copy du lieu vao sheet TONGHOP
For Each sh In ActiveWorkbook.Worksheets
If sh.Name <> DestSh.Name Then
‘ Tim don cuoi cung trong sheet tong hop va sheet thanh phan
Last = LastRow(DestSh)
shLast = LastRow(sh)
‘ Thuc hien copy du kieu khi sheet du lieu KHONG RONG va dong CUOI > dong BAT DAU
If shLast > 0 And shLast >= StartRow Then
‘ thiet lap VUNG can copy
Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
‘ Kiem tra xem sheet TONGHOP co du dong de copy sang khong
If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
MsgBox “Khong du dong trong bang TONGHOP de copy sang”
GoTo ExitTheSub
End If
‘ Copy du lieu o dang GIA TRI
CopyRng.Copy
With DestSh.Cells(Last + 1, “A”)
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With
End If
End If
Next
ExitTheSub:
Application.GoTo DestSh.Cells(1)
‘ Tu dong dieu chinh so cot theo sheet TONGHOP
DestSh.Columns.AutoFit
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
————-
Code xóa hết các sheet vừa thêm
‘————————-
Sub XoaSheetVuaThem()
‘
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> ActiveSheet.Name Then
sh.Delete
End If
Next sh
Application.DisplayAlerts = True
End Sub
Thiết lập cài Add-in với từng phiên bản office khác nhau 2003 và 2007
Sử dụng:
gõ hàm
=VND(giá trị số, loại font(1/2/3-mặc định3), “loại đơn vị tiền tệ”,”giá trị số lẻ”) để đổi tiếng việt
= USD để đổi tiếng anh
VD: A1=30,5
A2=VND(A1,,”USD”,”cent”) --> ba mươi USD năm mươi CENT
Ngoài ra có thể tham khảo code của chuyển đổi font khác ở bên dưới
Public Function VND(BaoNhieu)
If Val(BaoNhieu) = 0 Then
Ketqua = “Khoâng ñoàng”
Else
If Abs(BaoNhieu) > 1E+15 Then
Ketqua = “Soá quaù lôùn”
Else
If BaoNhieu < 0 Then Ketqua = “Tröø” & Space(1) Else Ketqua = Space(0)
SOTIEN = Format(Abs(BaoNhieu), “###############0.00”) ’18coät soá 2soá leû
SOTIEN = Right(Space(15) & SOTIEN, 1

Hang = Array(“None”, “traêm”, “möôi”, “gì ñoù”)
DONVI = Array(“None”, “ngaøn tyû”, “tyû”, “trieäu”, “ngaøn”, “ñoàng”, “xu”)
Dem = Array(“None”, “moât”, “hai”, “ba”, “boán”, “naêm”, “saùu”, “baûy”, “taùm”, “chín”)
For N = 1 To 6
Nhom = Mid(SOTIEN, N * 3 – 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case “000”
If N = 5 Then
Chu = “ñoàng” & Space(1)
Else
Chu = Space(0)
End If
Case “.00”, “,00”
Chu = “chaün”
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = DONVI(N)
For K = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, K, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(K) & Space(1)
Else
If K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N – 1) * 3 – 2, 3)) > 0 Then
Dich = “khoâng” & Space(1) & Hang(K) & Space(1)
End If
End If
Select Case K
Case 2 And S = 1
Dich = “möôøi” & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & “0”
Dich = Hang(K) & Space(1)
Case 3 And S = 5 And Val(S2) > 2
Dich = “l” & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> “0”
If N > 1 And Val(Mid(SOTIEN, (N – 1) * 3 – 2, 3)) > 0 Or (Val(S1) > 0) Then
Dich = “leû” & Space(1)
End If
End Select
Chu = Chu & Dich
Next K
End Select
ViTri = InStr(1, Chu, “möôi moät”)
If ViTri > 0 Then Mid(Chu, ViTri, 9) = “möôi moát”
Ketqua = Ketqua & Chu
End If
Next N
End If
End If
VND = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
End Function
VBA chưa hỗ trợ với bộ Unicode, Các ký tự hỗ trợ trong bảng mã Unicode mới chỉ được từ 0- 225 thôi. Nên các ký tự có mã unicode nhiều hơn sẽ hiển thị dấu (? )
Bởi vậy, để có thể gõ được tiếng việt trong VBA ta thực hiện theo 1 số cách thủ công như sau:
1. Gõ nội dung vào 1 ô trong bảng tính ( VD gõ vào ô A2) Thực hiện lệnh truy xuất nội dung của ô A2: Cells(1,2) = Sheets(“Sheet1”).cells(1,2). Nhược điểm là các ô trong sheet phải có dữ liệu. Nếu vô tình xóa đi thì dữ liệu cũng sẽ mất.
2: Sử dụng phép nối chuỗi và hàm Chrw để viết code. VD: Viết chữ Lập trình = “L”&chrw(7853)&”p trình”. Đối với cách này mình phải nhớ và biết được bảng mã unicode cuả từng ký tự. Có thể dựa vào Bảng mã để tham chiếu
3. Sử dụng 1 hàm tự tạo (UniVBa) để dịch lại nội dung gõ trong sheet ra bảng Unicode. Từ đó nhập bản dịch vào bảng lập trình ( quay trở lại cách 2).
Đoạn code dịch như sau:
Function UniVba(TxtUni As String) As String
If TxtUni = “” Then
UniVba = “”””””
Else
TxtUni = TxtUni & ” “
If AscW(Left(TxtUni, 1)) < 256 Then UniVba = “”””
For n = 1 To Len(TxtUni) – 1
uni1 = Mid(TxtUni, n, 1)
uni2 = AscW(Mid(TxtUni, n + 1, 1))
If AscW(uni1) > 255 And uni2 > 255 Then
UniVba = UniVba & “ChrW(” & AscW(uni1) & “) & “
ElseIf AscW(uni1) > 255 And uni2 < 256 Then
UniVba = UniVba & “ChrW(” & AscW(uni1) & “) & “””
ElseIf AscW(uni1) < 256 And uni2 > 255 Then
UniVba = UniVba & uni1 & “”” & “
Else
UniVba = UniVba & uni1
End If
Next
If Right(UniVba, 4) = ” & “”” Then
UniVba = Mid(UniVba, 1, Len(UniVba) – 4)
Else
UniVba = UniVba & “”””
End If
End If
End Function
