Hans Bwt Posted May 25, 2010 Posted May 25, 2010 Beste mensen, ik ben nog niet zo lang met fm bezig en ik heb het antwoord op het volgende probleem niet kunnen vinden in de (engelse) boeken die ik geraadpleegd heb. Ik wil bestellingen invoeren in een tabel OrderInvoer. Die tabel is gelinkt met een tabel Titels (via ISBN , unieke boeknummer) en een tabel OrderKop(via unieke OrderkopNr). Nu wil ik voorkomen dat ik 2 keer hetzelfde ISBN invoer voor hetzelfde OrderKopNr. Ik heb al geprobeerd om via relatie beheer, maar zonder succes.. Waar moet ik anders zoeken?? Alvast bedankt voor de hulp Hans Quote
andries Posted May 25, 2010 Posted May 25, 2010 je kan een extra veld aanmaken die de twee velden samenvoegt, en dit veld moet uniek zijn (in de veldopties) Quote
Hans Bwt Posted May 25, 2010 Author Posted May 25, 2010 bedankt voor de snelle reactie. Maar ik begrijp hier niets van. Welke 2 velden moet ik samen voegen? OrderNr refereert naar een bepaalde bestelling, Klantnummer naar de Klant en isbn naar de titel. Verder moet ik ook nog een aantal (voor een titel) invullen. Ik kan mij niet voorstellen dat je 2 velden kunt samenstellen... Quote
andries Posted May 25, 2010 Posted May 25, 2010 Als ik het goed heb begrepen heb je drie tabellen: - OrderKop - Titels - OrderInvoer OrderInvoer maakt een verwijzing naar beide tabellen. Wat je wil is dat elke combinatie OrderKop en Titel uniek is. Je kan dit doen door in de tabel OrderInvoer een extra (tekst) veld aan te maken, die via een auto-enter steeds de twee waarden (OrderKop ref (OrderNr) en Titel ref (ISBN nr)) aan elkaar plakt (best met een streepje of uniek character tussen). Deze combinatie moet uniek zijn, anders heb je twee keer dezelfde invoer. Dit kan je bepalen in de veld definities door te zeggen dat het net aangemaakte veld alleen maar unieke waarde mag bevatten. Op die manier verhinder je het bevestingen van de record. Een voorbeeldje: je hebt een OrderKop met OrderNr 24356 en ISBN nummer 21452. Als je dus nu een OrderInvoer doet, vul je die twee waardes in in het veld OrderNr en ISBN in de tabel OrderInvoer. Deze tabel heeft ook het extra veldje dat hier bijvoorbeeld 24356#21452 van maakt. So far so good, deze combinatie bestaat nog niet, en de OrderInvoer kan bevestigd worden. Als je dit nu nog eens gaat proberen, zal het extra veld opnieuw 24356#21452 proberen weg te schrijven via de auto-enter, en hier zal de validatie zeggen dat het niet kan, omdat dit geen unieke waarde is. Op die manier kan je dubbele in de OrderInvoer voorkomen. Ik hoop dat dit een beetje duidelijker is. Groetjes Andries Quote
Hans Bwt Posted May 26, 2010 Author Posted May 26, 2010 Geweldig, bedankt! Het is opgelost, maar iets anders dan je hebt voorgesteld. Maar dat doet aan mijn dankbaarheid niets af. De isbn zijn 13 cijferig dus dat vond ik een beetje omslachtig dus ik heb dat nieuwe (controlerend veld) in de Orderinvoertabel als volgt samengesteld: de gegevens zijn uniek en zijn een product van de Isbn en de (Unieke) order ref nr. Ik besef dat dat niet 100% waterdicht is maar het is volgens mij voldoende voor wat ik wil. Ter verduidelijking de Tabel Order Kop heeft voor elke order een unieke referentie nr voor elke bestelling (elke afnemer die een bestelling plaatst krijgt een voor elke bestelling die hij plaatst een unieke ref nr). De Tabel titels hebben allemaal een voor elke titel een uniek nr). Dus zoals je zegt die combinatie van order ref en isbn moet uniek zijn. Nogmaals dank. Quote
andries Posted May 26, 2010 Posted May 26, 2010 ik snap de rede van het product niet? Waarom niet simpel: OrderNr & "#" & ISBNNr ? Een product kan zo vaak hetzelfde uitkomen. Quote
Hans Bwt Posted May 27, 2010 Author Posted May 27, 2010 je hebt gelijk, daar kwam ik ook achter. Ik heb jouw formule ingevoerd als getal en tekst en dan krijg ik in de tabel elke keer de order nr # als resultaat en dat accepteert hij niet aangezien de uitkomst uniek moet zijn dus elke invoer wordt afgewezen... Ergens doe ik iets fout maar wat. Ik heb bij de db beheer het veld de volgend opties/opmerkingen gegeven: tekst; geïndexeerd; niet leeg; uniek. Quote
andries Posted May 27, 2010 Posted May 27, 2010 bij de autoenter moet je nog de "do not replace existing value of field (if any)" uitvinken. Quote
Hans Bwt Posted May 27, 2010 Author Posted May 27, 2010 Geweldig Andries nu doet alles! Ik had die vinkje wel gezien maar niet aangezeten omdat ik geen eerdere gegevens wilde veranderen?! Welke gegevens vraag ik mij nu af het was een nieuw veld!! Nogmaals heel hartelijk dank! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.