gegevens opzoeken in formulier

Status
Niet open voor verdere reacties.

ahkleine

Gebruiker
Lid geworden
1 mei 2014
Berichten
163
ik heb een orderformulier gemaakt waarin m.b.v. een zoekveld met invoervak een product_id kan worden gekozen. Wat ik graag wil is dat wanneer ik voor een bepaald product_id heb gekozen een aantal velden in het formulier die uit dezelfde tabel komen als het product_id automatisch gevuld worden met de gegevens uit de bijbehorende tabel.
Wie kan mij helpen
 
Dat kan heel simpel door de benodigde velden op te nemen in de keuzelijst. Je hoeft ze niet eens te kunnen zien, als ze maar in de Rijbron zitten en de keuzelijst goed is ingericht. Dan kun je in tekstvakken verwijzen naar kolommen uit die keuzelijst. Dus als de keuzelijst cboProduct heet, en de volgende velden bevat:

1. Product_ID
2. Product Naam
3. Prijs
4. Eenheid
5. Aantal in product

Dan kun je met de volgende formule in de eigenschap <Besturingselementbron> van het tekstvak de prijs terugzien: =cboProduct.Column(2). En met =cboProduct.Column(3) zet je de Eenheid in een tekstvak.
 
bedankt

Octafish,

Bedankt voor jou hulp, het werkt. Hoe simpel kan het zijn. Ik was al aan het experimenteren met dlookup
 
Simpel is alleen simpel als je het weet :). Met DLookup had het ook wel gekund, maar dat is veel omslachtiger omdat je de velden bij het kiezen moet bijwerken. Dat is nu niet nodig. Bovendien is DLookup een trage functie voor een db. Deze oplossing is ook nog eens sneller.
Mag je de vraag op <Opgelost> zetten!
 
rekenen gaat niet

Octafish

Ik heb jou oplossing doorgevoerd
Nadat ik het product_id heb gekozen word automatisch het bijbehorende veld prijs van het product getoond. Vervolgens kan ik dan in het formulier een aantal ingeven,. Het systeem zou dan in het veld totaalprijs de berekende prijs moeten weergeven en opslaan in de tabel opdrachten. Het formulier is gebaseerd op deze tabel.
Alleen het rekenen werkt dan niet meer als ik een procedure maak Me.totaal= me.prijs*me.aantal. Het rekenen lukt wel als ik de besturingselementbron van het veld totaal de volgende expressie geef [aantal]*[prijs]. Alleen wordt dan de berekende waarde niet meer opgeslagen in de tabel opdrachten. Zou jij mij nog ween keer willen helpen

velden
Product_id (keuzevak met invoerveld
prijs wordt getoond nadat product_id gekozen is
aantal kan worden ingegeven en moet worden opgeslagen in tabel opdrachten
totaal is prijs x aantal en moet worden opgeslagen in tabel opdrachten
 
Laatst bewerkt:
rekenen gaat niet

Octafish,

Ik heb het inmiddels werkend. De fout die ik gemaakt had dat de velden de notatie tekst hadden en daar kun je niet mee rekenen. Toen ik dit had veranderd in valuta werkte het onmiddelijk.

Bedankt voor jou hulp.
 
Een totaalprijs opslaan in een tabel is an sich een verstandige zet, ook al is het vanuit normalisatieoogpunt fout. Maar prijzen fluctueren nu eenmaal vaak, en je moet in je verkopen natuurlijk de geldende prijzen opslaan. Alleen heb je zo te zien nu een formule als besturingselementbron gebruikt, en dan kun je geen veld meer koppelen. Hang je er een veld aan, dan heb je geen formule meer. Dus een onmogelijke kwestie :). Toch niet: de oplossing is heel simpel. Hang het veld gewoon aan het tekstveld, en vul het vanuit een ander veld. In dit geval is het veld [Aantal] een hele goeie, want bij wijzigen daarvan wordt de prijs berekend. Ik zou het dan zo doen bij de gebeurtenis <Bij wijzigen>:
Code:
Private Sub txtAantal_Change()
    Me.Totaal = Me.Prijs.Value * Me.txtAantal.Text
End Sub
Ik gebruik graag de eigenschap <Bij wijzigen> omdat je dan 'live' de prijs bijwerkt. Moet je voor het veld txtAantal wel de eigenschap .Text gebruiken, omdat Value pas bekend is als het veld is verlaten, en je moet hem uit het nog actieve veld trekken. Dat doet .Text. En voor het mooie zet je er dan uiteraard ook een check op dat er alleen cijfers mogen worden ingevuld, en geen tekst.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan