Invul formulier

Status
Niet open voor verdere reacties.

Latoflex

Gebruiker
Lid geworden
14 mrt 2011
Berichten
51
Hallo

In mijn database heb ik een Tabel producten met een veld "AantalInStock". Stel dat er een levering is toegekomen van producten.

Hoe kan ik een formulier maken dat je opent waarin je een product selecteert via een keuzelijst en waarna je het aantal geleverde producten kan ingeven. Dit wordt dan bijgeteld bij "AantalInStock" in Tabel producten.

Is dit mogelijk?

Alvast bedankt
 
Dat kan; een aantal weken geleden is dit onderwerp ook uitgebreid aan bod geweest. Zoek even op dit forum, want er moet ook ergens een voorbeeldbestandje staan waarmee je voorraden kunt bijwerken. Want het gaat natuurlijk niet alleen om toevoegen, ook om verwijderen uit de voorraad. Toch?
 
Ja, een systeem dat de voorraad up-to-date houdt. Ik zal even browsen op het forum.

Bedankt.
 
Ik vindt niet direct een antwoord op mijn vraag, bij de meeste topics hierover wordt er gebruikt gemaakt van VBA en daar heb ik nauwelijks ervaring mee.

Misschien kan ik proberen schetsen hoe mijn db in elkaar zit:

Nadat het werk (bouwfirma) is gedaan, wordt door de vakmensen een "werfbon" opgemaakt waarin ze via een formulier ingeven welke klant, welke producten verbruikt zijn, ...

Alle verbruikte materialen komen terecht in een tabel "Verbruikte materialen". Nu zou in de tabel producten (voorraad) het veld "AantalInStock" vermindert moeten worden met het aantal naast de productnaam vanuit de tabel "Verbruikte materialen".

Bijkomend wil ik ook een formulier maken waarmee men de voorraad kan aanvullen (wordt uitgevoerd na een levering van producten).

Alvast bedankt voor uw hulp!
 
Ik zal dit weekend het voorbeeldje opzoeken en posten; ik denk dat er een hoop bruikbaars voor je in zit.
 
Heb het voorbeeld gevonden; stond in het VBA forum. Maar hier in ieder geval een voorbeelddb die al een aantal vragen (hopelijk) beantwoord...
 

Bijlagen

  • Voorraad Mutaties.rar
    61,9 KB · Weergaven: 70
Bedankt, ik kan veel leren uit dit voorbeeld.

Klein vraagje,

In MutatieForm kan je een artikel selecteren en wordt automatisch huidige voorraad weergegeven.
Bij de ontwerpweergave staat de expressie [artikelID].[column](3), hoe werkt deze expressie juist?
Zodat ik dit kan toepassen in mijn db.

Dank bij voorbaat
 
Deze formule maakt gebruik van een keuzelijst (artikelID) en leest daar de waarde van de 4e kolom uit. Een techniek die ik wel vaker gebruik om aanvullende gegevens op een formulier te laten zien. In zijn algemeenheid ziet de syntax er zo uit:
Op een formulier heb je een tekstvak met als Besturingselement deze code: =[Naam Keuzelijst].Column(#) waarbij Column(#) de kolom aangeeft die je wilt zien, tellend vanaf Nul. De eerste kolom (haal je dus op met de waarde 0, de tweede kolom=1 etc)
 
Ik heb een formulier gemaakt op basis van tabel "mutaties" met de velden:

ProductId
Product
huidige voorraad
aantal (hoeveel moeten er worden toegevoegd?)

Op de formulier staat een button dat deze record opslaat en de query "AantalInStock bijwerken" opent/uitvoert en naar nieuw record gaat op het formulier.

Ontwerp query:

Veld: AantalinStock
Tabel: producten
wijzigen in: [AantalinStock]+([Mutaties].Aantal)

Dit werkt prima, enkel dat de query telkens wordt uitgevoerd op elk record.
Maw zou de bewerkingsquery enkel moeten worden uitgevoerd op de "ProductId" vermeld in het formulier.

Ik denk dat dit met een eenvoudige expressie in mijn criteria veld van de query mogelijk is?

Dank bij voorbaat!
 
Laatst bewerkt:
Waarschijnlijk wel; als je het voorbeeld bekijkt, zie je ook dat er een bijwerkquery wordt gemaakt op basis van het geselecteerde artikel. Overigens is het formulier niet eens op een tabel gebaseerd; een query is doorgaans niet nodig als je voorraden muteert. Baseer je formulier dus bij voorkeur op een tabel, of op een leeg formulier.
 
Laatst bewerkt:
Ik begrijp niet goed wat je bedoelt, ik probeer mijn voorraad bij te werken via een query omdat ik nauwelijks VBA kan.

In de voorbeeld db dat u me stuurde is het formulier niet gebaseerd op een tabel en wordt geen query uitgevoerd in plaats hiervan wordt gebruik gemaakt van vrij veel VBA achter de buttons, omdat ik niet volledig de structuur en de herkomst begrijp van deze codes is het niet mogelijk voor mij om dit te kopiëren/plakken en aan te passen naar mijn db.

Is mijn probleem niet op te lossen door een expressie in mijn criterium van mijn query of door een toevoeging in de code van mijn button?

code van mijn button:

Private Sub Bijwerken_Click()
doCmd.Save
doCmd.SetWarnings false
doCmd.OpenQuery "AantalinStock bijwerken"
doCmd.SetWarnings true
doCmd.RunCommand acCmdRecordsGoToNext
End Sub
 
Je kunt e.e.a. wel met een bijwerkquery doen, mits je dus een filtering toevoegt voor het betreffende product. Dus in je query zou je met de Functie Opbouwen het formulierveld moeten toevoegen in je Criteriumregel voor het veld ProductID dat je in je query hebt staan. Daarmee filter je de query op het product dat je in je formulier kiest. Nadeel van deze constructie is, en daarom doe ik het dus liever via VBA, dat de query niet werkt als het formulier niet is geopend. Maar het kan dus wel...
 
Bedankt voor uw reactie, ik ga deze criteriumregel proberen uitwerken.
De query hoeft in principe niet te werken zonder het formulier dus deze optie zal volstaan.

Nogmaals dank voor al uw hulp.
 
Welke functie moet ik juist ingeven? Ik heb niet echt verstand van de "3e kolom" van de functie bouwer.
Hieronder een screenshot.

 
Ik zie daar niks verkeerds in; dat zou moeten werken. Doet-ie het niet? Ik zie wel dat je geen goede koppeling tussen de tabellen hebt, maar dat zou voor de query niet uit mogen maken...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan