Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Abfrage Left Join löscht aus falscher Tabelle
zurück: Archivfunktion als Suchformular; Doppelte Datensätze filtern weiter: Datenaufbereitung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
ggh
Gast


Verfasst am:
15. Jan 2007, 11:18
Rufname:

Abfrage Left Join löscht aus falscher Tabelle - Abfrage Left Join löscht aus falscher Tabelle

Nach oben
       Version: Office XP (2002)

Hallo,

Folgende Frage:
Ich habe eine Auswahlabfrage die 2 Tabellen über einen kombinierten Schlüssel (Type und Deal_Number) mit einem Left Join verknüpft:
Code:
SELECT M.Type, M.Deal_Number, M.MargeEUR, B.Produktfamilie
FROM   tbl_401_Deals_Margen AS M
       LEFT JOIN tbl_010_Dealbasis AS B
       ON  (M.Type = B.Type)
       AND (M.Deal_Number = B.Deal_Number);
Type und Deal_Number sind in tbl_401 als kombinierter Schlüssel definiert, nicht jedoch in tbl_010_Dealbasis.

Bei der Abfrage habe ich noch die Möglichkeit Datensätze zu bearbeiten, löschen und hinzufügen. So weit so gut, aber sobald ich eine Zeile lösche wird nicht wie erwartet die Zeile in der tbl_401, sondern in der tbl_010 gelöscht!!! Warum konnte ich bisher nicht rausfinden. Wie kann ich das Verhalten der Auswahlabfrage beim Löschen beeinflussen, dh. wie kann ich einstellen, aus welcher Tabelle die Datensätze gelöscht werden.

Hintergrund: Allen Deals, die in tbl_010 sind soll in tbl_401 händisch eine Marge zuordbar sein, das passiert aber nur für wenige (tbl_010 beinhaltet ca. 25.000 Deals, tbl_401 jedoch nur ca. 70). Nun hab ich ein Formular, das auf oben dargestellter Abfrage basiert, sodass der Benutzer die händisch erfassten Margen pro Deal bearbeiten kann. Um ihm im Formular bei der Dealauswahl mehr als Type und Deal_Number als Information anzeigen zu können, habe ich die Abfrage, die zusätzlich mehrere Info-Felder des Deals aus tbl_010 ausgibt (hier zB Produktfamilie). In Wahrheit soll aber mit diesem Formular nur die Tabelle 401 bearbeitet werden, und die Werte aus tbl_010 dienen nur der Information.

PS.: Wenn ich Datensätze lösche, werden nur Zeilen aus tbl_010 gelöscht, die Datensätze in tbl_401 bleiben aber unberührt. Setze ich in tbl_010 allerdings auch einen kombinierten Schlüssel, so werden die Datensätze in beiden Tabellen gelöscht.
faßnacht(IT);
www.Office-Loesung.de Administrator


Verfasst am:
16. Jan 2007, 02:31
Rufname: Peter


AW: Abfrage Left Join löscht aus falscher Tabelle - AW: Abfrage Left Join löscht aus falscher Tabelle

Nach oben
       Version: Office XP (2002)

Hallo Smile

In einer Abfrage mit 1:n-Beziehungen wird nur auf der "n-Seite" gelöscht. Das ist auch gut und richtig so, weil sonst andere Datensätze auf der "n-Seite" ihren in Beziehung stehenden Datensatz verlieren würden.

Möglicherweise hilft Dir eine Löschabfrage weiter.
Viele Grüße
Peter
Gast



Verfasst am:
17. Jan 2007, 10:35
Rufname:

AW: Abfrage Left Join löscht aus falscher Tabelle - AW: Abfrage Left Join löscht aus falscher Tabelle

Nach oben
       Version: Office XP (2002)

Hi,

Sorry, das hab ich nicht reingeschrieben, ich hab in der mdb keine einzige Beziehung definiert.
Wie macht ihr das, wenn ein Benutzer ein Formular haben soll, mit dem er eine Tabelle bearbeiten können soll(hier tbl_401). Die Tabelle, die er bearbeitet beinhaltet aber nur die ID (hier die die ID des Deals). Weitere Informationen zum Deal(hier zB Produktfamilie) sind in der tbl_401 natürlich nicht gespeichert (wg. diversen Normalformen), sondern nur in der tbl_010 vorhanden. Die Information zum Deal aus der tbl_010 möchte ich dem Benutzer aber beim Bearbeiten der tbl_401 anzeigen können -er soll zB auch nach diesen im Formular sortieren können(Das mache ich mit einem Textfeld das die Eigenschaften "Aktiviert" und "Gesperrt" auf Ja gesetzt hat).
Wenn er allerdings Datensätze im Formular löscht - und somit Datensätze in der Abfrage, da das Formular auf der Abfrage basiert(Datenherkunft vom Formular ist die Abfrage), so möchte ich keinesfalls, dass die Zeilen aus der tbl_010 (die mit den Zusatzinfos zum Deal), sondern nur aus der tbl_401 gelöscht werden.

Dass das Löschverhalten allein von den gesetzten Schlüsseln abhängt, halte ich für sehr gefährlich, da ich prinzipiell gerne (wg. der Performance) Schlüssel richtig setze. Wenn ich hier allerdings in beiden Tabellen die Schlüssel setze, so löscht Access beim Löschen von Datensätzen in der Abfrage die Deals(Zeilen) in beiden Tabellen!

Bisher hab ich mir auch mit einer Löschabfrage bzw. einem DoCmd.RunSQL "Delete From..." ausgeholfen. Allerdings musste ich dazu wieder einen eigenen Datensatz-Lösch-Knopf ausprogrammieren und vom Formular den Datensatzmarkierer auf Nein setzen, damit der User nicht mehr Datensätze in der Abfrage löschen kann.

Bisher hab ich nix gefunden, dass Access ein halbwegs vernünftiges Formular zum bearbeiten von Tabellen, die nicht alle Infos zu den Datensätzen beinhalten, bereitstellt

mfg
guenther
Willi Wipp
Moderator


Verfasst am:
01. Feb 2007, 14:49
Rufname:
Wohnort: Raum Wiesbaden


Re: Abfrage Left Join löscht aus falscher Tabelle - Re: Abfrage Left Join löscht aus falscher Tabelle

Nach oben
       Version: Office XP (2002)

Hi ggh,

eigentlich duerfte diese Abfrage nicht bearbeitbar sein.
Ausser Du haettest die Eigenschaft RecordsetType auf Dynaset (Inkonsistente Aktualisierungen) gesetzt.
Und da genau liegt dann auch das Problem.
Ich wuerde Dir ein Unterformular fuer die Darstellung der Daten aus der Tabelle tbl_010_Dealbasis empfehlen.
Das Hauptformular bassiert dann auf der Tabelle tbl_401_Deals_Margen.
Fuer eine saubere Loesung wuerde ich Dir allerdings die Einfuehrung von Primaerschluesseln
d.h. z.B. ID-Felder von Felddatentyp Autowert in den Tabellen empfehlen.
Das ID-Feld der Tabelle tbl_010_Dealbasis wird dann als Fremdschluessel
d.h. z.B. Feldatentyp Zahl (Long) in der Tabelle tbl_401_Deals_Margen gefuehrt.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage in Tabelle speichern? 6 foeny 12537 06. Jul 2012, 12:05
MissPh! Abfrage in Tabelle speichern?
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeige bei "ja/nein" Abfrage nicht korrekt 2 FWE 1288 12. Feb 2004, 14:10
FWE Anzeige bei "ja/nein" Abfrage nicht korrekt
Keine neuen Beiträge Access Tabellen & Abfragen: Suche Hilfe zu SQL (DAO 351 MS) - Abfrage 3 Berny_H 1005 04. Feb 2004, 11:41
borstel Suche Hilfe zu SQL (DAO 351 MS) - Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht 1 caro456 1832 27. Jan 2004, 20:03
Willi Wipp Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht
Keine neuen Beiträge Access Tabellen & Abfragen: Bestimmte Abfrage erstellen ... nur wie ? 1 studi 2219 22. Dez 2003, 20:51
reke Bestimmte Abfrage erstellen ... nur wie ?
Keine neuen Beiträge Access Tabellen & Abfragen: Wie lösch ich eine Tabelle? hat sich erledigt !!!! 5 Esdo 1180 12. Dez 2003, 17:32
Fedaykin Wie lösch ich eine Tabelle? hat sich erledigt !!!!
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, ob eine Abfrage ein Ergebnis hat 3 Esdo 3934 09. Dez 2003, 15:53
Fedaykin Abfrage, ob eine Abfrage ein Ergebnis hat
Keine neuen Beiträge Access Tabellen & Abfragen: Access 97 Abfrage Duplikate 9 gast 2419 02. Dez 2003, 14:39
Kay Access 97 Abfrage Duplikate
Keine neuen Beiträge Access Tabellen & Abfragen: Parameter abfrage 3 Gast 1903 01. Dez 2003, 16:12
Caladan Parameter abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage mit VBA 3 daMike 1729 26. Nov 2003, 17:58
daMike SQL Abfrage mit VBA
Keine neuen Beiträge Access Tabellen & Abfragen: WENN Formel in einer Abfrage in ACCESS (erledigt) 2 Roger Büttler 9608 19. Nov 2003, 23:20
Roger Büttler WENN Formel in einer Abfrage in ACCESS (erledigt)
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche Ergebnis einer Abfrage in anderer Form 2 Sieben 911 16. Nov 2003, 20:07
gast Brauche Ergebnis einer Abfrage in anderer Form
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks