DAO / Access-Tabelle

Hallo zusammen

In einer Access-Tabelle gibt es als Bestandteil einer Column ein Feld „Beschreibung“. Dieses will ich mit VB6 auslesen. DAO bietet nichs. Hat jemand eine Idee oder Erfahrung damit?

Grüsse Peter :wink:

Habe z.Zt. wenig Zeit
vieleicht helfen Dir die Prozeduren.
Falls Du nicht zurechtkommst melde Dich nochmal
Den tblNamen passe bitte an

viel Glück
Norbert Laas
----- Original Message -----
From: Norbert Laas
To: Norbert Laas
Sent: Wednesday, July 05, 2000 4:56 PM
Subject: doku von Tabellen

Option Compare Database
Option Explicit
Sub Test()
TableInfo („tblAdvertisers“)
End Sub
Function TableInfo(strTableName As String)
’ Alison Brown / geändert: KObd
’ Purpose: Print in the immediate window the field names, types, and sizes for any table.
’ Argument: name of a table in the current database.
Dim DB As DATABASE, tdf As TableDef, I As Integer
Dim fldnam As String, fldtyp As String, fldsiz As String, flddes As String, fldrequired As String
Dim prp As Properties
Set DB = DBEngine(0)(0)
On Error GoTo TableInfoErr
Set tdf = DB.TableDefs(strTableName)

'If Not AccessEigenschaftEinstellen(tdf, „Description“, dbText, False) Then
'MsgBox „Adding Description Property to tables did not work“
'Exit Function
'End If
On Error GoTo TableInfoErrPrint
Debug.Print „FIELD NAME“, „FIELD TYPE“, „SIZE“, „Required“, „DESCRIPTION“
Debug.Print „==========“, „==========“, „====“, „=========“, „===========“
For I = 0 To tdf.Fields.count - 1

fldnam = tdf.Fields(I).Name
fldtyp = FieldType(tdf.Fields(I).Type)
fldsiz = tdf.Fields(I).Size
fldrequired = tdf.Fields(I).Required

On Error Resume Next
flddes = „“
flddes = tdf.Fields(I).Properties(„Description“)
Err.Clear
On Error GoTo TableInfoErrPrint

Debug.Print fldnam & Str&(43)
Debug.Print fldtyp,
Debug.Print fldsiz,
Debug.Print fldrequired,
Debug.Print flddes

’ Debug.Print tdf.Fields(I).Name,
’ Debug.Print FieldType(tdf.Fields(I).Type),
’ Debug.Print tdf.Fields(I).Size,
’ Debug.Print tdf.Fields(I).Properties(„Description“)

Next
Debug.Print „==========“, „==========“, „====“, „==========“;

TableInfoExit:
DB.Close
Exit Function

TableInfoErrPrint:
’ Needed because a non existing Description within a field always causes an Error
’ and just a „Resume Next“ would print the following fieldname within the same line

If Err = 3270 Then
Debug.Print
Resume Next
Else
Debug.Print "Unerwarteter Fehler : " & Err
Resume Next
End If

TableInfoErr:
Select Case Err
Case 3265 ’ Supplied table name invalid
MsgBox strTableName & " table doesn’t exist"
Resume TableInfoExit
Case Else
Debug.Print "TableInfo() Error " & Err & ": " & Error
End Select
End Function

Function FieldType(N) As String
’ Korrigierte Version
’ Purpose: Converts the numeric results of DAO fieldtype to Text.
Select Case N
Case dbBoolean
FieldType = „Yes/No“ '1
Case dbByte
FieldType = „Byte“ '2
Case dbInteger
FieldType = „Integer“ '3
Case dbLong
FieldType = „Long Integer“ '4
Case dbCurrency
FieldType = „Currency“ '5
Case dbSingle
FieldType = „Single“ '6
Case dbDouble
FieldType = „Double“ '7
Case dbDate
FieldType = „Date/Time“ '8
Case dbText
FieldType = „Text“ '10
Case dbLongBinary
FieldType = „OLE Object“ '11
Case dbMemo
FieldType = „Memo“ '12
Case Else
FieldType = "Unknown Type: " & N
End Select

End Function

Function AccessEigenschaftEinstellen(Obj As Object, strName As String, _
intTyp As Integer, varEinstellung As Variant) As Boolean
Dim prp As Property
Const conEigNichtGef As Integer = 3270

On Error GoTo FehlerAccessEigenschaftEinstellen
’ Explizit auf die Auflistung „Properties“ verweisen.
Obj.Properties(strName) = varEinstellung
Obj.Properties.Refresh
AccessEigenschaftEinstellen = True

BeendenAccessEigenschaftEinstellen:
Exit Function

FehlerAccessEigenschaftEinstellen:
If Err = conEigNichtGef Then
’ Eigenschaft erstellen, Typ festlegen, Anfangswert einstellen.
Set prp = Obj.CreateProperty(strName, intTyp, varEinstellung)
’ Eigenschaft-Objekt an die Auflistung „Properties“ anfügen.
Obj.Properties.Append prp
Obj.Properties.Refresh
AccessEigenschaftEinstellen = True
Resume BeendenAccessEigenschaftEinstellen
Else
MsgBox Err & ": " & vbCrLf & Err.Description

AccessEigenschaftEinstellen = False
Resume BeendenAccessEigenschaftEinstellen
End If
End Function

Danke - Teste es heute Nacht - grüsse Peter :wink:)
o.T.