Top doanh nghiệp đã đăng ký cho nhân viên

Bạn sẽ học được gì?

Ứng dụng VBA vào một số công việc cụ thể trong quản lý nhân sự, kế toán, tài chính, quản lý dự án...
Ứng dụng các chức năng nâng cao của Mảng trong VBA
Ứng dụng các chức năng nâng cao của Function trong VBA
Học cách thiết lập và truy vấn với câu lệnh SQL ngay trên Excel
Mở rộng ra vô vàn kiến thức Excel nâng cao khác với Dictionary VBA

Khoá học này sẽ có:

Video

11h 45m giờ học

Article

0 bài viết chuyên môn

Material

7 tài liệu đính kèm

Exam questions

4 đề thi ghi nhớ kiến thức

Nội dung khoá học

5 Chương . 111 bài giảng . 11h 45m giờ học

Mở rộng tất cả các phần

Mô tả khoá học

Trong khóa VBAG01khóa học lập trình VBA, các bạn đã được làm quen với các kiến thức cơ bản của VBA như Code, Module và ứng dụng vào các công việc tự động hóa quy trình trên Excel hằng ngày. 

Trong khóa VBAG02 này, Gitiho sẽ giới thiệu tới các bạn lập trình vba trong Excel - phần nâng cao như kiến thức về Mảng, cách sử dụng truy vấn SQL hay cách sử dụng nhiều công cụ nâng cao khác trong thư viện của Microsoft. 

Với các kỹ năng này, bạn sẽ trở thành những Chuyên gia Excel thực thụ, với kỹ năng lập trình, tự động hóa và xử lý mọi công việc trên Excel. Cùng tìm hiểu ngay khóa học VBAG02 - Ứng dụng Mảng, SQL và các Công cụ Nâng cao khác trong Excel và VBA nhé.

Tại sao bạn nên chọn khóa học tại Gitiho?

Khóa học VBAG02 bao gồm 5 Chương, 111 bài giảng, 1h 45m giờ giúp bạn hoàn thiện kỹ năng sử dụng SQL VBA Excel nâng cao để gia tăng hiệu suất công việc và tiết kiệm thời gian. 

Nội dung khóa học được thiết kế gần với thực tiễn, bám sát vào yêu cầu thực tế tại doanh nghiệp, giúp bạn nhanh chóng áp dụng các kiến thức học được và công việc hàng ngày hiệu quả. 

Chương trình học được cập nhật thường xuyên để đảm bảo kiến thức bạn học luôn phản ánh xu hướng mới nhất trong lĩnh vực.

Giảng viên của Gitiho có nhiều năm kinh nghiệm làm việc và dạy học Excel, VBA thực tiễn, luôn sẵn sàng giải đáp mọi thắc mắc của học viên trong giờ hành chính.

Ngoài tài liệu học tập đa dạng, video hướng dẫn chi tiết, thì ở Gitiho, bạn có thể nhanh chóng sở hữu kỹ năng sử dụng mảng, SQL và Excel VBA nâng cao nhờ phương pháp học luyện tập có chủ đích. Đây là phương pháp được nhiều người thành công như Elon Musk hay Ronaldo sử dụng để học bất kỳ điều gì.

Học xong, bạn sẽ được cấp chứng chỉ hoàn thành khóa học, giúp bạn có thể khẳng định và công nhận về những cố gắng của mình trước lãnh đạo hay nhà tuyển dụng.

Mục tiêu khi tham gia khóa học?

Sau khi hoàn thành khóa học VBAG02, bạn có thể tự tin:

Biết cách tích hợp và sử dụng SQL trong Excel để truy vấn và xử lý dữ liệu hiệu quả, và tự động hóa quy trình làm việc hàng ngày.

Ứng dụng các kỹ thuật xử lý mảng trong Excel, VBA để tối ưu quá trình xử lý dữ liệu, tăng tốc các phép toán phức tạp.

Kết hợp mảng và các hàm tùy chỉnh để tạo Function cho SQL trên Excel giúp thực hiện các tác vụ truy vấn và phân tích dữ liệu mạnh mẽ hơn.

Khám phá và ứng dụng các kỹ thuật nâng cao bằng cách sử dụng Dictionary trong VBA, giúp quản lý và thao tác dữ liệu hiệu quả hơn.

