piomode1 Geschrieben 28. Oktober 2002 Teilen Geschrieben 28. Oktober 2002 Hi, Leute! Wer kann mir sagen, wie man per VBA die Beschreibung eines Tabellenfeldes ausliest? Name, Felddatentyp, usw.: alles kein Problem, nur für das dritte Feld "Beschreibung" finde ich nichts im Objektmodell!:confused: Hoffe, Ihr könnt mir helfen. Ich mache mich auch auf die Suche... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Olli_Master Geschrieben 28. Oktober 2002 Teilen Geschrieben 28. Oktober 2002 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
piomode1 Geschrieben 5. November 2002 Autor Teilen Geschrieben 5. November 2002 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!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Olli_Master Geschrieben 8. November 2002 Teilen Geschrieben 8. November 2002 (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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
piomode1 Geschrieben 20. November 2002 Autor Teilen Geschrieben 20. November 2002 Hi, Olli_Master! *derkopfrauchteinwenig* Vielen Dank für Deine Beschreibung. Ich werde mich mal dahinterklemmen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.