Probleem tussen tabel en query

Status
Niet open voor verdere reacties.

verovsl

Gebruiker
Lid geworden
30 jan 2009
Berichten
34
Uit de office_adress_list wordt een de query Algemeen Overzicht gemaakt. Bij het invullen van het formulier Dossiergegevens wordt de tabel office_adress_list bijgewerkt doch de query Algemeen Overzicht wordt niet bijgewerkt, er wordt slechts 1 record weergegeven. Ik heb deze query nodig daar ik vandaar uit in Word mijn document ga samenvoegen.
 
Omdat het een 2007 db is, kan ik er pas vanavond naar kijken.
 
Ik snap het probleem niet helemaal; als ik de query bekijk, dan zakt mij gelijk alle moed in de schoenen; hij zit wel èrg ingewikkeld in elkaar....
Enniewee, als ik hem uitvoer, dan krijg ik twee records te zien, die, als ik ze veld voor veld vergelijk, identiek zijn. Dat lijkt in mijn ogen niet te kloppen, dus daarom heb ik de SQL een beetje aangepast, en er SELECT DISTINCT van gemaakt. Hiermee worden dubbele rijen geweerd. En sjur innof, er blijft nog één record over.
Als ik vervolgens op het formulier het gemeente dossier verander naar bijv. Kobbegem, en de query opnieuw draai, dan zie ik nu twee gemeentes: De originele gemeente (Koekelaere) en de vers gekozen, Kobbegem.
Mij lijkt dit niet helemaal correct. Waar dit probleem zit? Ergens in een query-link....
 
het is zo als ik via het formulier een record toevoeg dat deze record slechts toegevoegd wordt in de query algemeen overzicht als alle velden ingevuld worden. Indien niet alle velden ingevuld worden in het formulier verschijnt dit record wel in de tabel office_adress_list maar niet in mijn query. In de query staat er nochtans nergens een criteria ingevuld of is dit het probleem ?
 
Het begint langzaam te dagen....
Als je gegevens invult m.b.v. een formulier, dan komen die gegevens altijd in de onderliggende bron van dat formulier terecht. Meestal is die Recordbron van het formulier een tabel, of een query gebaseerd op één tabel. In jouw geval dient de tabel [office_adress_list] als bron voor het formulier.
In een query kun je verschillende tabellen aan elkaar knopen (hoef ik je niks over uit te leggen ;) ) Standaard laat een query alleen records zien die in alle gekoppelde tabellen voorkomen. Dus, als je een tabel hebt met 30 klanten, en een tabel met 20 orders van 12 klanten, dan zie je, als je de tabel Orders koppelt aan de tabel Klanten, slechts 20 records terug, namelijk de 20 orders van de 12 klanten. In db-termen heet dat een Inner Join.
Wil je een overzicht van alle klanten, met de bijbehorende orders, dus ook de klanten die nog geen orders hebben geplaatst, dan moet je de relatie (in de query) tussen de tabel klanten en de tabel orders aanpassen. In dit geval moet je de relatie zodanig aanpassen, dat je Alle records ziet uit de tabel klanten, en alle gerelateerde records uit de tabel Orders. In db-taal: je gebruikt nu een Outer join.
Het resultaat zal nu zijn, dat je (pak 'm beet) 34 records zult zien, want in mijn voorbeeld zitten klanten met meer dan één order. (12 klanten - 20 orders).

Nu dus weer terug naar jouw situatie: het feit dat je query het nieuwe record niet laat zien, betekent dus dat je wel een record hebt gemaakt in de tabel [office_adress_list], maar dat de query ook een record nodig heeft in (een) andere tabel(en). Omdat je met het formulier maar één tabel tegelijk kunt vullen, zit daar je probleem.
Je zult dus eerst moeten kijken welke tabel in de query ingevuld moet zijn, en die vullen.
Of, alternatief, de relatie tussen de tabel [office_adress_list] en de gekoppelde tabel aanpassen.
 
Bedankt. Ik heb inderdaad gebruik moeten maken van outerjoin.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan