Artikelen selecteren in een formulier

Status
Niet open voor verdere reacties.

HJD1986

Gebruiker
Lid geworden
28 mrt 2017
Berichten
61
Beste,

Ik ben bezig met het opnieuw bouwen van een database om klanten, offertes, orders en facturen in te verwerken.
De huidige werkt goed, maar wil graag op een aantal punten verbeteren en uitbreiden.

De uitdaging waar ik mee zit:

Ik heb een formulier "offertes" met daarin een subformulier "offerteregels".
Het subformulier "offerteregels" wil ik vullen op basis van een formulier "artikel kiezen". Het is dus de bedoeling om in het subformulier "offerteregels" om op het veld artikel te klikken zodat het formulier "Artikel kiezen" wordt geopend.
Tot zover geen probleem.
Vervolgens wil ik in het formulier "Artikel kiezen" het betreffende artikel selecteren > op OK klikken> en dat dit artikel wordt overgenomen in "offerteregels" met bijbehorende info zoals prijs etc.

Ik heb het eerste geprobeerd zonder de tussenkomst van een formulier, en dat werkt. Echter gaat mijn voorkeur uit naar het gebruik van een apart formulier.
Het is overigens de bedoeling dat na overname van bijv. prijs, dit handmatig kan worden aangepast in het geval een keer wordt afgeweken van de standaard prijs.

Wie kan mij verder helpen?
 
Het subformulier "offerteregels" wil ik vullen op basis van een formulier "artikel kiezen". Het is dus de bedoeling om in het subformulier "offerteregels" om op het veld artikel te klikken zodat het formulier "Artikel kiezen" wordt geopend. Tot zover geen probleem.
Maar waarom zou je dat überhaupt willen? Een artikelnummer is, als het goed is, maar één veld in je tabel Offerteregels. Eventueel haal je op basis van een keuzelijst in het subformulier Offerteregels je artikelnummer + de aanvullende informatie op, waarbij het mij dan nog logisch lijkt om de prijs in ieder geval óók op te slaan, maar ik heb voor zo'n constructie nog nooit een apart formulier nodig gehad/willen hebben/aanbevolen aan iemand anders. En dat ga ik bij jou dus ook niet doen :).
Echter gaat mijn voorkeur uit naar het gebruik van een apart formulier.
Waarom dus?
 
Hi Octafish,

Uiteraard heb ik hier ook over nagedacht. Maar de hoofd reden is dat ik dan ook eenvoudig een nieuw artikel kan toevoegen vanuit dat formulier.
Het komt namelijk veelvuldig voor dat een artikel nog niet in het artikelbestand staat, aangezien we veel doen met "specials".
Zoals jij het beschrijft heb ik het nu werkend, maar naar mijn idee geeft een formulier met daarin de keuzelijst meer overzicht en mogelijkheden.
Maar als er andere manieren zijn om toch op een snelle manier een nieuw artikel aan de database toe te voegen dan hoor ik dat uiteraard graag ;-)

Zoals eerder gezegd, ben ik een beginnende Access gebruiker/liefhebber, maar door te doen en te proberen (met jullie hulp) leer ik ontzettend veel.
 
Maar de hoofd reden is dat ik dan ook eenvoudig een nieuw artikel kan toevoegen vanuit dat formulier.
En dat kan perfect (wellicht zelfs nog beter) vanuit de keuzelijst in dat subformulier. Wellicht iets te kort gedacht?
 
Hi Octafish,

Ik denk niet te kort gedacht, maar ik zie/ken de mogelijkheid niet. Hoe zou jij dat aanpakken?

Ik heb alles nu werkend en heb een knop op het formulier toegevoegd wat het artikelen formulier opent. Werkt op zich.

De volgende uitdaging dient zich nu aan. Hoe kan ik vanuit het hoofdformulier de velden in het subformulier aanroepen?
Ik wil namelijk onderin het formulier de marge laten weergeven gebaseerd op de artikelen in het subformulier.

De berekening is het probleem niet, wel het aanroepen van de velden.
 
Ik zou toch even een stapje terug doen, en luisteren naar het alternatief, dat m.i. Veel beter is. Daarbij heb je de keuze uit twee opties, waarvan de tweede denk ik voor jou de beste is. Beide opties werken overigens hetzelfde: ze worden getriggerd door de gebeurtenis <Bij niet in lijst>. Net als de gebeurtenis <Bij klikken>, die je gebruikt om een keuze te maken in een keuzelijst, start je een actie. In dit geval getriggerd dus door het feit dat de ingetypte waarde in de keuzelijst met invoervak niet voorkomt in de tabel. In jouw geval: je zoekt/typt een artikelnaam, en hij blijkt niet te bestaan, dus er komt geen waarde tevoorschijn. Dan start dus de gebeurtenis <Bij niet in lijst>.

Optie 1: je vult de tabel met de nieuwe waarde, die vervolgens gelijk in de keuzelijst gekozen wordt en je gaat door naar het volgende veld. Deze optie is prima als je bijvoorbeeld een tabel met Landnamen hebt, en het getypte land staat nog niet in de lijst.

Optie 2: je typt een waarde die niet bestaat en die dus moet worden toegevoegd. Maar de tabel waarin je de waarde op moet slaan, heeft meer gegevens nodig dan alleen de naam. Neem jouw keuzelijst met artikelen: je hebt ook een prijs, wellicht een minimum voorraad en een Leverancier in te vullen. In dat geval trigger je met de gebeurtenis een formulier dat je opent, waarop je dan alles invult. Sluit je vervolgens dat formulier, dan wordt alles netjes opgeslagen, en wordt de nieuwe waarde gelijk in je keuzelijst gebruikt.

In Optie 2 kun je dus prima jouw formulier gebruiken. Als dat tenminste een enkelvoudig formulier is, want dat werkt het beste. Ik zou het wel weten :).
 
Je kan de controls in een subformulier aanroepen vanuit het hoofdformulier met de volgende syntax:

Me.[Naam control subformulier].Form.[naam control(tekstvak) op het subformulier]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan