Zum Inhalt springen

Access: Tabelle: Feld: Beschreibung


piomode1

Empfohlene Beiträge

Ich habe vor langer Zeit mal ein Modul zur Analyse Tabellenstrukturen für Access 97 geschrieben. Da sind u.a. auch die "Beschreibungen" dabei. Die wichtigen Stellen sind fettgedruckt. (Die Tabellenstruktur wird in die Tabellen tTableDef bzw. tColumnDef geschrieben)

Die Beschreibung ist im Objektmodell nicht benannt, da es eine "benutzerdefinierte Eigenschaft" (sprich PROPERTY) ist.


[...]

Private Sub ExploreTables()


    Dim tdf As DAO.TableDef, fld As DAO.Field, rsTables As DAO.Recordset, rsColumns As DAO.Recordset, prp As DAO.Property


    DoCmd.SetWarnings False


    Set rsTables = CurrentDb.OpenRecordset("tTableDef")

    Set rsColumns = CurrentDb.OpenRecordset("tColumnDef")


    ' Alle Tabellen durchgehen

    [B]For Each tdf In CurrentDb.TableDefs[/B]

        If (Left(tdf.Name, 4) <> "MSys") And (tdf.Name <> "tTableDef") And (tdf.Name <> "tColumnDef") And (tdf.Name <> "tDataType") Then


            rsTables.AddNew

            rsTables.Fields("Name") = tdf.Name

            On Error Resume Next

            rsTables.Fields("Description") = Nz([B]tdf.Properties("Description")[/B], "")

            rsTables.Fields("RowCount") = DCount("*", tdf.Name)

            On Error GoTo 0

            rsTables.Update


            iTableId = DLookup("ID_Table", "tTableDef", "Name = """ & tdf.Name & """")


            ' Alle Felder der Tabelle durchgehen

            [B]For Each fld In tdf.Fields[/B]

                rsColumns.AddNew

                rsColumns.Fields("id_table") = iTableId

                rsColumns.Fields("id_type") = Nz(fld.Properties("Type"), "")

                rsColumns.Fields("Name") = fld.Name


                ' Fehler aufgrund nicht vorhandener Eigenschaften ignorieren

                On Error Resume Next

                rsColumns.Fields("Description") = Nz([B]fld.Properties("Description")[/B], "")

                rsColumns.Fields("Format") = Nz(fld.Properties("Format"), "")

                On Error GoTo 0

                rsColumns.Update

            Next fld


        End If

    Next tdf


    DoCmd.SetWarnings True

    Set rsColumns = Nothing

    Set rsTables = Nothing


End Sub

ich hoffe das hilft

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hi, Olli_master!

Vielen Dank für Deine Lösung.

Ich habs ein wenig umgestrickt und gekürzt.

Auch die Prop-Idee wäre ich nicht gekommen; "Description" habe ich aber schon vermutet...

Fragen:

Warum gibt es eigentlich diese Properties (Warum sicnd es nicht normale Eigenschaften?)?

(Ich weiß: Props werden auch benutzt, um die Start-Eigenschaften einer DB mit Hilfe der VBA festzulegen.)

Wie und wofür sonst kann man Props selber definieren?

(Dim Prp as Property: Create...????)

Nochmal vielen Dank für die helfende Lösung!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

(Dim Prp as Property: Create...????)

Nochmal vielen Dank für die helfende Lösung!!!

Warum gibt es eigentlich diese Properties (Warum sicnd es nicht normale Eigenschaften?)?

Beim Hinzufügen von neuen Properties werden keine Änderungen am Objektmodell durchgeführt. (Keine Neukompilierung, keine neue Version, kaum Änderungen an der Doku)

==> also: Properties-Auflistung = flexibler und weniger Aufwand als normale Eigenschaften.

Wie und wofür sonst kann man Props selber definieren?

Das "Wie" ist in der Access-Hilfe beschrieben (CreateProperty bzw. Properties.Append).

Das "Wofür" hängt vom Anwendungsfall an. Normalerweise könnte man in solchen Properties Konfigurationsinformationen speichern. Oder allgemeiner: Alle Informationen, die die gleiche Struktur haben (Properties("StringA") = "StringB") , aber von denen man vorher nicht weiss, welche Namen die Properties genau haben bzw. wieviele es sind.

Properties sind ja eigentlich nur eine dynamische Liste von String-Zuweisungen. (=StringMap)

Die Frage, ob man dort selbst was speichert ist abhängig davon, ob MS die Schnittstellen ändert oder nicht...

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...