UPDATE query voor meerdere velden gebaseerd op meerdere criteria

  • Onderwerp starter Onderwerp starter Jors
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Jors

Gebruiker
Lid geworden
1 okt 2006
Berichten
142
Hallo,

allereerst excuus als deze vraag al eens voorbij gekomen is. Ik heb me rot gezocht, maar kon het antwoord op deze vraag nergens vinden.

Mijn vraag is de volgende; ik heb een tabel met actuele persoonsgegevens (table1). Deze tabel wil ik updaten aan de hand van gegevens die ik later toegestuurd krijg (table2), maar alleen als de gegevens in table1 nog niet ingevoerd zijn.

Zo wil ik bijv een update query waarbij Table1.Naam = Table2.Naam als Table1.Naam Is Null, Table1.Gbdatum = Table2.Gbdatum als Table1.Gbdatum Is Null etc.

Ik heb al meerdere mogelijkheden geprobeerd en 1 Veld vullen als deze nog leeg is lukt natuurlijk wel, maar als ik bijv doe

Code:
UPDATE Table1 INNER JOIN Table3 ON Table1.ID = Table3.ID SET Table1.Naam = [table3].[Naam], Table1.Gbdatum = [table3].[Gbdatum]
WHERE (((Table1.Naam) Is Null)) OR (((Table1.Gbdatum) Is Null));

Dan update hij zowel Naam als Gbdatum als een van de twee velden leeg is. Dat is dus niet de bedoeling; soms moeten beiden velden geupdate worden, soms alleen [naam] en soms alleen [gbdatum], afhankelijk van welke gegevens ontbreken. Ik hoop dat hiervoor een eenvoudige oplossing is, zodat ik mijn update queries overzichtelijk kan houden, en makkelijk kan aanpassen indien nodig..

Bvd voor de hulp!
 
Het resultaat dat je krijgt is niet meer dan logisch, als je een criterium met OR maakt. Met AND maak je de situatie overigens alleen maar erger. Hou het simpel, en maak er 2 queries van. De criteriavoorwaarden zijn zo niet te combineren.
 
Ok dat is jammer. Het betreft in totaal namelijk een stuk of 20 variabelen, dus dat worden 20 aparte queries.
 
Dan zou ik het toch heel anders doen, en geen enkele query opslaan. En een formulier maken dat alles netjes automatiseert, en de SQL zelf opbouwt. Werkt het best als in beide tabellen de veldnamen hetzelfde zijn, anders is het nog een beetje lastig.
 
Dat klinkt inderdaad als een gedegen plan, alleen denk ik dat dat mijn kennis te boven gaat op dit moment. Ik zal het in ieder geval in mijn achterhoofd houden voor in de toekomst! Bedankt iig!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan