Invoer getallen dmv knoppen

Status
Niet open voor verdere reacties.

Nico84

Gebruiker
Lid geworden
21 jul 2011
Berichten
191
Heb een formulier gemaakt om orders in te voeren.
Omdat wij met een klein aantal artikelen werken en elke klant wel iets van ieder artikel geleverd krijg
heb ik een toevoegquery gemaakt die alle artikelen in 1 keer aan mijn orderregels toevoeg.

De bedoeling is om de registratie te doen op een windows tablet.
Het nadeel daarvan is dat het toetesenbord een groot deel van je scherm opslokt.

Heb daarom bedacht om knoppen te maken met de cijfers 1 t/m 9 op mijn orderformulier.

--Is het mogelijk om de aantallen in te vullen doormiddel van de knoppen?


Er worden ook retouren geregistreerd.
--Is het mogelijk om de ingevoerde getallen om te zetten naar negatieve getallen?

Heb een voorbeeldje bijgevoegd.
 

Bijlagen

Eerst maar je eerste probleem, want die is het makkelijkst.

Code:
Private Sub cmd1_Click()
    Me!fOrderregelssub.Form!txtAantal.Value = 1
End Sub

Code:
Private Sub cmd2_Click()
    Me!fOrderregelssub.Form!txtAantal.Value = 2
End Sub
Etc.

Voor retourzendingen (ik weet niet of je die op hetzelfde formulier wilt behandelen als het bestelformulier, maar dat lijkt mij niet logisch) kun je er een selectievakje aan toevoegen Retour. Is die aangevinkt, dan maak je de bedragen negatief.

Code:
Private Sub cmd3_Click()
If chkRetour = -1 Then
    Me!fOrderregelssub.Form!txtAantal.Value = -3
Else
    Me!fOrderregelssub.Form!txtAantal.Value = 3
End If
End Sub
 
De knoppen werken wel op deze manier, maar alleen voor het getal wat op de knop staat.
Als ik nu bijvoorbeeld 125 als aantal wil invoeren lukt dat niet.
Is hier ook nog een oplossing voor?


Omdat het op een tablet moet en alles met de vingers bediend moet worden is het
de bedoeling om alles in een apart scherm in te voeren. Daar bedoel ik mee.

-Eerst klant selecteren ------ naar volgend scherm
-Beginvoorraad invoeren------naar volgend scherm
-Retouren
-Levering
-Eindvooraad (beginvoorraad minus retouren plus levering)
-Pakbon printen

Pakbon printen moeten alleen de retouren en levering op komen.
De beginvoorraad en eindvoorraad zijn alleen voor ons belangrijk.

Heb jij nog een idee OctaFish hoe je dit het best aanpakt.
-De beginvooraad,retouren,levering,eindvoorraad in 1 tabel (orderregels) doen?
-Eerst alles in een tijdelijke tabel opslaan en als de afdruk correct is doorboeken naar de juiste tabel.
 
Dat had je niet gevraagd ;) Omdat je op een subformulier werkt, is het een beetje lastig om dat met jouw knoppen te regelen, al zou het wel kunnen. Zelf heb ik daar al vorig jaar iets leuks voor bedacht, en die oplossing zit hier nu bij.
 

Bijlagen

Goedemiddag OctaFish.
Ben met je code aan de slag gegaan en zag er netjes uit.

Alleen vond ik het niet de meest hanige manier om er mee te werken en de getallen in te voeren. :o:o

Dus ben 3 uurtjes aan het googlen geweest, knip en plak werk uit jouw code en testen om wat te vinden of het ook op de manier kan als mijn voorbeeld.
Ik denk dat ik wel iets gevonden heb. Het werkt tot nu aan toe.

Maar twijfel nog wel wat aan de code, want als het zo kort / simpel kan had jij het ook wel bedacht.

Code op het subformulier
Code:
Private Sub txtAantal_GotFocus()
Dim iPos As Integer

iPos = Nz(Len(txtAantal.Value), 0)
Forms!fOrder!txtPos = iPos

End Sub

Dit is de code voor onder de knoppen.

Code:
Private Sub cmd8_Click()
iPos = txtPos

    If Nz(Me!fOrderregelssub.Form!txtAantal.Value, 0) = 0 Then
        Me!fOrderregelssub.Form!txtAantal.Value = 8
        Screen.PreviousControl.SetFocus
        Me!fOrderregelssub.Form!txtAantal.SelStart = Len(Me!fOrderregelssub.Form!txtAantal.Text)
    Else
        sLinks = Left$(Me!fOrderregelssub.Form!txtAantal.Value, iPos)
        Me!fOrderregelssub.Form!txtAantal.Value = sLinks & 8
        Screen.PreviousControl.SetFocus
        Me!fOrderregelssub.Form!txtAantal.SelStart = Len(Me!fOrderregelssub.Form!txtAantal.Text)
    End If
End Sub
 
Mijn losse formuliertje heb ik indertijd ontwikkeld voor een db waarin hij op verschillende andere formulieren werd gebruikt. Je hebt zowiezo toch knoppen op je formulier staan, dus vond ik een los formulier dat verdwijnt als de waarden zijn ingevoerd een stuk netter dan knoppen die altijd plek in beslag nemen. Heb je de ruimte, en maar één formulier, dan werkt jouw methode uiteraard ook prima. Overigens miste ik de 0 op jouw formulier; blijkbaar mogen mensen geen 10 stuks bestellen ;)
 
De 0 is toegevoegd :), had snel het voorbeeldje in elkaar geknutseld.
Ik heb de ruimte op het formulier voor de knoppen.
Er moeten continue aantallen ingevoerd worden en op deze manier is het voor mij gevoel iets makkelijker/overzichtelijker om het op deze manier te doen

Maar snap jouw argument ook helemaal OctaFish.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan