Odczyt bazy danych

Odczyt bazy danych

Program: odczytujący bazę danych.

Dla poszczególnych zadań:

  • w 1 arkuszu umieszczane są nazwy istniejących tabel,
  • w 2 arkuszu wypisywana jest tabela pracownicy,
  • w 3 arkuszu tabela samochód,
  • w 4 arkuszu pomieszanie wartości dwóch tabel.

Plik wymagany plik do poprawnego działania programu

Kompilator: Microsoft Excel
Baza danych: MySQL (własna baza danych stworzona w MySQL Workbench)

Galeria:

Struktura bazy danych.

Poszczególne zadania w osobnych arkuszach:

Kod programu:

Dim polaczenie As New ADODB.Connection
Dim komunikator As New ADODB.Recordset
Dim komunikator_2 As New ADODB.Recordset
Dim output As String
Sub wykonaj_dzialanie()

    polaczenie.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1; DATABASE=mydb; USER=root; PASSWORD=123; Option=3"
    strQuery_show = "show tables"
    strQuery_pracownik = "Select * from pracownik"
    strQuery_samochod = "Select * from samochod"
    
    komunikator.Open strQuery_show, polaczenie
    Cells(1, 1) = "Lista tabel:"
    i = 3
    Do Until komunikator.EOF
        output = komunikator.Fields(0)
        Cells(i, 1) = output
        komunikator.MoveNext
        i = i + 1
    Loop
    komunikator.Close
    
    komunikator.Open strQuery_pracownik, polaczenie
    Sheets("Arkusz2").Cells(1, 1) = "Wypisanie tabeli pracownicy:"
    i = 3
    Sheets("Arkusz2").Cells(2, 1) = "Id:"
    Sheets("Arkusz2").Cells(2, 2) = "Imię:"
    Sheets("Arkusz2").Cells(2, 3) = "Nazwisko:"
    Do Until komunikator.EOF
        Sheets("Arkusz2").Cells(i, 1) = komunikator.Fields(0)
        Sheets("Arkusz2").Cells(i, 2) = komunikator.Fields(1)
        Sheets("Arkusz2").Cells(i, 3) = komunikator.Fields(2)
        komunikator.MoveNext
        i = i + 1
    Loop
    komunikator.Close
    
    komunikator.Open strQuery_samochod, polaczenie
    Sheets("Arkusz3").Cells(1, 1) = "Wypisanie tabeli samochód:"
    i = 3
    Sheets("Arkusz3").Cells(2, 1) = "Id:"
    Sheets("Arkusz3").Cells(2, 2) = "Marka:"
    Sheets("Arkusz3").Cells(2, 3) = "Rocznik:"
    Do Until komunikator.EOF
        Sheets("Arkusz3").Cells(i, 1) = komunikator.Fields(0)
        Sheets("Arkusz3").Cells(i, 2) = komunikator.Fields(1)
        Sheets("Arkusz3").Cells(i, 3) = komunikator.Fields(2)
        komunikator.MoveNext
        i = i + 1
    Loop
    komunikator.Close
    
    Sheets.Add
    Sheets(ActiveSheet.Name).Name = "Arkusz4"
    Sheets("Arkusz4").Select
    Sheets("Arkusz4").Move After:=Sheets(4)
    Sheets("Arkusz4").Cells(1, 1) = "Dane tabel:"
    Sheets("Arkusz4").Cells(2, 1) = "Imię:"
    Sheets("Arkusz4").Cells(2, 2) = "Nazwisko:"
    Sheets("Arkusz4").Cells(2, 3) = "Marka:"
    Sheets("Arkusz4").Cells(2, 4) = "Rocznik:"
    
    komunikator_2.Open strQuery_pracownik, polaczenie
    komunikator.Open strQuery_samochod, polaczenie
    
    i = 3
    Do Until komunikator_2.EOF
        Sheets("Arkusz4").Cells(i, 1) = komunikator_2.Fields(1)
        Sheets("Arkusz4").Cells(i, 2) = komunikator_2.Fields(2)
        komunikator.MoveFirst
        Do Until komunikator.EOF
            If komunikator_2.Fields(3) = komunikator.Fields(0) Then
                Sheets("Arkusz4").Cells(i, 3) = komunikator.Fields(1)
                Sheets("Arkusz4").Cells(i, 4) = komunikator.Fields(2)
            End If
            komunikator.MoveNext
        Loop
        komunikator_2.MoveNext
        i = i + 1
    Loop
     
    komunikator.Close
    komunikator_2.Close
    polaczenie.Close
End Sub