Lista tabeller och deras innehåll


Här demonstreras hur vi automatiskt kan lista en Access-databas tabeller och deras innehåll.

I exemplet används ADO (ActiveX Data Objects) för import av data till Excel.

Saknas ADO-biblioteket på din dator kan den hämtas från Microsofts databashemsida. Det kan vara aktuellt för dig som använder XL 97 med ett äldre operativsystem än Windows 2000.

Innan proceduren körs måste en referens sättas till ADO:s bibliotek:
Det sker på följande sätt:

1. Öppna VB-Editorn i Excel.

2. Välj kommandot Verktyg | Referenser...

3. Kryssa för Microsoft ActiveX Data Objects x.x Library.

 

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2003 All rights Colo - Used by permission)

Option Explicit

 

Sub Lista_Tabeller_Innehall()

   '© 2003 Alla rättigheter XL-Dennis

   Dim cnt As ADODB.Connection

   Dim rst As ADODB.Recordset

   Dim stDB As String

   Dim i As Long

 

   stDB = ThisWorkbook.Path & "\" & "XLData1.mdb"

   Set cnt = New ADODB.Connection

 

   cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

         "Data Source=" & stDB & ";"

 

   Set rst = cnt.OpenSchema(adSchemaColumns)

   cnt.Close

   i = 1

   With rst

      Do Until .EOF

         'För att inte lista systemtabeller.

         If Not .Fields("TABLE_NAME") Like "MSys*" Then

            i = i + 1

            ActiveSheet.Cells(i, 1) = .Fields("TABLE_NAME")

            ActiveSheet.Cells(i, 2).Value = .Fields("COLUMN_NAME")

            ActiveSheet.Cells(i, 3).Value = .Fields("DESCRIPTION")

         End If

         .MoveNext

      Loop

      .Close

   End With

 

   Set rst = Nothing

   Set cnt = Nothing

End Sub