Nâng cao kỹ năng sử dụng SQL trong các tình huống thực tế, viết và tối ưu hóa các truy vấn SQL để phân tích và xử lý dữ liệu lớn hiệu quả.

Ai có thể tham gia khóa học?

Khóa học này dành cho những ai hay phải làm việc với Excel và VBA, muốn nâng cao kỹ năng xử lý và phân tích dữ liệu phức tạp, hay tự động hóa quy trình làm việc với các công cụ nâng cao.

Khóa học phù hợp với người làm việc liên quan đến số liệu như phân tích dữ liệu, kế toán, tài chính, marketing, sale,...

Ngoài ra, nếu như bạn cũng có thể tham gia khóa học nếu muốn nâng cao kỹ năng dùng Excel VBA nâng cao để có thêm cơ hội trong công việc và thăng tiến trong sự nghiệp.

Đăng ký ngay khóa học VBAG02 - Ứng dụng Mảng, SQL và các Công cụ Nâng cao khác trong Excel và VBA để phát triển kỹ năng sử dụng mảng, SQL trong Excel VBA  giúp bạn xử lý và phân tích dữ liệu mượt mà hơn.

Gitiho luôn cam kết hiệu quả với học viên, khóa học online thực hành, áp dụng ngay vào để nâng cao năng suất làm việc. Gitiho cam kết hoàn tiền trong 365 ngày nếu khóa học không hiệu quả.

Đánh giá của học viên

5/5

3 Đánh giá và nhận xét

  • 100 %

  • 0 %

  • 0 %

  • 0 %

  • 0 %

Nguyen thi huyen trang

Nguyen thi huyen trang

09:41 12/11/2021

Khóa học hay và bổ ích, giúp cho công việc của mình rất nhiều ạ. Phần array giúp mình có thể làm việc được với dữ liệu và các điều kiện trong nhiều cột. Có thể thay thế một số công thức advanced filter hay sumifs với các điều kiện về thời gian!, nhóm hàng khi sử dụng dictionary
Duc Anh Nguyen

Duc Anh Nguyen

04:39 25/08/2021

Khóa học rất hữu ích.
IT_9

IT_9

12:46 06/08/2021

Khoá học rất hay và ý nghĩa, phục vụ nhiều những vấn đề mở rộng của VBA, Excel để xử lý các bài toán thực tế. Giảng viên Thầy Tuấn Ba rất nhiệt tình và hỗ trợ học viên. Mình xin gửi lời cảm ơn tới khoá học, giảng viên của Gitiho đặc biệt là Thầy Tuấn Ba. Trân trọng!

Giảng viên:

G-LEARNING Giảng viên

Trường đào tạo & phát triển kỹ năng ứng dụng tin học văn phòng

G-LEARNING
  • 4.8 điểm đánh giá

  • 973 đánh giá

  • 343,307 học viên

  • 101 khóa học

Học viên cũng mua

EXG02 - Thủ thuật Excel cập nhật hàng tuần cho dân văn phòng
107 bài giảng
4.8
76,345
199,000 đ
499,000 đ
EXG02 - Thủ thuật Excel cập nhật hàng tuần cho dân văn phòng
EXG01: Tuyệt đỉnh Excel | Khóa học Excel online từ cơ bản đến nâng cao
207 bài giảng
4.86
45,664
499,000 đ
799,000 đ
EXG01: Tuyệt đỉnh Excel | Khóa học Excel online từ cơ bản đến nâng cao

Hỏi đáp khóa học

0 thảo luận

Thảo luận về bài học

834 thảo luận

Nguyễn Minh Hào

Nguyễn Minh Hào

https://drive.google.com/file/d/1BxwIT5wOI49PVAlyQqF39bqYMCfKsrV7/view

file access này khoá thì không lấy dc dữ liệu còn mở thì lấy được mong thầy giúp đỡ ạ

Tuấn Ba

Tuấn Ba [Chuyên gia]

Bạn có để pass vẫn lấy được dữ liệu đó, bạn xem lại đường dẫn của bạn có dấu tiếng việt không nhé.

 

{"id":83343,"crm_contact_id":45623,"name":"Nguy\u1ec5n Minh H\u00e0o","email":"minhao1404@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":"2020-02-18 15:45:27","confirmation_code":"bd742f90b75dd339347726ba60be03f1","confirmed":1,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2020-02-13T16:16:02.000000Z","updated_at":"2024-09-20T23:01:12.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"","avatar_path":"","gender":0,"birthday":null,"position":null,"achievement":null,"full_name":"Nguy\u1ec5n Minh H\u00e0o","address":"31 Tr\u1ea7n Ph\u00fa, Th\u1ecb Tr\u1ea5n B\u1ed3ng S\u01a1n, Huy\u1ec7n Ho\u00e0i Nh\u01a1n ,T\u1ec9nh B\u00ecnh \u0110\u1ecbnh","status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":"0584455622","become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":99369,"google_id":"111828541898166780926","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"done","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":23,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/images\/avatar\/folder_83\/nguyen-hao.png","link_profile":"https:\/\/gitiho.com\/u\/83343-nguyen-minh-hao","vip_account":null,"roles":[]}

Nguyễn Minh Hào

Thầy check file e gửi chưa ạ. Chứ vẫn dc dẫn đó vẫn file đó khi e bỏ mk vào thì lấy k dc nện nhờ thầy check file e đính kèm bên trên với ạ

Nguyễn Minh Hào

Nguyễn Minh Hào

0983470546

Trợ Giảng Gitiho

Trợ Giảng Gitiho

Dạ vâng không biết Gitiho có thể giúp đỡ gì cho Anh/Chị ạ?

{"id":83343,"crm_contact_id":45623,"name":"Nguy\u1ec5n Minh H\u00e0o","email":"minhao1404@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":"2020-02-18 15:45:27","confirmation_code":"bd742f90b75dd339347726ba60be03f1","confirmed":1,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2020-02-13T16:16:02.000000Z","updated_at":"2024-09-20T23:01:12.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"","avatar_path":"","gender":0,"birthday":null,"position":null,"achievement":null,"full_name":"Nguy\u1ec5n Minh H\u00e0o","address":"31 Tr\u1ea7n Ph\u00fa, Th\u1ecb Tr\u1ea5n B\u1ed3ng S\u01a1n, Huy\u1ec7n Ho\u00e0i Nh\u01a1n ,T\u1ec9nh B\u00ecnh \u0110\u1ecbnh","status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":"0584455622","become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":99369,"google_id":"111828541898166780926","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"done","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":23,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/images\/avatar\/folder_83\/nguyen-hao.png","link_profile":"https:\/\/gitiho.com\/u\/83343-nguyen-minh-hao","vip_account":null,"roles":[]}

Nguyễn Minh Hào

 cần thầy hỗ trợ trực tiếp chứ code thầy hướng dẫn không thực hiện được ạ

{"id":340417,"crm_contact_id":null,"name":"Tr\u1ee3 Gi\u1ea3ng Gitiho","email":"namnn.gitiho@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":null,"confirmation_code":"624b981d8e74794f030f85b7fea07011","confirmed":0,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2023-07-03T06:37:27.000000Z","updated_at":"2024-09-20T22:32:49.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"public","avatar_path":"users\/1688439444.png","gender":2,"birthday":null,"position":null,"achievement":null,"full_name":null,"address":null,"status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":null,"become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":0,"google_id":"102549768268220581564","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"pending","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":98,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/caches\/ua_small\/users\/1688439444.png","link_profile":"https:\/\/gitiho.com\/u\/340417-tro-giang-gitiho","vip_account":null,"roles":[{"id":26,"biz_business_id":0,"name":"Tr\u1ee3 gi\u1ea3ng","display_name":"Tr\u1ee3 gi\u1ea3ng","guard_name":"web","created_at":"2022-11-30T09:06:55.000000Z","updated_at":"2022-11-30T09:06:55.000000Z","is_default":0,"pivot":{"model_id":340417,"role_id":26,"model_type":"App\\Models\\User"}}]}

Trợ Giảng Gitiho

Dạ vâng không biết là code về nội dung nào ạ? Anh/Chị có thể gửi file của Anh/Chị để Gitiho kiểm tra và hỗ trợ ạ.

Nguyễn Minh Hào

Nguyễn Minh Hào

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))
GetName = LCase(GetName)
   If (GetName = "xls" Or GetName = "xlsx" Or GetName = "xlsm" Or GetName = "xlsb") Then
       kq = "EXCEL"
   ElseIf (GetName = "mdb" Or GetName = "accdb") Then
       kq = "ACCESS"
   Else
       kq = "SQLSEVER"
   End If
   CheckPart = kq
End Function

 

 nhờ thầy xem dùM. EM THÊM MẬT KHẨU VÀO THÌ K LẤY DƯỢC DỮ LIỆU CÒN BỎ MẬT KHẨU LẠI LẤY DƯỢC DỮ LIỆU. THẦY CÓ THỂ LÀM VI DEO HƯỚNG DẪN GIÚP EM ẠOption Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))
GetName = LCase(GetName)
   If (GetName = "xls" Or GetName = "xlsx" Or GetName = "xlsm" Or GetName = "xlsb") Then
       kq = "EXCEL"
   ElseIf (GetName = "mdb" Or GetName = "accdb") Then
       kq = "ACCESS"
   Else
       kq = "SQLSEVER"
   End If
   CheckPart = kq
End Function

 

 nhờ thầy xem dùM. EM THÊM MẬT KHẨU VÀO THÌ K LẤY DƯỢC DỮ LIỆU CÒN BỎ MẬT KHẨU LẠI LẤY DƯỢC DỮ LIỆU. THẦY CÓ THỂ LÀM VI DEO HƯỚNG DẪN GIÚP EM Ạ

Tuấn Ba

Tuấn Ba [Chuyên gia]

Bạn lấy nguyên code này và thử 

Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = “”)

gọi hàm arr = QuerySQL("select * from abc",duongdan, true, “abc”)

{"id":83343,"crm_contact_id":45623,"name":"Nguy\u1ec5n Minh H\u00e0o","email":"minhao1404@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":"2020-02-18 15:45:27","confirmation_code":"bd742f90b75dd339347726ba60be03f1","confirmed":1,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2020-02-13T16:16:02.000000Z","updated_at":"2024-09-20T23:01:12.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"","avatar_path":"","gender":0,"birthday":null,"position":null,"achievement":null,"full_name":"Nguy\u1ec5n Minh H\u00e0o","address":"31 Tr\u1ea7n Ph\u00fa, Th\u1ecb Tr\u1ea5n B\u1ed3ng S\u01a1n, Huy\u1ec7n Ho\u00e0i Nh\u01a1n ,T\u1ec9nh B\u00ecnh \u0110\u1ecbnh","status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":"0584455622","become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":99369,"google_id":"111828541898166780926","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"done","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":23,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/images\/avatar\/folder_83\/nguyen-hao.png","link_profile":"https:\/\/gitiho.com\/u\/83343-nguyen-minh-hao","vip_account":null,"roles":[]}

Nguyễn Minh Hào

E VẪN KHÔNG KẾT NỐI ĐƯỢC KHI FILE ACCESS BỊ KHOÁ Ạ. THẦY CÓ THỂ HỖ TRỢ UTRAVIEW GIÚP E ĐƯỢC KHÔNG Ạ

 

{"id":83343,"crm_contact_id":45623,"name":"Nguy\u1ec5n Minh H\u00e0o","email":"minhao1404@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":"2020-02-18 15:45:27","confirmation_code":"bd742f90b75dd339347726ba60be03f1","confirmed":1,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2020-02-13T16:16:02.000000Z","updated_at":"2024-09-20T23:01:12.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"","avatar_path":"","gender":0,"birthday":null,"position":null,"achievement":null,"full_name":"Nguy\u1ec5n Minh H\u00e0o","address":"31 Tr\u1ea7n Ph\u00fa, Th\u1ecb Tr\u1ea5n B\u1ed3ng S\u01a1n, Huy\u1ec7n Ho\u00e0i Nh\u01a1n ,T\u1ec9nh B\u00ecnh \u0110\u1ecbnh","status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":"0584455622","become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":99369,"google_id":"111828541898166780926","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"done","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":23,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/images\/avatar\/folder_83\/nguyen-hao.png","link_profile":"https:\/\/gitiho.com\/u\/83343-nguyen-minh-hao","vip_account":null,"roles":[]}

Nguyễn Minh Hào

0983470546 KHI NÀO THẦY RẢNH HỖ TRỢ GIÚP EM Ạ

Nguyễn Minh Hào

Nguyễn Minh Hào

Thầy hướng dẫn em code đặt mất khẩu cho file access và lấy dữ liệu từ file access đang khoá với ạ. em cảm ơn

Tuấn Ba

Tuấn Ba [Chuyên gia]

Sub RunSQLQuery()
  Dim SQLQuyery As String, dc As Long, kq As Variant
  dc = TEAMCDPS.Range("A" & TEAMCDPS.Rows.Count).End(xlUp).Row
  If dc >= 2 Then TEAMCDPS.Range("A2:ADO" & dc).ClearContents
  kq = QuerySQL("select * from data", "D:\desktop C\Phammemketoan\Proexcel\Bunoca\Bunoca.ACCDB", True, "LUONGGIAMINH")
  If IsArray(kq) Then
      TEAMCDPS.Range("A3").Resize(UBound(kq, 1), UBound(kq, 2) + 1) = kq
  Else
    TEAMCDPS.Range("A3").Value = kq
  End If
End Sub
bạn làm như sau

 

{"id":83343,"crm_contact_id":45623,"name":"Nguy\u1ec5n Minh H\u00e0o","email":"minhao1404@gmail.com","status":1,"refresh_login":0,"password_reset":1,"last_update_password":"2020-02-18 15:45:27","confirmation_code":"bd742f90b75dd339347726ba60be03f1","confirmed":1,"session_id":null,"enable_api":0,"access_key":null,"created_at":"2020-02-13T16:16:02.000000Z","updated_at":"2024-09-20T23:01:12.000000Z","deleted_at":null,"unit_name":null,"grade":0,"avatar_disk":"","avatar_path":"","gender":0,"birthday":null,"position":null,"achievement":null,"full_name":"Nguy\u1ec5n Minh H\u00e0o","address":"31 Tr\u1ea7n Ph\u00fa, Th\u1ecb Tr\u1ea5n B\u1ed3ng S\u01a1n, Huy\u1ec7n Ho\u00e0i Nh\u01a1n ,T\u1ec9nh B\u00ecnh \u0110\u1ecbnh","status_text":"","user_type":"","social_facebook":"","social_google":"","social_twitter":"","social_linkedin":"","cover_path":"","idvg_id":0,"facebook_id":0,"phone":"0584455622","become_teacher":0,"primary_wallet":0,"secondary_wallet":0,"wallet_type":"","wallet_payment":"","loyalty_point":99369,"google_id":"111828541898166780926","github_id":null,"twitter_id":null,"linkedin_id":null,"bitbucket_id":null,"access_token_onedrive":"","system_status":"done","account_seeding":0,"path_cv":null,"enable_unsubcribe":0,"clap":0,"view":23,"email_invalid":0,"type_email_invalid":null,"email_unsubcriber":0,"email_bounce":0,"email_compliant":0,"contract_business_name":null,"contract_number":null,"contract_date":null,"contract_delegate":null,"contract_address":null,"contract_account_number":null,"contract_bank":null,"source":null,"login_mobile":0,"gitiho_user":1,"avatar":"https:\/\/gitiho.com\/images\/avatar\/folder_83\/nguyen-hao.png","link_profile":"https:\/\/gitiho.com\/u\/83343-nguyen-minh-hao","vip_account":null,"roles":[]}

Nguyễn Minh Hào

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))

Option Explicit
Function QuerySQL(SQLQuery As String, spart As String, Optional Hr As Boolean = False, Optional Pasword As String = "123")
   Dim Cnn As Object, lrs As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean
   Set Cnn = CreateObject("ADODB.Connection")
   Set lrs = CreateObject("ADODB.Recordset")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
   On Error GoTo ThoatLrs
     lrs.Open SQLQuery, Cnn
     Dim arr As Variant
     arr = lrs.Getrows
     GoTo ThoatLrs
ThoatLrs:
     If IsArray(arr) Then
         Dim Row As Long, Col As Long, i As Long, j As Long, kq As Variant, rs As Integer
         If Hr = True Then
             rs = 1
         Else
             rs = 0
         End If
         Row = UBound(arr, 2) + rs
         Col = UBound(arr, 1)
         ReDim kq(Row + 1 + rs, Col + rs)
         For i = 0 To Row
             For j = 0 To Col
              If (i = 0 And Hr = True) Then
                 kq(0, j) = lrs.Fields(j).Name
              Else
                  kq(i, j) = arr(j, i - rs)
              End If
             Next j
         Next i
       QuerySQL = kq
       lrs.Close: Cnn.Close
       Erase arr: Erase kq
   Else
       QuerySQL = "Không có d" & ChrW(7919) & " li" & ChrW(7879) & "u"
   End If
 Else
       QuerySQL = "Không có k" & ChrW(7871) & "t n" & ChrW(7889) & "i"
 End If
End Function
Function QuerySQLExecute(SQLQuery As String, spart As String, Optional loi As Boolean = False, Optional Pasword As String = "123") As Boolean
   Dim Cnn As Object, cmd As Object, SQLQuyery As String, Path As String, Ketnoi As Boolean, Thongbao As String
   Set Cnn = CreateObject("ADODB.Connection")
   Set cmd = CreateObject("ADODB.Command")
   If (CheckPart(spart) = "EXCEL") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=0"";"
Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"";"
       End If
   ElseIf (CheckPart(spart) = "ACCESS") Then
       If Val(Application.Version) > 12 Then
           Cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       Else
           Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & spart & ";Persist Security Info=False; Jet OLEDB:Database Password=" & Pasword & ";"
       End If
   Else
           Cnn.ConnectionString = spart
   End If
   Ketnoi = False
   On Error GoTo ThoatKN
   Cnn.Open
   Ketnoi = True
   GoTo ThoatKN
ThoatKN:
   If (Ketnoi) Then
       On Error GoTo Err
           With cmd
               .ActiveConnection = Cnn
               .CommandText = SQLQuery
               .Execute
           End With
       Thongbao = "Th" & ChrW(7921) & "c hi" & ChrW(7879) & "n th" & ChrW(224) & "nh c" & ChrW(244) & "ng"
'        If Loi = True Then MsgBoxUni Thongbao, vbInformation, "Thông báo"
       QuerySQLExecute = True
       Exit Function
       GoTo Err
   End If
Err:
   If loi = True Then
       If (InStr(Err.Description, "The duplicate key value is")) Then
           Thongbao = "Trùng khoá chính"
           MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       ElseIf (Err.Description = "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.") Then
           Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
           MsgBox Thongbao
        ElseIf (Err.Description = "Number of query values and destination fields are not the same.") Then
              Thongbao = "S" & ChrW(7889) & " l" & ChrW(432) & ChrW(7907) & "ng tr" & ChrW(432) & ChrW(7901) & "ng truy v" & ChrW(7845) & "n v" & ChrW(224) & " tr" & ChrW(432) & ChrW(7901) & "ng " & ChrW(273) & ChrW(237) & "ch kh" & ChrW(244) & "ng b" & ChrW(7857) & "ng nhau"
               MsgBox Thongbao, vbExclamation, "Thông Báo Error"
        ElseIf (InStr(Err.Description, "The duplicate key value is")) Then
              Thongbao = "Tr" & ChrW(249) & "ng kho" & ChrW(225) & " ch" & ChrW(237) & "nh kh" & ChrW(244) & "ng th" & ChrW(7875) & " th" & ChrW(234) & "m"
              MsgBox Thongbao, vbExclamation, "Thông Báo Error"
       Else
           MsgBox Err.Description
       End If
   End If
   QuerySQLExecute = False
End Function
Function CheckPart(s As String) As String
   Dim kq As String, GetName As String
   GetName = Split(s, ".")(UBound(Split(s, ".")))
GetName = LCase(GetName)
   If (GetName = "xls" Or GetName = "xlsx" Or GetName = "xlsm" Or GetName = "xlsb") Then
       kq = "EXCEL"
   ElseIf (GetName = "mdb" Or GetName = "accdb") Then
       kq = "ACCESS"
   Else
       kq = "SQLSEVER"
   End If
   CheckPart = kq
End Function

 

 nhờ thầy xem dùM. EM THÊM MẬT KHẨU VÀO THÌ K LẤY DƯỢC DỮ LIỆU CÒN BỎ MẬT KHẨU LẠI LẤY DƯỢC DỮ LIỆU. THẦY CÓ THỂ LÀM VI DEO HƯỚNG DẪN GIÚP EM Ạ

nntien

nntien

Ad có thể làm video chia sẻ cách tạo form đăng nhập và phân quyền vào SQL sever ko?

Tuấn Ba

Tuấn Ba [Chuyên gia]

Phân quyền vba với trường hợp này hơi khó, cái này phải sử dụng cách tạo db trong sqlsever rồi mới sử lý được.

499,000đ
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông
/