Properties-Auflistung (DAO)
Gilt für: Access 2013, Office 2013
Eine Properties-Auflistung enthält alle Property -Objekte einer bestimmten Instanz eines Objekts.
Hinweise
Mit Ausnahme der Objekte Connection und Error enthält jedes DAO-Objekt eine Properties-Auflistung, in die bestimmte Property-Objekte integriert sind. Diese Property-Objekte (die oft nur als Eigenschaften bezeichnet werden) kennzeichnen die betreffende Objektinstanz eindeutig.
Zusätzlich zu den integrierten Eigenschaften können Sie auch eigene benutzerdefinierte Eigenschaften erstellen und hinzufügen. Um einer vorhandenen instance eines Objekts eine benutzerdefinierte Eigenschaft hinzuzufügen, definieren Sie zunächst deren Merkmale mit der CreateProperty-Methode, und fügen Sie sie dann mit der Append-Methode der Auflistung hinzu. Das Verweisen auf ein benutzerdefiniertes Property-Objekt , das noch nicht an eine Properties-Auflistung angefügt wurde, führt ebenso zu einem Fehler wie das Anfügen eines benutzerdefinierten Property-Objekts an eine Properties-Auflistung , die ein Property-Objekt mit demselben Namen enthält.
Mit der Delete-Methode können Sie benutzerdefinierte Eigenschaften aus der Properties-Auflistung entfernen. Es ist jedoch nicht möglich, integrierte Eigenschaften zu entfernen.
Hinweis
[!HINWEIS] Ein benutzerdefiniertes Property-Objekt ist nur einer bestimmten Objektinstanz zugeordnet. Die Eigenschaft ist nicht für alle Objektinstanzen des ausgewählten Typs definiert.
Der Verweis auf ein integriertes Property-Objekt in einer Auflistung erfolgt über dessen Ordnungszahl oder den Wert der Name-Eigenschaft, wobei Sie die folgenden Syntaxformen verwenden können:
Objekt. Eigenschaften(0)
Objekt. Eigenschaften("Name")
Objekt. Eigenschaften! [Name]
Bei einer integrierten Eigenschaft können Sie auch diese Syntax verwenden:
- object.name
Hinweis
Für eine benutzerdefinierte Eigenschaft müssen Sie das vollständige -Objekt verwenden. Eigenschaften("Name")-Syntax.
Sie können mit denselben Syntaxformen auf die Value-Eigenschaft eines Property-Objekts verweisen. Der Kontext des Verweises entscheidet, ob Sie sich auf das Property-Objekt selbst oder auf die Value-Eigenschaft des Property-Objekts beziehen.
Beispiel
In diesem Beispiel wird eine benutzerdefinierte Eigenschaft für die aktuelle Datenbank erstellt, die Eigenschaften Type und Value werden festgelegt und an die Properties-Auflistung der Datenbank angefügt. Dann werden alle Eigenschaften in der Datenbank im Beispiel aufgeführt.
Sub PropertyX()
Dim dbsNorthwind As Database
Dim prpNew As Property
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Create and append user-defined property.
Set prpNew = .CreateProperty()
prpNew.Name = "UserDefined"
prpNew.Type = dbText
prpNew.Value = "This is a user-defined property."
.Properties.Append prpNew
' Enumerate all properties of current database.
Debug.Print "Properties of " & .Name
For Each prpLoop In .Properties
With prpLoop
Debug.Print " " & .Name
Debug.Print " Type: " & .Type
Debug.Print " Value: " & .Value
Debug.Print " Inherited: " & _
.Inherited
End With
Next prpLoop
' Delete new property because this is a
' demonstration.
.Properties.Delete "UserDefined"
End With
End Sub
This example tries to set the value of a user-defined property. If the property doesn't exist, it uses the CreateProperty method to create and set the value of the new property. The SetProperty procedure is required for this procedure to run.
Sub CreatePropertyX()
Dim dbsNorthwind As Database
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Set the Archive property to True.
SetProperty dbsNorthwind, "Archive", True
With dbsNorthwind
Debug.Print "Properties of " & .Name
' Enumerate Properties collection of the Northwind
' database.
For Each prpLoop In .Properties
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
Next prpLoop
' Delete the new property since this is a
' demonstration.
.Properties.Delete "Archive"
.Close
End With
End Sub
Sub SetProperty(dbsTemp As Database, strName As String, _
booTemp As Boolean)
Dim prpNew As Property
Dim errLoop As Error
' Attempt to set the specified property.
On Error GoTo Err_Property
dbsTemp.Properties("strName") = booTemp
On Error GoTo 0
Exit Sub
Err_Property:
' Error 3270 means that the property was not found.
If DBEngine.Errors(0).Number = 3270 Then
' Create property, set its value, and append it to the
' Properties collection.
Set prpNew = dbsTemp.CreateProperty(strName, _
dbBoolean, booTemp)
dbsTemp.Properties.Append prpNew
Resume Next
Else
' If different error has occurred, display message.
For Each errLoop In DBEngine.Errors
MsgBox "Error number: " & errLoop.Number & vbCr & _
errLoop.Description
Next errLoop
End
End If
End Sub