Dvs ett reflexivt samband. Raden med ID 1 har InvitedBy till 2 och raden med ID 2 har InvitedBy till 3, när man tar bort raden med ID 2 så skall raden med ID 1 uppdateras och sätta InvitedBy till null. Raden med ID 3 ska inte ändras på något sätt. Dvs vill jag använda mig utav Cascade to Null, jag har kollat runt på google men de flesta sidor jag kollat på länkas jag till http://allenbrowne.com/ser-64.html - Jag har testat att använda mig utav detta utan något vidare resultat.
När jag använder mig av nedanstående modul för att sätta relationen så blir det en helt vanlig relation dvs att jag inte kan uppdatera eller ta bort raden., jag kan ingenting om den nedanstående modulen än det som kommentarerna berättar så har ingen direkt insikt i vad direkt händer under huven så att säga.
Någon som har ett fungerande sätt på att göra en Cascade to Null relation i MS access? Jag vill ju även om det går att om ID'et på raden med ID 1 ändras så ska även InvitedBy på raden med ID 2 ändras, dvs Cascade Update. Eller borde jag bara förenkla allt och göra en referens tabell med vanlig Cascade Update & Delete? Bara tråkigt att behöva använda sig utav en extra tabell för en 1-1 relation.
Kan ju även använda mig utav flera SQL-satser men vilket även det är en fullösning som man helst vill undvika.
Min Modul jag gjort från koden på allenbrowne sidan.
Public Const dbRelationCascadeNull As Long = &H2000
Public Function MakeRel()
'Purpose: Create a Cascade-to-Null relation using DAO.
Dim db As DAO.Database
Dim rel As DAO.Relation
Dim fld As DAO.Field
Set db = CurrentDb()
'Arguments for CreateRelation(): any unique name, primary table, related table, attributes.
Set rel = db.CreateRelation("PersonMother", "Person", "Person", dbRelationCascadeNull)
Set fld = rel.CreateField("SSN") 'The field from the primary table.
fld.ForeignName = "Mother" 'Matching field from the related table.
rel.Fields.Append fld 'Add the field to the relation's Fields collection.
db.Relations.Append rel 'Add the relation to the database.
'Report and clean up.
Debug.Print rel.Attributes
Set db = Nothing
End Function
Inlägget är redigerat av Twyzz: 16 jun 2012, 00:50.

Logga in
Bli medlem

Citera flera inlägg