cách này bạn tham khảo video học cách kết nối Excel đến SQL Server tự động
 
* Thêm thư viện vào file excel Microsoft ActiveX Data Objects 2.6 Library
Dim conSQL As New ADODB.Connection
    Dim record As New ADODB.Recordset
    
    ' bien de luu tru MAT KHAU ket SQL
    cnString = "PROVIDER=SQLOLEDB;Server=hongnhat2\SQLEXPRESS;DATABASE=PhanMemBanHang;UID=sa;PWD=123"
    
    On Error GoTo tbLoi
    conSQL.ConnectionString = cnString
    conSQL.Open
    MsgBox conSQL.State ' 1 kết nối thành công, 0 kết nối SQL thất bị 
  
tbLoi:
    MsgBox Err.Description
   
Câu hỏi: Code VBA phía trên đã sử dụng Try catch VBA , bạn hãy trả lời xem, nếu không có đoạn On Error GoTo tbLoi thì trong khi ứng dụng phần mềm thực tế sẽ bị trường hợp gì ?
* Ví dụ code vba kết nối sql server in ra 1 cột
    Dim rcs As New ADODB.Recordset
    Dim strCn As String
    strCn = "PROVIDER=SQLOLEDB;SERVER=HONGNHAT2\SQLEXPRESS;DATABASE=nhanvien;UID=sa;PWD=123"
    Dim cn As New ADODB.Connection
    cn.ConnectionString = strCn
    cn.CommandTimeout = 30
    cn.Mode = adModeReadWrite
    cn.Open
    
    Dim cmd As New ADODB.Command
    With cmd
        .ActiveConnection = cn
        .CommandType = adCmdText
        .CommandTimeout = 60
        .CommandText = "Select * From dbo.tbNhanVien"
     End With
     Dim prm As Object
     
    rcs.CursorType = adOpenKeyset
    rcs.LockType = adLockBatchOptimistic
    rcs.Open cmd
    
    
    Set rcs = cmd.Execute
    
    Dim pos_row As Integer
    pos_row = 1
    
    Do While (Not rcs Is Nothing)
        If rcs.State = adStateClosed Then Exit Do
        While Not rcs.EOF         
           Cells(pos_row, 1) = rcs!HoTen
            rcs.MoveNext
            pos_row = pos_row + 1
        Wend
        Set rcs = rcs.NextRecordset
    Loop
 
    Dim rcs As New ADODB.Recordset
    Dim strCn As String
    strCn = "PROVIDER=SQLOLEDB;SERVER=HONGNHAT2\SQLEXPRESS;DATABASE=nhanvien;UID=sa;PWD=123"
    Dim cn As New ADODB.Connection
    cn.ConnectionString = strCn
    cn.CommandTimeout = 30
    cn.Mode = adModeReadWrite
    cn.Open
    
    Dim cmd As New ADODB.Command
    With cmd
        .ActiveConnection = cn
        .CommandType = adCmdText
        .CommandTimeout = 60
        .CommandText = "Select * From dbo.tbNhanVien"
     End With
     Dim prm As Object
     
    rcs.CursorType = adOpenKeyset
    rcs.LockType = adLockBatchOptimistic
    rcs.Open cmd
    
    
    Set rcs = cmd.Execute
    
    Dim pos_row As Integer
    pos_row = 1 ' vi tri dong bat dau in
    pos_col = 1 ' vi tri cot bat dau in
    
    ' In tieu de
    For i = 0 To rcs.Fields.Count - 1
        Cells(pos_row, i + pos_col) = rcs(i).Name
    Next i
    
    pos_row = pos_row + 1
    
    Do While (Not rcs Is Nothing)
        If rcs.State = adStateClosed Then Exit Do
        While Not rcs.EOF
            For i = 0 To rcs.Fields.Count - 1
                 Cells(pos_row, i + pos_col) = rcs(i)
            Next i
            rcs.MoveNext
            pos_row = pos_row + 1
        Wend
        Set rcs = rcs.NextRecordset
    Loop
Mời bạn xem video về lập trình VBA kết nối từ Excel đến SQL Server
Điều tuyệt với giúp bạn thể hiện đẳng cấp khi biết cách lập trình kết nối Excel với SQL Server