Attribute einer DAO.Relation (AXP)

27/02/2009 - 11:43 von Thomas Winkler | Report spam
Hi,

beim Experimentieren mit Relations und deren Attributen ist mir eine
Merkwürdigkeit aufgefallen.

Die Attributes-Property ist eine Or-Verknüpfung aus Elementen der
DAO.RelationAttributeEnum welche laut Hilfe folgende sind:

dbRelationUnique = 1
dbRelationDontEnforce = 2
dbRelationInherited = 4
dbRelationUpdateCascade = 256
dbRelationDeleteCascade = 4096
dbRelationLeft = 16777216
dbRelationRight = 33554432

Der durch Or-Verknüpfung gebildete Long-Wert der betreffenden Relation
findet sich MSysRelationships.grbit.

Dort gibt es nun bei mir einige Werte, die offensichtlich auch eine
Eigenschaft mit Wert 8192 in Ihrer Attribut-Kombination tragen. Wenn ich
jetzt die im Thread "Löschweitergabe per VBA" vom 24.02.2009 15:11
(http://groups.google.de/group/micro...74ded062cb)
verwendete Technik (Kopieren von Attributen in neue Rel - alte Rel
löschen) einsetze, tritt beim Anlegen der neuen Relation der Fehler 3001
(Ungültiges Argument) auf.

Das betrifft augenscheinlich nur Verknüpfungen, die vorher *per DDL*
erstellt wurden. Allerdings nicht alle. Die per Hand erstellten sind
ausnahmslos *nicht* betroffen.

Ich behelfe mir übergangsweise damit, das Flag zu löschen.
Allerdings habe ich Bauchschmerzen dabei. Irgendeine Bedeutung muss das
Flag ja haben.

Habt ihr eine Idee was das sein könnte bzw. wo man weitergehende Dokus
dazu finden kann? Nicht mal das MSDN
(http://msdn.microsoft.com/en-us/lib...25809.aspx) kennt ein
solches Attribut.

*Ratlos*

Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."
 

Lesen sie die antworten

#1 André Minhorst
27/02/2009 - 11:53 | Warnen spam
Hi,

Dort gibt es nun bei mir einige Werte, die offensichtlich auch eine
Eigenschaft mit Wert 8192 in Ihrer Attribut-Kombination tragen.



in der DAO-Bibliothek gibt es anscheinend nur eine Konstante mit diesem
Zahlenwert, und zwar in der folgenden Enumeration:

Enum FieldAttributeEnum
dbFixedField As Long=1 ' Attributes (Field on TableDef)
dbVariableField As Long=2 ' Attributes (Field on TableDef)
dbAutoIncrField As Long ' Attributes (Field on TableDef)
dbUpdatableField As Long2 ' Attributes (Field on TableDef)
****dbSystemField As Long92 ' Attributes (Field on TableDef) ****
dbHyperlinkField As Long2768 ' Attributes (Field on TableDef)
dbDescending As Long=1 ' Attributes (Field on Index)

Vielleicht markiert Access per Benutzeroberflàche erstellte Relations mit
dbSystemField und làsst dies bei DDL-Befehlen schlicht aus. Ich würde mir
da keine Gedanken machen ...

Ciao
André

http://www.access-entwicklerbuch.de
http://www.access-im-unternehmen.de

Ähnliche fragen