Verwijder query

Status
Niet open voor verdere reacties.

Roland24

Gebruiker
Lid geworden
6 jul 2009
Berichten
45
Ik kom er weer niet helemaal uit:
In Access heb ik twee tabellen met de volgende velden:

Tabel 1:
Klantnummer
Volgnummer

Tabel 2:
Klantnummer
Adres
Postcode
Plaats

Nu heb ik een query gemaakt met beide tabellen en daarin gezet bij plaats Not Like ""
Dus hij laat dan alle klanten zien zonder Plaats

Deze wil ik vervolgens verwijderen uit Tabel 1
Als ik van de gemaakte query een verwijderquery maakt zegt hij dat de tabelnaam ontbreekt waaruit hij moet verwijderen. Wat doe ik verkeerd?
 
Zullen we de query moeten zien. Maar je moet bij een verwijderquey wel aangeven wat-ie moet verwijderen.
 
Knipsel.JPG

Dit is de query waarvan ik een verwijderquery wil maken, waarbij ik eigenlijk de eerste 3 kolommen vervolgens wil verwijderen uit de tabel 'Routepuntlijst Vol' waarop deze query ook is gebaseerd.

Ik heb een query gemaakt eerst omdat met Not Like "*" de lege velden uit de contactpersonen niet worden weergegeven.
 
Dat klopt! Er staat ook dat dit de query is waar ik een verwijderquery van wil maken.
 
Bedankt voor het meedenken, helaas heb ik er niet zoveel verstand van als u!

Maar ik heb dus een tabel die heet routepuntlijst. Daar heb ik een query op gebouwd die gerelateerd is aan nog een tabel, waarbij wanneer er geen plaats staat deze in de query getoond wordt, zodat deze verwijdert moeten worden uit de tabel.

Dit komt er dan tevoorschijn in de query:

Knipsel 1.JPG

Vervolgens wil ik juist deze data verwijderen uit de tabel. Ik heb het geprobeerd met deze verwijderquery, maar snap niet welke criteria ik er neer moet zetten. (Overigens bevat de query 2 tabellen om de lege plaatsen er tussenuit te halen)

Dit is dan de query:

Knipsel 2.JPG

Wat doe ik fout?
 
Een verwijderquery gooit records weg. Meestal geef je het sterretje als veld op, al maakt het toch niet uit welk veld je kiest. In ieder geval moet de verwijderquery één kolom hebben waar de naam van je tabel staat waaruit je wilt verwijderen (dat kan dus nooit je verzamelquery zijn) en dus het asterix veld waar je in de regel <Verwijderen:> dan de optie <Van> kiest.
 
De verwijder query bevat nu de tabel waar het uit verwijdert moet worden. Hij moet alleen die records verwijderen die in query worden getoond (dus woonplaats is leeg). Moet dat dan in de criteria?

DELETE *
FROM [Routepuntlijst vol];
WHERE ???????

Want anders verwijdert hij alle records uit de tabel

Blijft lastig! Ik heb nog een verwijderquery die wel werkt maar die doet het op basis van een veldwaarde in een formule.

[Raad me een cursus aan ;-) ]
 
Cursus? Kijk eens in de Handleidingen sectie :).
Ik weet niet of jouw verwijderquery gaat werken, omdat je een Outer join hebt in die query. Maar in beginsel werkt het op dezelfde manier. Dus omzetten van je selectiequery naar een verwijderquery en een veld (*) uit de juiste tabel gebruiken als <Van>. Maar goede kans dat je query dan niet werkt vanwege de Outer Join.
 
Dus ik begrijp nu goed dat ik uit een tabel geen gegevens kan verwijderen wanneer de gewenste gegevens worden bepaald op basis van een query met een criterium gebaseerd op een andere tabel?
 
Dat kan in beginsel wel, maar of dat lukt hangt een beetje van je onderliggende tabellen af. Normaal gesproken kun je uit één tabel records verwijderen op basis van een criterium. Het wordt problematischer als je 2 tabellen gebruikt in de verwijderquery en dan met name als het resultaat van de query verandert door de actie. Dus als je een link hebt in een query die moet worden bijgewerkt bij het verwijderen tijdens het verwijderen, dan zal de verwijderquery niet werken. De simpelste manier is overigens om dat gewoon uit te proberen. Je hebt immers de selectiequery al die de gewenste records selecteert; je hoeft 'm alleen maar om te zetten naar een verwijderquery, het goede veld erbij te zetten en 'm uit te voeren. Ik had eigenlijk verwacht dat je dat al ondertussen had uitgeprobeerd :).
 
De query omzetten naar een verwijderquery had ik al geprobeerd. Dat doet hij inderdaad niet. Heb het nu via een oneerbiedige omweg voor elkaar gekregen!
 
OctaFish, jij had volkomen gelijk dat een verwijderquery niet zou lukken in verband met de Outer Join.

Wat wel lukt is een bewerkquery. Ik laat de query bewerken en maak het volgnummer leeg. Vervolgens kan ik wel rechtstreeks op de tabel een verwijderquery maken van alle volgnummers die leeg zijn.
 
Dit is niet echt oneerbiedig, maar een redelijk legitieme oplossing :).
Wat je nog zou kunnen proberen, is de query baseren op één tabel en een criterium maken op het koppelveld. Je wilt dan filteren op alle waarden die niet in de tweede tabel staan. Je krijgt dan iets als: Not In(Select [Veld] From Tabel Where etc.).
Je filtert hiermee de ontbrekende records, en dan werkt de verwijderquery wél.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan