Formulier met besturingselement probleem

Status
Niet open voor verdere reacties.

remmie63

Gebruiker
Lid geworden
4 jan 2011
Berichten
378
Hallo forumbezoekers,
Ik heb een formulier die via een query op een tabel is gebaseerd. In de tabel is een veld (Leverancier) met een besturingselement met keuzelijst gebaseerd op een andere tabel. Dit werkt, in de tabel, prima.
Deze keuzelijst werkt in de query ook. Echter in het formulier werkt de keuzelijst niet goed. Vreemd is ook dat in het Leverancier veld, in het formulier, de achtergrond zwart is en de letters wit. Ik kan wel selecteren maar deze selectie wordt niet vastgehouden. Ik moet uiteindelijk terug naar de tabel om de juiste leverancier te selecteren. Als ik selecteer in het veld leverancier dan is het veld als normaal met witte achtergrond en zwarte tekst.
Wie heeft een oplossing?
 
Oke, het zwarte achtergrond probleem heb ik al zelf opgelost.
De meervoudige selectie eigenschap stond op "geen". Is veranderd in enkelvoudig.
Maar nog steeds wordt de selectie in het veld leverancier van het formulier niet vastgehouden.
 
Ik was iets te voorbarig. Meervoudige selectie is niet de oplossing. Terug bij af!
 
Vraag: wat wil je precies? Een meervoudige keuzelijst op een veld Leverancier lijkt mij een slecht idee; dat zou namelijk inhouden dat je in één veld LeverancierID meerdere leveranciers opslaat. En dat druist tegen alle database principes in. Bovendien heb je op de tabel ook een keuzelijst staan, en ik neem er een behoorlijke dosis gif op in dat je in de tabel maar één leverancier kunt opslaan met die keuzelijst. En waarom gebruik je überhaupt een keuzelijst voor de tabel? Ik raad dat ten zeerste af; in een tabel wil je de feitenlijke opgeslagen informatie zien, niet een afgeleide vorm. Probeer dus keuzelijsten in tabellen te vermijden, en bouw ze weer om naar tekstvelden. Keuzelijsten maak je wel op je formulieren. Bovendien, als je db klaar is, komt er toch niemand meer in een tabel? Althans: dat zou je niet moeten willen.... En als je toch in een tabel kijkt, wil je (ik wel tenminste zien) wat er is opgeslagen. Dus in jouw geval: in de tabel wil ik de leveranciersID zien, en niet zijn naam. Ook in queries maak je het jezelf onnodig lastig, want als je in een query op een leverancier wilt filteren, heb je toch de leveranciersID nodig, niet zijn naam. En wat zie je in de query? Juist....
Dus nogmaals de vraag: wat wil je precies met de keuzelijst?
 
Hallo Octafish,
dank voor je antwoord. Mijn leveranciertabel heeft geen leverancier id. het zijn maar een tiental leveranciers dat leek me dus overbodig. De leveranciernaam is de sleutel. Ik werk met een tabel producten en een tabel leveranciers. De tabel leveranciers bestaat uit een veld [naam] en [faxnummer]. De producttabel heeft naast alle productgegevens ook een veld [leverancier]. Ik heb een qry gemaakt waarin beide tabellen worden gecombineerd. Oftwel de leverancier wordt gekoppeld aan het faxnummer. Het voordeel hiervan is dat je niet elke keer weer het faxnummer hoeft in te vullen bij elke nieuwe product toevoeging. Ik had in de producttabel een keuzelijst willen maken met leveranciers zodat je daaruit de juiste leverancier voor het product kon selecteren. Alleen voor het toevoegen van een nieuwe leverancier wordt het dan lastiger daarom had ik bedacht dit dus in een aparte tabel(leverancier) te verwerken zeker als er straks een mde bestand van wordt gemaakt. Verder heb ik een werkscherm met daarin een subformulier waarin product selecties kunnen worden gedaan van waaruit dan een faxbericht wordt gegenereerd. Alleen dat werkt nog niet goed. Mutaties worden wel correct verwerkt behalve het veld leveranciers dat vewerkt hij niet naar de tabel. Ik denk dat er ergens in de qry iets niet goed zit of dat ik gewoon een denkfout maak.
 
Oftwel de leverancier wordt gekoppeld aan het faxnummer.
Ik neem aan dat je bedoelt dat het produkt aan het faxnummer wordt gekoppeld? In je tabel Leveranciers heb je namelijk al een koppeling tussen leverancier en fax.
Maar goed, ik begin 'm (geloof ik) een beetje te snappen. Om te beginnen: gooi alle keuzelijsten in de tabellen er uit, en maak er weer tektsvelden van. Tabellen zijn er om de opgeslagen gegevens te zien, niet representaties ervan. No matter what Microsoft says... Keuzelijsten zijn handig voor lijstjes die niet in een tabel staan, zoals Aanhefvormen (Man/Vrouw) etc. die te simpel zijn om er een aparte tabel voor te maken.
De rest doe je namelijk op je formulieren. Daar maak je de keuzelijsten, en koppel je de keuzelijsten aan de juiste tabelvelden. Door een query te gebruiken als basis voor je formulier, loop je de kans dat je de verkeerde velden terugziet. En daar ligt denk ik het probleem. Baseer je formulier op de tabel die je wilt invullen/bewerken, en zorg ervoor dat alle velden uit die tabel op je formulier staan. Voor je leveranciersgegevens (naam, fax) gebruik je een keuzelijst op basis van de tabel Leveranciers; dit veld moet gekoppeld zijn aan het veld Leverancier in de tabel Produkten. Ik denk dat je het veld hebt gekoppeld aan een queryveld uit een verkeerde tabel.
 
Dank voor je reactie. Ik ga ermee aan de slag. Ik heb alle velden van de tabel producten en het veld faxnummer uit tabel leveranciers in een qry geplaatst. Daarop is het subformulier in het werkscherm gebaseerd. Ik ga alles nog eens doorlopen.
 
Dan zou het wel moeten kunnen; overigens wordt met deze constructie dus het veld Faxnummer in de tabel Leveranciers bijgewerkt als je daarin iets verandert. Persoonlijk zou ik niet willen dat je op een formulier Produkten gegevens in een andere tabel muteert; ik zou, als je het faxnummer wilt zien op het formulier Produkten, dat uit de keuzelijst Leveranciers halen via een Column(#) verwijzing. Op die manier heb je het nummer wel op het scherm, maar kan het niet per ongeluk worden gemuteerd. Wat betreft het veld Leverancier: als je de keuzelijst koppelt aan het veld Leverancier, zou het opgelost moeten zijn.
 
Dat klopt inderdaad. Veranderingen aan het faxnummer wil je niet via dat formulier doen. Daar heb ik een apart mutatie formulier voor gemaakt. Kun je mij uitleggen hoe dat werkt een column (#) verwijzing?
groet, remco
 
Als je keuzelijst lstLeveranciers heet, maak je een tekstvak aan met als besturingselementbron: =lstLeveranciers.Column(1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan