Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Beste Lezer,

ik ben een database aan het maken, waarbij het zoekscherm gebruik maakt van een complexe query. De database is een productendatabase. Ieder product heeft zo zijn naam, groep etc. Maar in ieder product zitten bepaalde stoffen, additieven genoemd. Nu is het ook zo dat ieder additief weer in een ander product kan zitten. Een veel op veel relatie dus (zie bijlage relaties.jpg).

Nu is het zo dat in het formulier gezocht moet kunnen worden op alle eigenschappen van het product. Alles werkt goed, behalve de additieven. Ik kan de additieven wel werkend krijgen, maar dan krijg ik dubbele records (zie bijlage formulier.jpg). CT#, ProductCode en Sample# samen zijn de sleutel, die moeten uniek blijven, nadat de gebruiker gezocht heeft op de producten. De additieven hoeven niet direct in de selectiequery getoond te worden, maar moeten wel gebruikt worden om op te selecteren. Waar de additieven wel getoond kunnen worden is bijvoorbeeld in een subquery.

Heeft iemand een idee hoe ik dit aan ga pakken?

Ik heb het geprobeerd met Left/Right joins, met unieke records/value's optie. Allen tevergeefs.

Het zou mij zo enorm helpen als iemand hier een antwoord op had. Ik ben er al best wel lang mee bezig, zonder enige progressie. Mijn kennis over Access is niet groot genoeg om dit op te lossen.

Als er meer informatie nodig is van de database kan ik dit zeker geven.

Alvast heel erg bedankt!

post-19366-1417704018,7153_thumb.jpg

post-19366-1417704018,7435_thumb.jpg

Geplaatst:

Relatie tblTest en TblSolution

Je geeft maar liefst 3 relatie en dat kan niet in qeury.

Relatie CT# met CT# is voldoende.

tblTest weet dat er ook een relatie is met productcode.

Draai aditieven eens om.

Daarbij is uw databasemodel verkeerd.

3 unieke sleutel vindt je ook op de andere tabel en dat kan geen uniek zijn.

Geplaatst:

Hartelijk dank voor je reactie!

Echter ik denk niet dat de sleutel het probleem is. Het is namelijk ook zo dat een CT# meerdere keren voor moet kunnen komen in tblTest, want een CT# bevat meerdere productcodes en ieder product meerdere samples. Nu kan dit ook opgelost worden met een autonummer, maar dan stuit ik op dezelfde problemen als in mijn eerste bericht.

In tblSolution maken 4 velden deel uit van de sleutel. Dit komt omdat er naast CT#, productcode en sample er nog een ander veld mee doet. En dat is het additief. Ieder sample kan namelijk meerdere additieven bevatten.

Maar als ik met een compleet andere tabelopbouw mijn probleem zou kunnen verhelpen dan vind ik dat ook goed uiteraard. Maar op dit moment zou ik niet weten hoe ik dat ga doen.

Misschien dat je me een beetje op weg kunt helpen?

Geplaatst:

Het zou zo beter zijn:

Bij tblTest

Verwijderen Sample

Bij tblSolution

verwijderen CT

verwijderen ProductCode

Relatie

TblSoltution relatie met procductcode in TblTest

Nu hebt je overal maar slechts 1 relatie en toch weet access hoe mee omgaan.

Maak wel eerst een backup of nog beter gezegd zet de backup op usb-stick en haalt de usb-stick eruit zodat je geen vergissing kan maken.

Geplaatst:

Dank je voor je antwoord.

Ik zou de relaties inderdaad op die manier kunnen veranderen, maar dan krijg ik dubbele sleutels, aangezien in tblTest iedere test (ct) meerdere producten heeft en van ieder product meerdere monsters (samples) genomen wordt. Als ik sample weg zou halen kan er nog maar 1 sample per product ingevoerd worden, terwijl dit er wel 20 moeten kunnen zijn. Enig idee hoe ik van dat probleem af zou kunnen komen?

Laat staan het feit dat ieder sample ook weer verschillende toegevoegde stoffen heeft (additieven).

Geplaatst: (aangepast)

Ik weet niet hoe uw model in mekaar zit maar je dient wel zo te bekijken.

Hoofdtabel

C# = uniek sleutel

Nu Sample

Als Sample uit vele record bestaat ten opzicht van de hoofdtabel (kan ook subtabel zijn) dan dient je een aparte tabel te maken.

Dus zou het zo moeten zijn:

Tabel Sample

C#

Sample

Dan maakt je een hoofdtabelformulier

In dat formulier maakt je een subformulier Sample

C# wordt automatisch ingevuld door de relatie.

Sample kan je op automatisch zetten en dan wordt het ook automatisch ingevuld.

In access kan je met meerdere subformulieren werken.

Opvragen kan je in query gemakelijk doen met vele tabellen.

Je kan dus subformulier maken om 1 record toe te voegen of meerdere record toe te voegen.

Je kan ook losstaande subformulier maken.

Maar dat is iets ingewikkelder.

In bijlage ziet je een losstaande formulier.

Maar je kan ook met tabformulieren werken.

post-6829-1417704026,3099_thumb.jpg

aangepast door stegisoft
  • 3 weken later...
Geplaatst:

Bedankt voor je hulp, echter het heeft mij helaas niet verder geholpen.

sample kan geen autonummering zijn, omdat in de praktijk samples een nummer gegeven wordt. Er zullen dus al snel dubbele samples zijn, omdat er nu eenmaal meerdere producten gebruikt worden per challenge test. En bij ieder product is het zo dat deze dezelfde sample nummers kunnen krijgen. bv:

CT#: 25

Product: ABCA1

Samples: 1, 2, 3, 4 en 5

Product: ABCA2

Samples: 1, 2, 3, 4, en 5

Dus ik zal het proberen op te lossen door de SQL aan te passen.

Toch hartelijk bedankt voor al je moeite!

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.