Avatar billede Hyllekilde Nybegynder
16. juli 2012 - 13:01 Der er 1 kommentar og
1 løsning

Eksport af tabel specifikation til excel ark

Jeg har en masse tabeller i Access, som jeg skal beskrive i et excel ark. Derfor skal jeg have eksporteret feltnavn og dets datatype til et excel ark.

Jeg anvender Access 2010.

Idéer?
Avatar billede supertekst Ekspert
16. juli 2012 - 13:51 #1
Ja - har et Excelark, der indeholder VBA-kode til udtræk fra DB.

Jeg finder koden og lægger den ind her..
Avatar billede supertekst Ekspert
16. juli 2012 - 13:58 #2
Rem Kode indsættes i ThisWorkbook
Const dataBaseNavn = "DataBaseXX.accdb"            'Justeres
Dim xsti, Db, rækkeNr
Sub workbook_activate()
Rem slet indholdet p.t.
    ActiveSheet.Cells.ClearContents
   
    sætSti
    rækkeNr = 1
    hentTabeller
    Cells.EntireColumn.AutoFit
    Cells(1, 1).Select
   
    MsgBox ("Dokumentation er udført")
End Sub
Private Sub sætSti()
    xsti = ActiveWorkbook.Path
    If Right(xsti, 1) <> "\" Then
        xsti = xsti + "\"
    End If
   
'    MsgBox xsti
   
End Sub
Private Sub hentTabeller()
Dim tdef As TableDef, felt As Field, feltNr
    Set Db = OpenDatabase(xsti & dataBaseNavn)
   
    On Error Resume Next
   
    For Each tdef In Db.tabledefs
        If LCase(Left(tdef.Name, 4)) <> "msys" Then
            feltNr = 0
            Cells(rækkeNr, 1).Select
            Selection.Font.Bold = True
            Cells(rækkeNr, 1) = tdef.Name
            For Each felt In tdef.Fields()
                Cells(rækkeNr, 2) = feltNr
                Cells(rækkeNr, 3) = felt.Name
                Cells(rækkeNr, 4) = hentFeltType(felt.Type)
                Cells(rækkeNr, 5) = felt.Size
'                Cells(rækkeNr, 6) = felt.Attributes ??
                rækkeNr = rækkeNr + 1
                feltNr = feltNr + 1
            Next felt
            rækkeNr = rækkeNr + 1
        End If
    Next tdef
   
End Sub
Function hentFeltType(intType As Integer) As String
  Select Case intType
      Case dbBoolean
        hentFeltType = "dbBoolean"
      Case dbByte
        hentFeltType = "dbByte"
      Case dbInteger
        hentFeltType = "dbInteger"
      Case dbLong
        hentFeltType = "dbLong"
      Case dbCurrency
        hentFeltType = "dbCurrency"
      Case dbSingle
        hentFeltType = "dbSingle"
      Case dbDouble
        hentFeltType = "dbDouble"
      Case dbDate
        hentFeltType = "dbDate"
      Case dbText
        hentFeltType = "dbText"
      Case dbLongBinary
        hentFeltType = "dbLongBinary"
      Case dbMemo
        hentFeltType = "dbMemo"
      Case dbGUID
        hentFeltType = "dbGUID"
  End Select
End Function
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester