query toont niet alle gegevens

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Situatie:

1 hoofdtabel met gegevens patiënt
Meerdere neventabellen gekoppeld door sleutelwaarde

Hoofdtabel bevat:
- sleutelwaarde, achternaam, voornaam, geboortedatum, geslacht, opleidingsniveau

Bijtabel bevat:
- sleutelwaarde, diagnosedatum, type ziekte


Formulier gebaseerd op query die filtert op type ziekte:
Er zijn pakweg 40 patiënten die al opgelijst staan.

Query ziet er als volgt uit:
Code:
SELECT GegevensIBD.[Type IBD]
FROM GegevensPatienten INNER JOIN GegevensIBD ON GegevensPatienten.[Unieke Code] = GegevensIBD.[Unieke code]
GROUP BY GegevensIBD.[Type IBD]
HAVING (((GegevensIBD.[Type IBD]) Like [forms]![F_Zoeken].[zoekIBD] & "*"));

Er zijn 3 patiënten die niet in de lijst getoond worden. Er is tussen die 3 patiënten geen enkel verband. Ze zijn op exact dezelfde manier ingegeven als de patiënten die wél getoond worden…

Iemand hier een verklaring voor?

Bedankt!
 
Je hebt een Inner Join query gemaakt, waarbij gegevens worden getoond die in beide tabellen staan. Je ziet dus alleen patiënten waarvoor je minstens één record hebt in Gegevens. Ik vermoed dat je voor de 3 patiënten die je nu niet ziet geen gegevens hebt in die tabel. En dat is dus het verband tussen de drie. Zo zie je maar: geen verband is ook een verband ;)
Oplossing is dus de relatie aan te passen. Klik in het Queryontwerpscherm op de lijn tussen de twee tabellen, en kies optie 2 of 3. Welke je moet hebben, is degene die aangeeft dat je daarmee alle records uit Patientgegevens te zien krijgt.
 
Beste

bedankt voor de reactie, maar helaas...
Er staan om te beginnen gegevens in de beide tabellen, en na het aanpassen van de relaties, nog steeds geen weergave in formulier ....
 
Wat heb je precies aangepast? En zeg je dat alle patiënten een of meer records hebben in Gegevens? Dus als je de query zelfstandig draait, zie je ook daadwerkelijk alle patiënten? Want dat zou dan het resultaat moeten zijn. En heeft elke paiënt dezelfde zoekIBD? Volgende vraag: is [F_Zoeken].[zoekIBD] een tekstveld, of een keuzelijst? Als het een tekstveld is, zoek je nu naar (een deel van de) code die aan het begin van het veld moet staan. Is het een keuzelijst, dan heeft deze constructie (Like [forms]![F_Zoeken].[zoekIBD] & "*")) al helemaal geen functie, dan kun je net zo goed (GegevensIBD.[Type IBD] = [forms]![F_Zoeken].[zoekIBD]) gebruiken.
 
Beste Octafish

bedankt voor je reactie en mijn excuses voor mijn laat antwoord. Ik had een blessure aan mijn pols opgelopen waardoor computer echt niet voor mij was weggelegd, maar hier ben ik terug.

Die [zoekIBD] is een keuzeveld. Ze hebben in het keuzeveld 2 opties, laten we zeggen optie1 en optie2. De bedoeling is echter dat als ze dit veld leeg laten, ze zowel optie1 als optie2 te zien krijgen. Is het misschien beter dat ik in het keuzeveld 3 opties maak waarbij optie3 de combinatie van de 2 vertegenwoordigt?

Dank,

Tamara
 
Hoe ziet je query er nu uit?
 
SELECT GegevensIBD.[Type IBD]
FROM GegevensIBD
GROUP BY GegevensIBD.[Type IBD]
HAVING (((GegevensIBD.[Type IBD]) Like [forms]![F_Zoeken].[zoekIBD] & "*"));
 
Die is wat simpeler dan de eerste variant :) Ik heb jouw query in een testje gegooid, en de code letterlijk overgenomen, en hij doet het op zich prima. Is bij jou ZoekIBD misschien een getal?
 
neen, geen getal.
het is een leeg veld (vandaar de "*") of wel staat er tekst...
 
Ondertussen heb ik nog wat zitten uitdokteren hoe het komt dat er bepaalde records niet zichtbaar zijn.

ik denk dat ik ongeveer gevonden heb waarom dat ze er niet instaan, al zie ik het verband niet goed. Ik ga eens even kijken als ik het opgelost krijg.

Alvast bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan