Relaties bewerken

Status
Niet open voor verdere reacties.

so10070

Gebruiker
Lid geworden
4 feb 2014
Berichten
419
Ik wil de relaties tussen twee gelinkte tabellen van "Referentiële integriteit afdwingen" veranderen naar "Referentiële integriteit afdwingen" EN "Gerelateerde records trapsgewijs verwijderen". Dat lukt tot wanneer ik de relatie opnieuw zet. Zie groene tekst. Hier krijg ik de foutmelding: 3057 - Deze bewerking wordt niet ondersteund bij gekoppelde tabellen. Ik weet echt niet hoe dit op te lossen. :(

Code:
Private Sub Knop0_Click()
    Dim db As DAO.Database
    Dim nwrel As DAO.Relation
    Dim iAttribuut As DAO.RelationAttributeEnum
    Dim tblNaam As String
    
    Set db = CurrentDb()
    db.Relations.Delete ("[C:\NoizezzBE\NoizezzBE.accdb].tblSubgroeptblProductgroep")
    iAttribuut = DAO.RelationAttributeEnum.dbRelationDeleteCascade And dbRelationInherited
    Set nwrel = db.CreateRelation("tblSubgroeptblProductgroep", "tblSubgroep", "Kopie van tblProductgroep", dbRelationDeleteCascade And dbRelationInherited)
    
    With nwrel
        .Fields.Append .CreateField("SID")
        .Fields!SID.ForeignName = "SID"
        .Attributes = iAttribuut
    End With
    
    [COLOR="#008000"][FONT=Times New Roman][U]db.Relations.Append nwrel[/U][/FONT][/COLOR]
    
    Set db = Nothing
    Set nwrel = Nothing
End Sub
 
Dat moet sowieso in de Backend, niet in de Frontend. En ik zou daar hééél voorzichtig mee zijn, want lang niet alle tabelrelaties zijn daarvoor geschikt. Als je dat doet bij de koppeling [Klanten] —> [Bestellingen] —> [Bestelregels], en je verwijdert een klant, ben je gelijk al je bestellingen kwijt. En daarmee klopt er dus gelijk niets meer van je boekhouding. Ik zou deze actie altijd handmatig doen in het Relatiescherm, en nooit geautomatiseerd. Bovendien is de vraag: wat win je ermee door het te programmeren? Tijdwinst? Voor een (als het goed is) éénmalige actie?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan