Sorry. Ich weiß das das eigentlich nicht das richtige Forum hierfür ist aber da mir keiner in den Access Froen helfen will(hat zumindestens den Anschein). Dachte ich mir ich frag euch mal. Kann mir jemand mal eine Beschreibung machen mit oder ohne Quelltext wie man unterabfragen im Abfragenmodus bei Access erstellt. Also zwei SQL Befehle in einer Abfrage Z.B: 1.Anweisung: Select...... 2.Anweisung: Delete...... Und das in einer Abfrage -- Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
Hi! Also normalerweise werden Unterabfragen eingeklammert DELETE ... (SELECT XY) Aber du kannst bei DELETE, wenn es dein Anwedungsfall erlaubt, auch angeben, was genau gelöscht werden soll. z.B.: DELETE FROM tbltest WHERE kunde ~* 'mustermann';
mfg -- Dieser Post wurde am 08.12.2003 um 10:55 Uhr von mike editiert.
1. Tabelle: Bezeichnung: Auto AutoNr->Primary Key Kennzeichen TypNr->Fremdschlüssel FarbNr->Fremdschlüssel Tagespreis Anzahl Türen 2.Tabelle: Bezeichnung: Typ TypNr->Primary Key Typ 3.Tabelle: Bezeichnung: Farbe FarbNr->Primary Key Farbe
Aufgabe: Löschen aller Datensätze aus Tabelle Auto welche einen Tagespreis unter 20 haben, orange sind und vom Typ Mittelklassewagen
Außerdem: Löschen des Attributes Anzahl Türen, löschen der Farbe
Das muss ich realisieren und dazu brauch ich ein paar Hilfen wäre nett wenn du mir das mit Quelltext geben könntest -- Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
Hi! Bin mir jetzt net ganz so sicher, aber probier mal DELETE from auto WHERE tagespreis < 20 AND typnr = (SELECT typnr FROM tbltyp WHERE typ = 'Mittelklassewagen') AND farbnr = (SELECT farbnr FROM tblfrabe WHERE farbe = 'orange'); Sonst kannst du nur mehr joins verwenden - keine AHnung ob das MS Access kann
Ich habe das jetzt so probiert also es funzt auch. Nun habe ich aber noch folgendes Problem. er fragt mich jetzt immer nach der TypNr und der FarbNr.
Also ich weiß das ich die Tabellen noch verknüpfen muss, das habe ich auch schon erledigt. und auserdem muss ich diese noch aufrufen damit ermich das nicht mehr fragt. Bloss wie?? Vielleich so: DELETE * FROM tbl_auto (SELECT tbl_Typ.Typ,tbl_Farbe.Farbe FROM tblTyp,tbl_Farbe)???????????????????????????
Hi! Ich habs gerade ausprobiert. Bei mir hats funktioniert. Er hat mich nur nach Werten gefragt, wenn ich im SQL Statement was falsch geschrieben hab. Bsp.: SQL Statment -> WHERE TypNr = .... tbltyp -> typnr
Also auf Groß- und Kleinschreibung und vorallem auf die Syntax achten. Dann müsste es eigentlich gehen.
Sag mal hast du das genauso eingegeben wie dun es oben geschrieben hast???
Wenn ja dann funzt es bei mir nicht. Also er fragt mich immer nach tbl_Typ.TypNr und nach tbl_Farbe.FarbNr.
Also keine Ahnung, hast du noch was anderes gemacht. also so sieht mein Quelltext aus:
Code:
DELETE from tbl_auto WHERE tbl_auto.Tagespreis < 20 AND tbl_Typ.TypNr = (SELECT tbl_Typ.TypNr FROM tbl_Typ WHERE tbl_Typ.Typ = 'Mittelklassewagen') AND tbl_Farbe.FarbNr = (SELECT tbl_Farbe.FarbNr FROM tbl_Farbe WHERE tbl_Farbe.Farbe = 'orange');