<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=ADO_Database_Connection</id>
	<title>ADO Database Connection - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=ADO_Database_Connection"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=ADO_Database_Connection&amp;action=history"/>
	<updated>2026-05-13T09:35:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=ADO_Database_Connection&amp;diff=24099&amp;oldid=prev</id>
		<title>Cesar Chew at 18:38, 25 November 2014</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=ADO_Database_Connection&amp;diff=24099&amp;oldid=prev"/>
		<updated>2014-11-25T18:38:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:PL]]&lt;br /&gt;
[[Category:VBA]]&lt;br /&gt;
&lt;br /&gt;
Zanim zaczniesz, pamiętaj aby dodać referencje do Microsoft ActiveX Data Objects xx Library&lt;br /&gt;
&lt;br /&gt;
[[File:Add_ADO_Library.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.connectionstrings.com/ tu znajdziesz gotowe wzory connection string dla dowolnej bazy danych.&lt;br /&gt;
&lt;br /&gt;
UDL files&lt;br /&gt;
&lt;br /&gt;
==Example1==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option Explicit&lt;br /&gt;
Const cs As String = &amp;quot;Provider=OraOLEDB.Oracle.1;Password=asdf;Persist Security Info=False;User ID=SYSTEM;Data &lt;br /&gt;
 --------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Sub ConnectTODataBase()&lt;br /&gt;
Dim c As New ADODB.Connection&lt;br /&gt;
Dim rs As New ADODB.Recordset&lt;br /&gt;
Dim f As ADODB.Field&lt;br /&gt;
Dim w, k&lt;br /&gt;
 &lt;br /&gt;
    c.ConnectionString = cs&lt;br /&gt;
    c.Open&lt;br /&gt;
    Call rs.Open(&amp;quot;select * from HELP&amp;quot;, c)&lt;br /&gt;
    Cells.Clear&lt;br /&gt;
    &lt;br /&gt;
    For Each f In rs.Fields&lt;br /&gt;
        k = k + 1&lt;br /&gt;
        Cells(1, k).Font.Bold = True&lt;br /&gt;
        Cells(1, k) = f.Name&lt;br /&gt;
    Next&lt;br /&gt;
    k = 0&lt;br /&gt;
    w = 1&lt;br /&gt;
        Do Until rs.EOF&lt;br /&gt;
            w = w + 1&lt;br /&gt;
                For Each f In rs.Fields&lt;br /&gt;
                    k = k + 1&lt;br /&gt;
                    Cells(w, k) = f.Value&lt;br /&gt;
                Next f&lt;br /&gt;
                k = 0&lt;br /&gt;
            rs.MoveNext&lt;br /&gt;
        Loop&lt;br /&gt;
    c.Close&lt;br /&gt;
Columns.AutoFit&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub polaczenieZBazaDanych1()&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
Sub polaczenieZBazaDanych2()&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    With conn&lt;br /&gt;
        .Provider = &amp;quot;Microsoft.Jet.OLEDB.4.0&amp;quot;&lt;br /&gt;
        .ConnectionString = &amp;quot;Data Source = C:\Northwind.mdb&amp;quot;&lt;br /&gt;
        .Open&lt;br /&gt;
    End With&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example3==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub polaczenieZBazaDanych3()&lt;br /&gt;
&amp;#039;obsluga bledow&lt;br /&gt;
On Error GoTo blad&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
blad:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
Sub polaczenieZBazaDanych4()&lt;br /&gt;
&amp;#039;obsluga recordset&lt;br /&gt;
On Error GoTo blad&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    Dim rs As New ADODB.Recordset&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
        MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
        rs.Source = &amp;quot;SELECT * FROM Klienci&amp;quot;&lt;br /&gt;
        rs.Open , conn&lt;br /&gt;
            Debug.Print rs.Fields.Count&lt;br /&gt;
            Debug.Print rs(&amp;quot;NazwaFirmy&amp;quot;), rs(&amp;quot;Miasto&amp;quot;)&lt;br /&gt;
        rs.Close&lt;br /&gt;
        Set rs = Nothing&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
blad:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example4==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub polaczenieZBazaDanych5()&lt;br /&gt;
&amp;#039;obsluga recordset c.d.&lt;br /&gt;
On Error GoTo blad&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    Dim rs As New ADODB.Recordset&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
        MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
        rs.Source = &amp;quot;SELECT * FROM Klienci&amp;quot;&lt;br /&gt;
        rs.Open , conn&lt;br /&gt;
            Debug.Print rs.Fields.Count&lt;br /&gt;
            Do While Not rs.EOF&lt;br /&gt;
                Debug.Print rs.Fields(1).Value, rs.Fields(5).Value&lt;br /&gt;
                &amp;#039;Debug.Print rs(&amp;quot;NazwaFirmy&amp;quot;), rs(&amp;quot;Miasto&amp;quot;)&lt;br /&gt;
            rs.MoveNext&lt;br /&gt;
            Loop&lt;br /&gt;
        rs.Close&lt;br /&gt;
        Set rs = Nothing&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
blad:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example5==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub polaczenieZBazaDanych6()&lt;br /&gt;
&amp;#039;zapisywanie recordsetu do pliku&lt;br /&gt;
On Error GoTo blad&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    Dim rs As New ADODB.Recordset&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
        MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
        rs.Source = &amp;quot;SELECT * FROM Klienci&amp;quot;&lt;br /&gt;
        rs.Open , conn&lt;br /&gt;
        &amp;#039;------ zapis do pliku XML&lt;br /&gt;
        rs.Save &amp;quot;c:\kurs\klienci.xml&amp;quot;, adPersistXML&lt;br /&gt;
        &amp;#039;---------------------------&lt;br /&gt;
        rs.Close&lt;br /&gt;
        Set rs = Nothing&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
blad:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example6==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;--------- do cwiczenia: tworzenie formularza, ktorego pole kombi pobiera dane z rekordsetu&lt;br /&gt;
&amp;#039;--------- formularz frmRecordSet&lt;br /&gt;
&lt;br /&gt;
&amp;#039; --------------------wywołanie kwerendy&lt;br /&gt;
Sub Execute_Query()&lt;br /&gt;
    Dim rek As Integer&lt;br /&gt;
    Dim rs As New ADODB.Recordset&lt;br /&gt;
On Error GoTo ErrorHandler&lt;br /&gt;
&lt;br /&gt;
    rs.ActiveConnection = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    rs.Source = &amp;quot;Faktury&amp;quot;&lt;br /&gt;
    rs.Open&lt;br /&gt;
        Worksheets(&amp;quot;Arkusz2&amp;quot;).Range(&amp;quot;a1&amp;quot;).CopyFromRecordset rs&lt;br /&gt;
    rs.Close&lt;br /&gt;
    &lt;br /&gt;
Exit Sub&lt;br /&gt;
ErrorHandler:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
Sub ExecuteParamQuery1()&lt;br /&gt;
&amp;#039;wywolanie kwerendy parametrycznej - sposob pierwszy&lt;br /&gt;
On Error GoTo ErrorHandler&lt;br /&gt;
    Dim cmd1 As ADODB.Command&lt;br /&gt;
    Set cmd1 = New ADODB.Command&lt;br /&gt;
    Dim rs1 As ADODB.Recordset&lt;br /&gt;
    cmd1.ActiveConnection = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    cmd1.CommandText = &amp;quot;[Filtr Faktur]&amp;quot;&lt;br /&gt;
    cmd1.CommandType = adCmdStoredProc&lt;br /&gt;
    cmd1.Parameters.Refresh&lt;br /&gt;
    &lt;br /&gt;
    Set rs1 = cmd1.Execute(Parameters:=Array(10248))&lt;br /&gt;
    &lt;br /&gt;
    Arkusz4.Range(&amp;quot;a10&amp;quot;).CopyFromRecordset rs1&lt;br /&gt;
    &lt;br /&gt;
    rs1.Close&lt;br /&gt;
    Set rs1 = Nothing&lt;br /&gt;
Exit Sub&lt;br /&gt;
ErrorHandler:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example7==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;------------------------------ ADOX&lt;br /&gt;
&amp;#039;przyklad wykorzystania biblioteki ADOX&lt;br /&gt;
Sub Create_Table()&lt;br /&gt;
    Dim cat As ADOX.Catalog&lt;br /&gt;
    Dim myTbl As ADOX.Table&lt;br /&gt;
On Error GoTo ErrorHandler&lt;br /&gt;
&lt;br /&gt;
    Set cat = New Catalog&lt;br /&gt;
    cat.ActiveConnection = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    Set myTbl = New Table&lt;br /&gt;
    With myTbl&lt;br /&gt;
        .Name = &amp;quot;tblFiltr&amp;quot;&lt;br /&gt;
            With .Columns&lt;br /&gt;
                .Append &amp;quot;Id&amp;quot;, adVarWChar, 10&lt;br /&gt;
                .Append &amp;quot;Opis&amp;quot;, adVarWChar, 255&lt;br /&gt;
                .Append &amp;quot;Typ&amp;quot;, adInteger&lt;br /&gt;
            End With&lt;br /&gt;
    End With&lt;br /&gt;
    cat.Tables.Append myTbl&lt;br /&gt;
    Set cat = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Tabela &amp;#039;tblFiltr&amp;#039; została utworzona&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
ErrorHandler:&lt;br /&gt;
    If Err.Number = -2147217857 Then&lt;br /&gt;
    cat.Tables.Delete &amp;quot;tblFiltr&amp;quot;&lt;br /&gt;
    Resume&lt;br /&gt;
    End If&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example8==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;---------------------wywołanie kwerendy z parametrami&lt;br /&gt;
Sub Execute_ParamQueryADOX()&lt;br /&gt;
    Dim cat As ADOX.Catalog&lt;br /&gt;
    Dim cmd As ADODB.Command&lt;br /&gt;
    Dim rst As ADODB.Recordset&lt;br /&gt;
    &lt;br /&gt;
    Set cat = New ADOX.Catalog&lt;br /&gt;
    cat.ActiveConnection = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;&amp;quot; &amp;amp; _&lt;br /&gt;
    &amp;quot;Data Source=C:\Northwind.mdb&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    Set cmd = New ADODB.Command&lt;br /&gt;
    Set cmd = cat.Procedures(&amp;quot;Filtr faktur&amp;quot;).Command&lt;br /&gt;
    &lt;br /&gt;
    &amp;#039; specify a parameter value&lt;br /&gt;
    cmd.Parameters(&amp;quot;[Forms]![Zamówienia]![IDzamówienia]&amp;quot;) = 10258&lt;br /&gt;
    &amp;#039; use the Execute method of the Command object to open the recordset&lt;br /&gt;
    Set rst = cmd.Execute&lt;br /&gt;
    &amp;#039; return product names to the Immediate window&lt;br /&gt;
    Do Until rst.EOF&lt;br /&gt;
        Debug.Print rst(20).Name &amp;amp; &amp;quot;: &amp;quot; &amp;amp; rst(20) &amp;#039;20-sta kolumna&lt;br /&gt;
        rst.MoveNext&lt;br /&gt;
    Loop&lt;br /&gt;
    &amp;#039;wynik&lt;br /&gt;
    &amp;#039;NazwaProduktu: Chang&lt;br /&gt;
    &amp;#039;NazwaProduktu: Chef Anton &amp;#039;s Gumbo Mix&lt;br /&gt;
    &amp;#039;NazwaProduktu: Mascarpone Fabioli&lt;br /&gt;
    &lt;br /&gt;
    rst.Close&lt;br /&gt;
    &lt;br /&gt;
    Set rst = Nothing&lt;br /&gt;
    Set cmd = Nothing&lt;br /&gt;
    Set cat = Nothing&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example9==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;----------------kwerenda parametryczna - bez uzycia ADOX&lt;br /&gt;
Sub ExecuteParamQuery2()&lt;br /&gt;
    RunParamQueryNoADOX &amp;quot;C:\northwind.mdb&amp;quot;, &amp;quot;Sprzedaż wg pracowników i krajów&amp;quot;, #8/1/1996#, #8/31/1996#&lt;br /&gt;
End Sub&lt;br /&gt;
Sub RunParamQueryNoADOX(strDBPath As String, _&lt;br /&gt;
                        strQryName As String, _&lt;br /&gt;
                        varParamValue1 As Variant, _&lt;br /&gt;
                        varParamValue2 As Variant)&lt;br /&gt;
   Dim cnn As ADODB.Connection&lt;br /&gt;
   Dim cmd As ADODB.Command&lt;br /&gt;
   Dim rst As ADODB.Recordset&lt;br /&gt;
   Dim fld As ADODB.Field&lt;br /&gt;
   &lt;br /&gt;
   &amp;#039; Open the connection&lt;br /&gt;
   Set cnn = New ADODB.Connection&lt;br /&gt;
   With cnn&lt;br /&gt;
      .Provider = &amp;quot;Microsoft.Jet.OLEDB.4.0&amp;quot;&lt;br /&gt;
      .Open strDBPath&lt;br /&gt;
   End With&lt;br /&gt;
&lt;br /&gt;
   &amp;#039; Create the command&lt;br /&gt;
   Set cmd = New ADODB.Command&lt;br /&gt;
   Set cmd.ActiveConnection = cnn&lt;br /&gt;
   With cmd&lt;br /&gt;
      .Properties(&amp;quot;Jet OLEDB:Stored Query&amp;quot;) = True&lt;br /&gt;
      .CommandText = strQryName&lt;br /&gt;
   End With&lt;br /&gt;
   &lt;br /&gt;
   &amp;#039; Execute the command and pass in the values for the parameters.&lt;br /&gt;
   Set rst = New ADODB.Recordset&lt;br /&gt;
   Set rst = cmd.Execute(Parameters:=Array(varParamValue1, varParamValue2))&lt;br /&gt;
      &lt;br /&gt;
   With rst&lt;br /&gt;
      &amp;#039; Display the records in the Immediate pane.&lt;br /&gt;
      Do While Not rst.EOF&lt;br /&gt;
         For Each fld In .Fields&lt;br /&gt;
            Debug.Print fld.Value &amp;amp; &amp;quot;;&amp;quot;;&lt;br /&gt;
         Next&lt;br /&gt;
         Debug.Print&lt;br /&gt;
         .MoveNext&lt;br /&gt;
      Loop&lt;br /&gt;
   &lt;br /&gt;
      &amp;#039; Close the Recordset object.&lt;br /&gt;
      .Close&lt;br /&gt;
   End With&lt;br /&gt;
   &lt;br /&gt;
   &amp;#039; Close connection and destroy object variables.&lt;br /&gt;
   cnn.Close&lt;br /&gt;
   Set rst = Nothing&lt;br /&gt;
   Set cnn = Nothing&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example10==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub polaczenieExcel()&lt;br /&gt;
&amp;#039;laczy sie z plikiem Excela&lt;br /&gt;
&amp;#039;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ADOTest.xls;Extended Properties=&amp;#039;Excel 8.0;HDR=Yes&amp;#039;&lt;br /&gt;
On Error GoTo blad&lt;br /&gt;
    Dim conn As ADODB.Connection&lt;br /&gt;
    Set conn = New ADODB.Connection&lt;br /&gt;
    Dim rs As New ADODB.Recordset&lt;br /&gt;
    conn.Open &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ADOTest.xls;Extended Properties=&amp;#039;Excel 8.0;HDR=Yes&amp;#039;&amp;quot;&lt;br /&gt;
        MsgBox &amp;quot;Połączenie utworzone&amp;quot;&lt;br /&gt;
        &amp;#039;rs.Source = &amp;quot;SELECT * FROM [Arkusz1$]&amp;quot;&lt;br /&gt;
        &amp;#039;rs.Source = &amp;quot;SELECT imie FROM [Arkusz1$]&amp;quot;&lt;br /&gt;
        rs.Source = &amp;quot;SELECT * from ludzie&amp;quot; &amp;#039;zakres nazwany&lt;br /&gt;
        rs.Open , conn&lt;br /&gt;
            Arkusz4.Range(&amp;quot;a1&amp;quot;).CopyFromRecordset rs&lt;br /&gt;
        rs.Close&lt;br /&gt;
        Set rs = Nothing&lt;br /&gt;
    conn.Close&lt;br /&gt;
    Set conn = Nothing&lt;br /&gt;
    MsgBox &amp;quot;Połączenie utracone&amp;quot;&lt;br /&gt;
    Exit Sub&lt;br /&gt;
blad:&lt;br /&gt;
    MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connect VBA with MySQL - step by step==&lt;br /&gt;
=== Download MySQL Connector ===&lt;br /&gt;
&lt;br /&gt;
# http://www.mysql.com/downloads/&lt;br /&gt;
# Select specific file with MySQL Connectors (JDBC, ODBC, .Net, etc.)&lt;br /&gt;
# Install this file&lt;br /&gt;
&lt;br /&gt;
=== Setup in Administration Panel ===&lt;br /&gt;
&lt;br /&gt;
==== Go to Administration Tools -&amp;gt; ODBC ==== &lt;br /&gt;
&lt;br /&gt;
[[File:panel.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====  Select System DSN card ==== &lt;br /&gt;
&lt;br /&gt;
[[File:panel2a.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====  Select specific connection ==== &lt;br /&gt;
 &lt;br /&gt;
[[File:panel3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====  Configure connection ==== &lt;br /&gt;
(if you need ip adress go to cmd and write ping your_domain)&lt;br /&gt;
&lt;br /&gt;
[[File:panel4a.jpg]]&lt;br /&gt;
&lt;br /&gt;
====  Test it! ==== &lt;br /&gt;
If all is OK lets go to VBA!&lt;br /&gt;
&lt;br /&gt;
[[File:panel5.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Connect by VBA (using code) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Dim oConn As ADODB.Connection &amp;#039;create variable to catch connection&lt;br /&gt;
Sub Przycisk4_Click()&lt;br /&gt;
&lt;br /&gt;
    Set oConn = New ADODB.Connection&lt;br /&gt;
    Set rs = CreateObject(&amp;quot;ADODB.Recordset&amp;quot;) &amp;#039;we need object to catch query&lt;br /&gt;
    SQLStr = &amp;quot;SELECT * FROM abc&amp;quot; &amp;#039;your query&lt;br /&gt;
    &lt;br /&gt;
    &amp;#039;setup connection in vba&lt;br /&gt;
    oConn.Open &amp;quot;DRIVER={MySQL ODBC 5.2 Unicode Driver};&amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;SERVER=localhost;&amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;DATABASE=test;&amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;USER=root;&amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;PASSWORD=root;&amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;Option=3&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    rs.Open SQLStr, oConn, adOpenStatic &amp;#039;flags to object&lt;br /&gt;
&lt;br /&gt;
    Dim myArray()&lt;br /&gt;
&lt;br /&gt;
    myArray = rs.GetRows()&lt;br /&gt;
&lt;br /&gt;
    kolumner = UBound(myArray, 1)&lt;br /&gt;
    rader = UBound(myArray, 2)&lt;br /&gt;
&lt;br /&gt;
    For K = 0 To kolumner &amp;#039; Using For loop data are displayed&lt;br /&gt;
        Range(&amp;quot;a5&amp;quot;).Offset(0, K).Value = rs.Fields(K).Name&lt;br /&gt;
        For R = 0 To rader&lt;br /&gt;
           Range(&amp;quot;A5&amp;quot;).Offset(R + 1, K).Value = myArray(K, R)&lt;br /&gt;
        Next&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    rs.Close&lt;br /&gt;
    Set rs = Nothing&lt;br /&gt;
    oConn.Close&lt;br /&gt;
    Set oConn = Nothing&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cesar Chew</name></author>
	</entry>
</feed>