Naam i.p.v. NaamId

Status
Niet open voor verdere reacties.

a3er

Gebruiker
Lid geworden
1 feb 2010
Berichten
32
Ik heb een recepten database met onder andere een tabel Bron en een tabel Recepten.
De bron geeft bijvoorbeeld aan voor welk soort dieet een gerecht geschikt is. De tabel Bron bestaat uit twee velden BronId en Bron (omschrijving).

In de tabel Recepten onder ander een veld Bron en als opzoekveld SELECT [tbBronnen].[BronId], [tbBronnen].[Bron] FROM [tbBronnen] ORDER BY [Bron]
Afhankelijke kolom 1, twee kolommen.
In een rapport op basis van een query wordt dan ook keurig de naam van de bron vermeld.

Nu heb ik in de tabel Recepten het veld Bron gewijzigd in Meerdere waarden toegestaan. Die worden ook netjes opgeslagen.
Nu wordt in het rapport niet meer de naam van de bron weergegeven, maar BronId.

Hoe krijg ik de naam in het rapport? Ben al bezig geweest van afhankelijke kolom, maar dat gaf geen oplossing.
 
Laatst bewerkt:
In de tabel Recepten onder ander een veld Bron en als opzoekveld SELECT [tbBronnen].[BronId], [tbBronnen].[Bron] FROM [tbBronnen] ORDER BY [Bron]
Ik krijg altijd kromme tenen als ik dit soort zinnen lees... In mijn opinie horen in een tabel geen keuzelijsten thuis. De reden? Ach, die geef je zelf al aan. Zou je op een 'normale' manier de tabel maken (althans: wat ik normaal vind) dan zou je deze vraag nooit stellen. Want dan had je dit probleem niet.
Overigens hebben we het dan nog niet eens over het feit dat je het gewone veld hebt vervangen door een veld met meerdere waarden; persoonlijk vind ik dat een nog groter probleem dan het eerste. Maar laten we daar eens mee beginnen, dan snap je wat je in mijn ogen fout doet.

Een tabel gebruik je om waarden op te slaan. Dat kan tekst zijn (een bron, een ingrediënt) of een getal (BronID bijvoorbeeld). In die tabel wil je te allen tijde kunnen zien wát er letterlijk is opgeslagen. Dus als ik een veld BronID heb die de bronID's uit de tabel Bron koppelt, dan wil ik ook die BronID zien. En niet de omschrijvingj Bron. Want die is niet opgeslagen in de tabel. Moet je ook niet willen trouwens.
Dat je in je rapport de tekst nog wel zag in eerste instantie, komt omdat het rapport de eigenschap van de keuzelijst uit de tabel heeft overgenomen. En dat kan nog nét, in mijn ogen dan. Ook in een rapport wil ik eigenlijk alleen maar tekstvelden zien. Op een formulier gebruik ik dus juist wél keuzelijsten, en wel op de manier zoals jij hem ook gemaakt hebt.
Hoe krijg je dan de tekst uit de tabel te zien in je rapport? Simpel: koppel de tabel [Bron] in een query aan de tabel [Recepten] (op basis van [BronID]) en gebruik uit de tabel het veld [Omschrijving] i.p.v. [BronID]. Probleem opgelost.

Maar jij hebt dus een ander veld gebruikt, met meervoudige waarden. Je zult daar wel van terugkomen, want het haalt meer ellende op de hals dan dat het voordelen biedt, maar tot je tot dat verrijkte inzicht bent gekomen, moet je een paar dingen weten van zo'n multi-value veld.
1. Zo'n veld kun je nooit exporteren naar een andere database, of in een samenvoegbestand o.i.d. gebruiken. Het is uniek voor Access
2. Als je het veld in een query gebruikt, krijg je alle geselecteerde waarden in één veld te zien. Niet-genormaliseerde informatie dus.
3. Het veld heeft een aanvullende eigenschap: Value. En die heb je nodig als je de tabel wilt omzetten naar een 'normale queryview, waarbij je alle unieke records los ziet.

Waarschijnlijk wil je de multi-gegevens in één veld zien, anders zou je het zo niet maken. Dat je het ID ziet, en niet de naam, is omdat de eerste kolom zichtbaar is. Als je in het rapport daar de breedte op 0cm zet, komt het wel weer goed.
 
Bedankt voor je snelle en uitgebreide antwoord. Zal zeker de tabellen aan gaan passen.
Het rapport is overigens gebaseerd op een query gemaakt zoals je aangeeft. Tabel Bron gekoppeld aan tabel Recepten etc.
Ik kan in het rapport niet vinden waar ik de breedte op 0cm kan zetten. In het formulier waarmee ik de gegevens vul zie ik die mogelijkheid wel en daar staat de eerste kolom inderdaad op 0 cm
Op zich werkt de query goed, ik geef aan welke bron ik wil hebben en het rapport geeft dit ook weer, alleen dus het id ipv de naam.

Een veld met meervoudige waarden vond ik zo makkelijk omdat je een aantal mogelijkheden tegelijk kan invoeren.
Hoe zou je dit beter/anders kunnen oplossen? Ik hoef niet persé de multi gegevens in een veld te zien. Als ik maar een manier heb om bij een recept meerdere bronnen in te kunnen brengen.
En later een selectie te maken van recepten die een bepaalde bron hebben.

Ik hoop dat je me nog verder op weg kunt helpen.
 
Laatst bewerkt:
De meest gangbare manier om meerdere waarden aan een tabel te koppelen, is via een koppeltabel. Daarin ben je dan niet beperkt tot 'één waarde, en, net als bij een veld met meervoudige waarden, kun je net zo veel waarden toevoegen als je wilt. Voordeel is ook, dat de data veel transparanter is en makkelijker in rapporten etc. is te laten zien. Maar goed, zonder voorbeeldje kan ik niet zien wat je nu precies gedaan hebt, dus is het een beetje blind gokken. En daar ben ik niet zo best in :).
 
Waarschijnlijk wil je de multi-gegevens in één veld zien, anders zou je het zo niet maken. Dat je het ID ziet, en niet de naam, is omdat de eerste kolom zichtbaar is. Als je in het rapport daar de breedte op 0cm zet, komt het wel weer goed.

Ik zie bij de eigenschappen van het veld in het rapport geen mogelijkheid om een kolombreedte op 0 te zetten, zoals in een formulier wel het geval is.
 
Dan het je in het rapport geen keuzelijst, maar een tekstvak. Alleen keuzelijsten hebben de eigenschap Kolombreedte.
 
Dan het je in het rapport geen keuzelijst, maar een tekstvak. Alleen keuzelijsten hebben de eigenschap Kolombreedte.
In het rapport van het tekstvak een keuzelijst gemaakt. BronId bleef echter steeds terugkomen. Na het toewijzen van het juiste veld in de juiste tabel (tbBron) is het uiteindelijk gelukt.
Enige nadeel als er twee bronnen zijn, geeft ie daar de bronId ipv de bronnaam.

Ga me verder verdiepen in een koppeltabel en hoe dan de invoer gaat en hoe ik dan de meerdere kolommen in een rapport kan krijgen.
Misschien nog een hint?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan