manman89

QUERY MS SQL SERVER WITH EXCEL VBA

Dec 2nd, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1.  
  2. 'BEFORE WE CAN START YOU'LL NEED TO ADD A REFERENCE TO YOUR VBA PROJECT
  3.  
  4. 'MICROSOFT ACTIVEX DATA OBJECTS X.X LIBRARY
  5.  
  6. Option Explicit
  7.  
  8. Private CN As ADODB.Connection
  9.  
  10. Function Connect(Server As String, Database As String) As Boolean
  11. Set CN = New ADODB.Connection
  12. On Error Resume Next
  13. With CN
  14. .ConnectionString = "Provider=SQLOLEDB.1;" & _
  15. "Integrated Security=SSPI;" & _
  16. "Server=" & Server & ";" & _
  17. "Database=" & Database & ";"
  18. .Open
  19. End With
  20. If CN.State = 0 Then
  21. Connect = False
  22. Else
  23. Connect = True
  24. End If
  25. End Function
  26.  
  27. Function Query(SQL As String)
  28. Dim RS As ADODB.Recordset
  29. Dim Field As ADODB.Field
  30. Dim Col As Long
  31. Set RS = New ADODB.Recordset
  32. RS.Open SQL, CN, adOpenStatic, adLockReadOnly, adCmdText
  33. If RS.State Then
  34. Col = 1
  35. For Each Field In RS.Fields
  36. Cells(1, Col) = Field.Name
  37. Col = Col + 1
  38. Next Field
  39. Cells(1, 1).CopyFromRecordset RS
  40. Set RS = Nothing
  41. End If
  42. End Function
  43.  
  44. Function Disconnect()
  45. CN.Close
  46. End Function
  47.  
  48. Sub vmkSQL()
  49. Dim SQL As String
  50. Dim Connected As Boolean
  51. Connected = Connect(".\sqlexpress", "TNNT")
  52. SQL = "SELECT * FROM HANGHOA"
  53. If Connected Then
  54. Call Query(SQL)
  55. Call Disconnect
  56. Else
  57. MsgBox "COULD NOT CONNECT"
  58. End If
  59. End Sub
Advertisement
Add Comment
Please, Sign In to add comment