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?
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