Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Im Access nicht verknüpfte Datensätze löschen

Frage Microsoft Microsoft Office

Mitglied: Valume91

Valume91 (Level 1) - Jetzt verbinden

31.03.2009, aktualisiert 16:47 Uhr, 13266 Aufrufe, 11 Kommentare

Wie kann ich bei zwei verknüpften Tabellen aus der Mastertabelle die Datensätze löschen die keinen FS in der zweiten Tabelle besitze?

Hallo liebes Forum

Ich habe zwei Tabellen die miteinander verknüpft sind. Nun möchte ich ein Makro oder eine Löschabfrage die mir automatisch alle Datensätze in der Mastertabelle löscht, zu denen es keinen entsprechenden Fremdschlüssel in der zweiten Tabelle gibt!
Oder anders ausgedrückt soll es alle Datensätze löschen die keine Verknüpfung zur zweiten Tabelle besitzen.
Wenn ich das mit einer Löschabfrage machen soll, was muss ich für Kriterien definieren?

Schon im voraus Danke für eure Antworten!

MfG Valume


Sollte bereits ein Beitrag vorhanden sein der das selbe Thema behandelt, Sorry!


Hier noch ein Bild der Beziehungen in meiner DB:

aa45676ff1aa8cecc6cdd0d0c515031f-beziehungen - Klicke auf das Bild, um es zu vergrößern
Mitglied: Biber
31.03.2009 um 14:21 Uhr
Moin Valume91,

willkommen im Forum.

Es wäre bei derartigen Fragen sinnvoller, die Tabellen- und Feldnamen zu nennen.
Aber sei's drum - in der hoffnung, dass Du Du die entsprechende Übersetzungsleistung erbringen kannst:
01.
Delete mastertab.*  
02.
from mastertab left join fktab on mastertab.fkid=fktab.fkid 
03.
where fktab.fkid is null
... So sollte die Abfrage funktionieren.
Gefahrlos ausprobieren kannst du es ja vorher mit einem harmlosen:
01.
select  mastertab.*  
02.
from mastertab left join fktab on mastertab.fkid=fktab.fkid 
03.
where fktab.fkid is null
Grüße
Biber
Bitte warten ..
Mitglied: Valume91
31.03.2009 um 14:37 Uhr
Hi Biber

Erstmal danke für die schnelle Hilfe!

Die Tabellen heissen Projektdaten (Master) und Produktliste.
Die Schlüsselfelder entsprechend Projektdaten_ID und Projektdaten_IDFS.

01.
Delete mastertab.*  
02.
 from mastertab left join fktab on mastertab.fkid=fktab.fkid 
03.
 where fktab.fkid is null 
04.
 
Wo muss ich das reinschreiben? Bei Kriterium?
Ich nehme an fktab steht für die zweite Tabelle?

MfG Valume
Bitte warten ..
Mitglied: Biber
31.03.2009 um 14:50 Uhr
Moin Valume91,

mit Deinen Tabellen- und Feldnamen müsste es in etwa so aussehen:
01.
DELETE P.*   
02.
FROM projektdaten p 
03.
LEFT JOIN Produktliste PL ON P.Produktliste_IDFS = PL.Produktliste_ID 
04.
WHERE PL.Produktliste_ID is null


.... wenn ich es richtig interpretiere, dass das in beiden Tabellen vorhandene Feld
  • "Produktliste_IDFS" in der Master-Tabelle "Produktdaten" heisst
  • und Produktliste_ID in der Child-Tabelle "Produktliste"

Reinschreiben kannst Du es am Einfachsten mit ein paar Mausklicks beginnend:
  • "Abfragen"->"Neu" (doppelklick)-->"Entwurfsansicht" -->[nichts auswählen]-->"Schließen"
  • mit rechter maustaste Kontextmenü umschalten auf "SQL-Ansicht"
  • Copy und paste des Codes
  • Abfeuern

So zumindest bei Access 2000/2003.
Falls es bei Access 2007 anders sein sollte-->hab keins zum Spielen hier.

Grüße
Biber
Bitte warten ..
Mitglied: Valume91
31.03.2009 um 15:08 Uhr
hmm er bringt ein Feld mit der Meldung:
Parameterwert eingeben:
P.Produktliste_IDFS

Was soll ich da eingeben?

Nochmals zum besseren Verständnis:
Ich habe zwei Tabellen:
"Projektdaten" (Master) mit dem Primärschlüssel Projektdaten_ID und eine Child-Tabelle "Produktliste" mit dem Fremdschlüssel Projektdaten_IDFS

MfG

Valume
Bitte warten ..
Mitglied: Biber
31.03.2009 um 15:23 Uhr
Sorry, Valume91,

dann habe ich es missinterpretiert.
01.
DELETE P.*   
02.
FROM projektdaten p 
03.
LEFT JOIN Produktliste PL ON P.Projektdaten_ID = PL.Projektdaten_IDFS 
04.
WHERE PL.Projektdaten_IDFS is null
Grüße
Biber
Bitte warten ..
Mitglied: Valume91
31.03.2009 um 15:33 Uhr
Hm die Abfrage scheint richtig zu sein jedoch bringt er die Fehlermeldung:
Löschen aus angegebenen Tabellen nicht möglich.

Kann man nicht aus einer Mastertabelle löschen oder wie?

Achja danke für deine Geduld Biber ;)
Bitte warten ..
Mitglied: Biber
31.03.2009 um 15:46 Uhr
Tja, Valume91,

was/wieviele Sätze werden denn angezeigt, wenn Du statt des "DELETE P.* From bla" ein "SELECT P.* from bla" ausführst?
Existieren weitere FK-Beziehungen zu anderen Tabellen?

Grüße
Biber
Bitte warten ..
Mitglied: Valume91
31.03.2009 um 15:54 Uhr
Es werden 16 Datensätze angezeigt, alle die keine Verknüpfung mehr zur Chlid-Tabelle haben, was ja auch völlig korrekt ist.
Was ist eine FK-Beziehung?
Es bestehen noch andere Beziehungen von anderen Tabellen zur Mastertabelle in der sich dann der entsprechende Fremdschlüssel befindet.
Wenn ich die Abfrage mit SELECT ausführe und dann die angezeigten Datensätze lösche, werden sie in der Abfrage gelöscht, aber in der Tabelle nicht, ausserdem werden sie bei erneutem starten der Abfrage wieder angezeigt.

PS: Kann ich hier irgendwie Bilder anfügen? Dann kan ich dir ein Printscreen des Modells zeigen.

MfG Valume
Bitte warten ..
Mitglied: Biber
31.03.2009 um 16:28 Uhr
moin valume91,

Meinst du FS?
Was sollte denn Freising oder mein Führerschein, eine Fachschule, eine Festschrift oder der Flugsimulator mit unserem Problem hier zu tun haben... absurd.
Nein, ich meinte FK wie foreign key . That's outlandish for FS.

PS: Kann ich hier irgendwie Bilder anfügen? Dann kan ich dir ein Printscreen des Modells zeigen.
Kannst Du - es gibt sogar eine Anleitung dazu hier im Forum (-->Forumssuche "bilder anfügen").

Grüße
Biber
Bitte warten ..
Mitglied: Valume91
31.03.2009 um 16:52 Uhr
So Bild ist drauf!
Hoffe das hilft dir weiter.
Ich mache Feierabend für Heute, wir sehen uns morgen. ;)

Ab in den FS (Feierabendstau) ;)
Bitte warten ..
Mitglied: Valume91
01.04.2009 um 09:00 Uhr
Bin selbst drauf gekommen.
Man musste noch in den Eigenschaften der Löschabfrage bei Ausführungsberechtigung auf "Besitzer" und bei Eindeutige Ergebnisse auf "Ja" umstellen.

Vielen Dank nochmals Biber, du bist echt der hammer! ;)

MfG

Valume
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
Access Datenbank wie am einfachsten Datensätze aufbereiten (5)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Neue Wissensbeiträge
Humor (lol)

Taschenrechner in IOS kaputt!

(6)

Information von Lochkartenstanzer zum Thema Humor (lol) ...

Sicherheit

Kanadischer Geheimdienst veröffentlicht erstmals Sicherheitssoftware

(3)

Information von BassFishFox zum Thema Sicherheit ...

Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows 7
Abbruch bei Brennvorgang (26)

Frage von Simulant zum Thema Windows 7 ...

Router & Routing
Externe IP von innen erreichbar machen (17)

Frage von Windows10Gegner zum Thema Router & Routing ...

Firewall
WIndows 7 RDP Massen Angriff (17)

Frage von Motte990 zum Thema Firewall ...

Windows Server
Vhdx-Datei viel größer als Inhalt der Festplatte - wie schrumpfen? (15)

Frage von Winfried-HH zum Thema Windows Server ...