collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13910
  • stats Beiträge insgesamt: 65777
  • stats Themen insgesamt: 8873
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Datensatz inkl. Zuordnungseinträge löschen  (Gelesen 502 mal)

Offline Micharius

  • Access-User
  • *
  • Beiträge: 61
Datensatz inkl. Zuordnungseinträge löschen
« am: November 27, 2017, 13:53:04 »
Hallo zusammen

Wieder mal ich. In meiner Datenbank werden Datensätze aus der Tabelle tblProjekte in einem Formular dargestellt. Auf den PK ProID dieser Tabelle existieren zudem in 2 Zuordnungstabellen Einträge, wo Kontakte damit in Verbindung gebracht werden.
Wenn ich nun dem Benutzer die Möglichkeit geben will, den Datensatz im Formular zu löschen, müssten also diese Verweise auch gelöscht werden, sonst kann der Datensatz nicht entfernt werden. Als Anfänger hätte ich jetzt probiert, zuerst die Einträge in der Zuordnungstabelle zu löschen, und dann den Datensatz selbst.

Gesetzten Fall, dass dies auch Sinn macht, hätte ich es mit folgendem Code probiert:

DoCmd.Execute "DELETE * FROM tblZuoKontakte WHERE ProIDRef = " & Me!ProID
Doch das funktioniert nicht, bei Me!ProID scheint irgendein Fehler zu sein (Fehler beim Kompilieren).

Anschliessend würde ich natürlich dann den Datensatz selber auch noch löschen lassen.

Ob das empfehlenswert ist, weiss ich aber nicht und wäre deshalb froh um eine Einschätzung und ggf. eine Angabe, was ich Code verändern müsste.

Liebe Grüsse

Micharius
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7202
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #1 am: November 27, 2017, 13:59:52 »
Hallo,
wenn Du in den Beziehungen referentielle Integrität (wie es unbedingt sein sollte) Löschweitergabe eingestellt hast, geht das automatisch. Löschung eines 1-Datensatzes löscht dann auch die zugehörenden n-Datensätze.
Ohne irgendetwas programmieren zu müssen.

Und dann noch ein grundsätzliche Anmerkung:
Warum sollen Datensätze gelöscht werden ?
Macht man in einer Datenbank normalerweise nicht.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1168
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #2 am: November 27, 2017, 14:15:42 »
Es gibt kein DoCmd.Execute, was Du im Objekt-Katalog im VBA-Editor (wohl nie nie geöffnet - oder?) leicht überprüfen kannst. Sehr wohl wirst Du, wenn Du dort nach Execute suchst, herausfinden, dass die DAO.Database-Klasse eine Execute-Methode zum Ausführen von Aktionsabfragen bereitstellt.    CurrentDb.Execute "DELETE FROM tblZuoKontakte WHERE ProIDRef = " & Nz(Me.ProID, 0), _
                      dbFailOnError
Grüße von der (⌒▽⌒)
 

Offline Micharius

  • Access-User
  • *
  • Beiträge: 61
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #3 am: November 27, 2017, 15:11:29 »
Hallo
Danke für die raschen Antworten!

@MzKlMu
Referentielle Intergrität habe ich aktiviert. Aber - und auf die Gefahr, dass ich jetzt mich als kompleten Volldummy oute - keine Löschweitergabe. Ich habe das schlichtweg nicht so gelernt. Ist die Aktivierung dieser bei allen Beziehungen empfohlen, oder speziell - weil bei mir der Fall - bei n:m Beziehungen?

@Lachtaube
Wenn man überhaupt kein VBA kann, klaut man sich die Schnipsel eben im Netz zusammen. Manchmal hat man Glück und es funktioniert, manchmal bringt man es mit Ausprobieren hin, und manchmal gar nicht. So sieht die traurige Wahrheite aus  :'( In diesem Sinne: Ja, im Objekt-Katalog im VBA Editor habe ich nicht nachgeschaut. Wenn was rot markiert raus kommt weiss ich jeweils, das was falsch ist. Das wahr hier aber nicht der Fall....
Mich zumindest in die Grundlagen einzuarbeiten ist seit längerem eine Pendenz bei mir - leider aber noch nicht umgesetzt.

Grüsse

Micharius
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7202
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #4 am: November 27, 2017, 16:50:52 »
Hallo,
Zitat
Ich habe das schlichtweg nicht so gelernt
so pauschal hast Du da was falsches gelernt. Ob das zur Anwendung hängt vom Fall ab und das musst Du als Entwickler entscheiden. Wenn Du die Detaildatensätze nicht mehr brauchst, dann lösche sie über die Löschweitergabe dazu ist die da.
Ob das 1:n ist oder n:m spielt dabei keine Rolle.

Aber noch mal der Hinweis/Frage warum löschst Du Datensätze ?
In einer Datenbank löscht man keine Datensätze die mal gültig waren. Man nimmt allenfalls ein Flag auf um diese bei Bedarf auszufiltern.
Gruß
Klaus
 

Offline Micharius

  • Access-User
  • *
  • Beiträge: 61
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #5 am: November 27, 2017, 20:22:42 »
Hi MzKlMU

Besten Dank für den Input - ich buch das unter "wieder etwas gelernt" ab.

Zitat
Aber noch mal der Hinweis/Frage warum löschst Du Datensätze ?

Ja eigentlich eine gute Frage. Ich habe die Möglichkeit eingebaut, ein Projekt auf "inaktiv" zu setzen, wenn es z.B. nicht mehr benötigt wird. Löschen wäre einfach dazu, einen z.B. irrtümlich erfassten Datensatz zu löschen. Gelöscht habe ich bis anhin nichts und werde mir natürlich das Ganze unter Anbetracht
Zitat
von In einer Datenbank löscht man keine Datensätze die mal gültig waren
  noch überlegen. :-\

Herzlichen Dank!

Grüsse

Micharius
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7202
Re: Datensatz inkl. Zuordnungseinträge löschen
« Antwort #6 am: November 27, 2017, 21:54:48 »
Hallo,
da wäre dann das Löschen richtig. Aber es ist relativ unwahrscheinlich, dass dieser zu löschende DS dann auch einen n-Eintrag bekommen hat.
Gruß
Klaus