vraagje over knoppen

Status
Niet open voor verdere reacties.

kenzootje

Gebruiker
Lid geworden
22 aug 2016
Berichten
37
Beste, ik ben bezig met een basis kassa programmatje,
heb alle produkten zo gezet dat er een produkt per knop staat .

Indien er op een knop gedrukt wordt, moet hij een lijn wegschrijven en de naam en prijs in een listboxje zetten.
het enige die verandert is dat het dus een andere knop is en eenandere naam van deknop ( die ik gebruik om de produktenop te zoeken in de tabel produkten )
dit is wat er deels gebeurt , is nog niet volledig hoor !!
--------------------
Dim prod As Integer
Dim sqlstring As String

naamprod = DLookup("prod_naam", "tbl_produkten", "prod_id = " & Ctl12.Name)

' info = MsgBox("naam produkt = " & naamprod)

' info = MsgBox("soort nr : " & Ctl12.Name & " gratis = " & GRATISJN.Caption & " waarde = " & GRATISJN.Value)
sqlstring = "INSERT INTO tbl_bestel (bestel_prod,bestel_aantal,bestel_gratis,bestel_dagID) VALUES (Ctl12.name,1,0,avond_id.value);"
DoCmd.RunSQL (sqlstring)
------------------------

Nu is mijn vraag, hoe kan ik 1 sub routine schrijven die wordt uitgevoerd als ik op een knop druk van de produkten zodat ik niet heel die reutemeut telkens moet gaan kopieren en plakken per knop ...
het enige die gaat veranderen is dat hij in de sql string ; de knopnaam moet veranderen

alvast bedankt voor de hulp
 
Laatst bewerkt:
Allereerst welkom bij HelpMij! Voor code hebben we de code knop, dus als je die de volgende keer wilt gebruiken, dan graag!
Ik snap niet precies wat je aan het doen bent. Ik ben zelf voor een bakker een database aan het bouwen die (vermoed ik) ongeveer hetzelfde doet als wat jij wilt, maar mijn aanpak lijkt hier niet op :). En werkt als een tierelier :D. Bij ons bouw je overigens een bestelling op, en per bestelling vul je de tabel BestelRegels met de bestelde artikelen. Jij gooit zo te zien alles in één tabel, en dat lijkt mij geen wijze aanpak. Misschien kun je een voorbeeldje posten, want ik krijg er nu niet echt de hoogte van.
 
uitleg programmatje

beste het is zo dat ik gewoon een kassatje aan het maken ben voor een sportclub voor de bar.
Elke avond wordt er besteld aan de baar, 2 pinten en ne cola, knoppen worden aangeklikt, via listboxje ziet de barman het overzicht, de klant betaalt, en er komt een nieuwe bestelling.
dus ik heb een tabel met avonden ( avond-id, avond-omschrijving)
en per avond id
komt er een bestelling 2 pinten en ne cola, wordt de knop jupiler twee keer aan geklikt en de knop cola 1x , per druk op de knop wordt er een lijn in de tabel bestel geschreven
Dit is voldoende, daar we dan gewoon per avond kunnen weten wat de omzet was.
Bekijk bijlage kassa colora.zip
ik hoop dat dit wat duidelijker maakt wat ik bedoelde
 
Ik heb je voorbeeldje bewerkt zoals ik het zou doen. Daarbij maak ik gebruik van een tijdelijke tabel om a) de losse bestelling in op te slaan en b) de aantallen correct bij te kunnen werken. Met een functie voor een bestelnummer en één functie die het artikel opslaat ben je dan klaar. Ik heb alleen de bieren gedaan; de rest kun je denk ik zelf wel aanvullen.
 

Bijlagen

Als we de vraag of het beleefd is om niet te reageren op een inspanning van een helper even in het midden laten liggen, (antwoord: nee, dat is bepaald niet netjes) voor de mensen die ook zoiets zoeken, nog een uitbreiding op het formulier dat ik eerder heb gepost. Nu zit er een numeriek toetsenbord bij waarmee je van elk ingevoerd artikel snel het aantal kan aanpassen. Stel dat je één koffie hebt ingevoerd, maar er 12 nodig hebt, dan hoef je dus niet meer 12 keer op dezelfde knop te drukken, maar voer je '12' in op het toetsenbord en druk je daarna op <Enter>. Het toetsenbord kun je ook gebruiken om een te hoog aantal te verlagen; typ het juiste nummer in en sla het record op. Wil je een artikel verwijderen, dan typ je een 0 bij aantal. Het record wordt dan verwijderd.
 

Bijlagen

Als we de vraag of het beleefd is om niet te reageren op een inspanning van een helper even in het midden laten liggen, (antwoord: nee, dat is bepaald niet netjes) voor de mensen die ook zoiets zoeken, nog een uitbreiding op het formulier dat ik eerder heb gepost. Nu zit er een numeriek toetsenbord bij waarmee je van elk ingevoerd artikel snel het aantal kan aanpassen. Stel dat je één koffie hebt ingevoerd, maar er 12 nodig hebt, dan hoef je dus niet meer 12 keer op dezelfde knop te drukken, maar voer je '12' in op het toetsenbord en druk je daarna op <Enter>. Het toetsenbord kun je ook gebruiken om een te hoog aantal te verlagen; typ het juiste nummer in en sla het record op. Wil je een artikel verwijderen, dan typ je een 0 bij aantal. Het record wordt dan verwijderd.
van harte bedankt voor het mooie werk dat je er in gestoken hebt, ik dacht dat ik al een reply gepost had , met mijn dank, sorry hiervoor groetjes enalvast bedankt voro het mooie werk
 
Wellicht niet opgeslagen, dat kan natuurlijk. Geen probleem verder; voor ons als helpers is het belangrijk om te weten of we op de juiste weg zitten! Overigens is de QUOTE knop geen antwoordknop; daarvoor heb je het tekstvak <Snel reageren>. Die knop dus alleen gebruiken als je echt iets te quoten hebt. Zeg nou zelf: mijn tekst in bericht #5 is heel wat leesbaarder als wat jij er in de quote van hebt gemaakt :).
Ben benieuwd wat je van de aanpassingen vindt :D
 
Beste ik krijg een foutmelding als ik op een knop druk van een produkt, zie printscreen in bijlage foutmelding vba.jpg, nog een extra vraagje als ikeen functie of subroutine stap voor stap wil laten uitvoeren, is dat toch met f8 enzo, maar blijkbaar lukt da niet bij mij ?
alvast bedankt voor de uitleg
 
De stapmodus moet je wel eerst aanzetten; dat doe je door op de regel waar je wilt beginnen op <F9> te drukken. Het formulier begint met een leeg record, en dat betekent dat er geen Avond_ID is bij het starten. Je moet eerst een tekst invullen in het omschrijvingsveld voordat het autonummer wordt gegenereerd. Zodra je in het veld niet meer <Nieuw> ziet staan maar een nummer, werkt het formulier prima. Zou ik het zelf zo bedacht hebben? Nee .... :).
 
deank u wel

Bedankt, had het zelf al zitten bekijken maar had er blijkbaar overgekeken
 
Ik was er ook ingestonken :).
 
instinkertje :) LOL

zal bijhet laden zorgen dat er telkens de laatste avond staat en een knop voorzien met nieuwe avond of zo
 
Ik heb er nu zelf een vaste tekst in gezet bij een nieuw record ("Nieuw"). Werkt ook. En een bijgewerkte versie, want de vorige werkte het verkeerde artikel bij. Niet al te handig natuurlijk :).
 

Bijlagen

kan het zijn tijdens het opslaan van de bestelling dat er nog een foutjein zit, want heb de indruk dat dat bestel nummer altijd op 6 blijft staan....
wel mooi gedaan zo , dank u.
Bij het programmatje ervoor waren er geen problemen blijbkaar
 
Laatst bewerkt:
Ik heb niets aan de code gewijzigd.
Dat laat ik graag aan @Octa over...
 
Het nummer wordt opgehoogd als je een nieuwe bestelling toevoegt met de knop. Blijkbaar heb je dat nog niet gedaan...
 
ja heb ik ondertussen gezien, maar was mis bezig, deed bestelling, klikte op toevoegen bestelling en deed nieuwe bestelling, heb nues geprobeerd, na toevoegen bestelling, het bestelnummer met 1 verhoogd, blijkt ook te werken :) enals ik dan wel op nieuwe bestelling druk heb ik natuurlijk 1 bestellnummer overgeslagen he, maar speelt niet zo'n rol zeker ?
groetjes
gunter
 
Bestelnummers genereren met een aparte functie in een numeriek veld heeft als voordeel dat je in beginsel geen 'lege' nummers hebt als je een keer het laatste record weggooit. Autonummering heeft dat nadeel wel; als je in zo'n tabel met autonummers de laatste records weggooit, krijg je die nummers nooit meer terug. Je springt dan (bijvboorbeeld) van 5 naar 9. De functie kijkt altijd naar het hoogste nummer en verhoogt dat met 1. In het voorbeeld is het nieuwe nummer dus altijd 6. Sla je dat record vervolgens op, dan is het volgende nummer dus 7. En nooit 8 of hoger. Als jij dat wél voor elkaar krijgt, dan heb je mijn functie gemold :).
 
ok het programmatje werkt nu redelijk goed, is er nu iemand die dat wat moois van kan maken, allez eerder ne goeie schilder je weet wel wat ik bedoel, ik ga dan binnenkort nog een aantal querys maken, met omzetten en zo ....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan