Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

9.6.4 Attachment-Feld anlegen

9.6.5 Mehrwertige Felder anlegen

Das Anlegen von mehrwertigen Feldern ist nicht ganz so einfach wie bei Attachment-Feldern - zumindest nicht, wenn man diese Felder anschließend auch Gewinn bringend einsetzen möchte. Aber der Reihe nach: Schauen Sie sich zunächst einmal das folgende Listing an, das genau wie in den vorhergehenden Beispielen eine Tabelle mit einem ID-Feld und einem weiteren Feld eines bestimmten Datentyps anlegt. In diesem Fall handelt es sich dabei um ein mehrwertiges Feld zum Speichern von Text.

Public Sub TabelleMitKomplexemFeldAnlegen()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO. Field2

    Set db = CurrentDb
    Set tdf = db.CreateTableDef
    
    tdf.Name = "tblKomplexesFeld"
    
    Set fld = tdf.CreateField("KomplexesFeldID", dbLong)
    fld.Attributes = dbAutoIncrField
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("KomplexesFeld", dbComplexText)
    tdf.Fields.Append fld
        
    db.TableDefs.Append tdf
    db.TableDefs.Refresh
    
    Application.RefreshDatabaseWindow
    
    Set db = Nothing

End Sub

Listing 9.10: Anlegen einer Tabelle mit einem komplexen Feld

Das Anlegen der Tabelle und des ComplexText-Feldes funktioniert, aber der Versuch, diesem Feld in der Datenblattansicht der Tabelle Einträge hinzuzufügen, schlägt fehl. Kein Wunder, wie ein Blick in die Entwurfsansicht und die Nachschlagen-Eigenschaften dieses Feldes zeigt: Die für das Hinzufügen verantwortliche Eigenschaft Wertlistenbearbeitung zulassen hat den Wert Nein (siehe Abbildung 9.6).

Abbildung 9.6: Eigenschaften eines per DAO und VBA erstellten mehrwertigen Feldes

Wie aber soll man diese Eigenschaften beim Anlegen eines solchen Feldes per DAO einstellen, wenn diese offensichtlich noch nicht vorhanden sind?

Die Lösung ist der Einsatz von Properties, die Sie zunächst festlegen und dann auf die gewünschten Werte einstellen. Das folgende Beispiel legt die gleiche Tabelle wie oben an, nur dass die Eigenschaft Wertlistenbearbeitung zulassen auf den Wert Ja eingestellt wird:

Public Sub TabelleMitAenderbaremKomplexemFeldAnlegen()

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field2
    Dim prp As DAO.Property
    
    Set db = CurrentDb
    Set tdf = db.CreateTableDef
    
    CurrentDb.TableDefs.Delete "tblKomplexesFeld"
    
    tdf.Name = "tblKomplexesFeld"
    
    Set fld = tdf.CreateField("KomplexesFeldID", dbLong)
    fld.Attributes = dbAutoIncrField
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("KomplexesFeld", dbComplexText)
    tdf.Fields.Append fld
    
    db.TableDefs.Append tdf
    
    Set prp = fld.CreateProperty("AllowValueListEdits", dbBoolean)
    prp. Value = True
    fld.Properties.Append prp
    
    Set prp = fld.CreateProperty("RowSourceType", dbText)
    prp.Value = "Wertliste"
    fld.Properties.Append prp
        
    db.TableDefs.Refresh
    
    RefreshDatabaseWindow
    
    Set db = Nothing

End Sub

Listing 9.11: Anlegen einer Tabelle mit einem mehrwertigen Feld, das auf einer Wertliste basiert und benutzerdefinierte Einträge zulässt

Die Tabelle arbeitet nun in der Datenblattansicht wie erwartet: Beim Klick auf das Kombinationsfeld zum Auswählen des Inhalts für das mehrwertige Feld öffnet sich nicht nur die Liste, sondern es erscheint auch das Symbol zum Öffnen des Dialogs zum Ändern der Listeneinträge (siehe Abbildung 9.7).

Abbildung 9.7: Eine per DAO erstellte Tabelle mit erweiterbarem, mehrwertigem Feld

Weitere Properties von Nachschlage- und mehrwertigen Feldern

Tabelle 9.2 zeigt die übrigen Eigenschaften von Nachschlage- und mehrwertigen Feldern mit der englischen Bezeichnung und dem Datentyp.

Eigenschaft Englische Bezeichnung Datentyp
Herkunftstyp RowSourceType dbText/String
Datensatzherkunft RowSource dbText/String
Gebundene Spalte BoundColumn dbLong/Long
Spaltenanzahl ColumnCount dbInteger/Integer
Spaltenüberschriften ColumnHeads dbBoolean/Boolean
Spaltenbreiten ColumnWidth dbText/String
Zeilenanzahl ListRows dbInteger/Integer
Listenbreite ListWidth dbText/String
Nur Listeneinträge LimitToList dbBoolean/Boolean
Mehrere Werte zulassen AllowMultipleValues dbBoolean/Boolean
Wertlistenbearbeitung zulassen AllowValueListEdits dbBoolean/Boolean
Bearbeitungsformular für Listenelemente ListItemsEditForm dbText/String
Nur Datensatzherkunftswerte anzeigen ShowOnlyRowSourceValues dbBoolean/Boolean

Tabelle 9.2: Eigenschaften für Nachschlage- und mehrwertige Felder

Nächster Abschnitt:

9.6.6 Löschen einer Tabelle

© 2006-2008 André Minhorst Alle Rechte vorbehalten.