Verwijderquery

Status
Niet open voor verdere reacties.

Japsur

Gebruiker
Lid geworden
9 apr 2004
Berichten
650
Hallo,

Ik heb een vraagje. Zit met een verwijderquery probleem. Ik heb een verwijderquery gebouwd, die aan de hand van een criteria bepaalde waarden uit een tabel moet verwijderen. Maar wannneer ik dan deze query wil uitvoeren, geeft hij aan dat hij het niet kan uitvoeren: " Couldn't delete from speficied tables".
Wat doe ik verkeerd?
Alvast bedankt.
 
Zonder je query en je datamodel is het moeilijk hier een antwoord op te geven. Waarschijnlijk zijn er gerelateerde tabellen waardoor je de query niet kan uitvoeren.
Post je mdb even, dan is het probleem waarschijnlijk zo gevonden en opgelost.
 
Het kostte mij moeite om hem onder de 100 kb te krijgen. Het gaat om de verwijderquery ' inschrijvingen wissen'.
Alvast bedankt.
 

Bijlagen

Laatst bewerkt:
Dit zal beter werken:

DELETE Inschrijvingen.*, DatePart("q",[Wedstrijddatum]) AS Kwartaal
FROM Inschrijvingen
WHERE (((DatePart("q",[Wedstrijddatum]))=[Forms]![Kwartalen]![Kwartalen]));
 
Ok, snap ik.
Maar hij werkt bij mij niet correct. Een extra moeilijkheidje is dat de wedstrijddatum een gekozen item is. Dus wat hij nu doet is dat hij alle data in kwartaal in gooit. Hij pakt nu het ID nummer van de wedstrijddatum ipv de datum zelf. Is er een mogelijkheid om toch te koppelen met de verschillende tabellen?
Als het goed is, moet het 1e record in kwartaal 1 staan en het 2e record in kwartaal 3. (een check dat het werkt).
 
Verwijderqueries over meerdere tabellen geven vaak problemen omdat de koppelingen tussen de verschillende tabellen het verwijderen van gegevens tegen gaan.
Probeer eens stap voor stap uit te leggen wat je nu precies wilt, het is me nu in ieder geval niet helemaal duidelijk meer.
Je originele verwijderquery werkte op een combinatie van een tabel en query, dat maakt het er niet overzichtelijker op.
Het is een goede gewoonte om verwijderqueries alleen op tabellen te laten werken en niet op een combinatie van tabellen en queries.
 
Ok, dat is duidelijk voor mij.

Het probleem zit hem bij de tabel inschrijvingen denk ik dan. Als je daar op wedstrijddatum klikt, zie je een keuzelijst. Vervolgens bij relaties is dit veld gerelateerd aan wedstrijdID (geen datum).
Daarom kiest hij met de vorm die je mij gaf (SQL) alles in kwartaal 1 omdat hij geen datum ziet zeg maar in de query "inschrijvingen wissen".

Wat ik probeer te bereiken is het volgende:
Ik wil aan de hand van een kwartaal data verwijderen. Wil ik alles uit kwartaal 1 verwijderen dan moet de verwijderquery eerst alle data die binnen kwartaal 1 selecteren (dus aan de hand van de datum) en vervolgens uit de tabel verwijderen. Dit geldt dus ook voor de andere 3 kwartalen.
ik hoop dat het nu ietsjes duidelijker is geworden..
 
Oeps, ik had niet in de gaten dat er een aparte tabel wedstrijddata was en dat het veld wedstrijddatum in tabel inschrijvingen geen datumveld is, maar een verwijzing naar die andere tabel.
Deze query werkt wel goed:

DELETE Inschrijvingen.*, Inschrijvingen.Wedstrijddatum
FROM Inschrijvingen
WHERE (((Inschrijvingen.Wedstrijddatum) In (SELECT WedstrijdID FROM Wedstrijddata WHERE DatePart("q",[Wedstrijddata].[Wedstrijddatum])=[Forms]![Kwartalen]![Kwartalen])));
 
Bartuls, bedankt, dit is exact wat ik zocht. Dit kan ook eenvoudig op meerdere van gelijksoortige queries uitvoeren. Top!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan