Beste,
ik probeer een systeem voor elkaar te krijgen waarbij er in een formulier aanpassingen in een tabel "Tbl_Bijvoeding_Artikels" worden gedaan. De vba in de afterupdate van het tekstvak "Morgen_Aantal" dat gebruikt wordt checkt op positieve en negatieve getallen en vermindert de stock (of vermeerdtert de stock als er een negatief getal wordt ingevoerd). Dat lukt allemaal prima met gehele positieve of negatieve getallen (of niets ingevuld) tot er decimale getallen worden ingevuld. Nochthans is netjes alles als double gebruikt in de tabellen of verwezen elders.
Denk dat het ergens terug die Amerikaanse manier van werken is (met een punt) terwijl wij de komma gebruiken als separator. Ik probeer de replace funcitie te gebuiken maar loop tegen een "typen komen niet overeen" fout aan in de onderstaande regel.
Enig voorstel of idee wat zou kunnen gebruikt worden om het onze dames mogelijk te maken een half flesje toe te kennen (dus 0,5 invoeren )
Even de volledige code die wel werkt met gewone getallen die van belang is;
en
ik probeer een systeem voor elkaar te krijgen waarbij er in een formulier aanpassingen in een tabel "Tbl_Bijvoeding_Artikels" worden gedaan. De vba in de afterupdate van het tekstvak "Morgen_Aantal" dat gebruikt wordt checkt op positieve en negatieve getallen en vermindert de stock (of vermeerdtert de stock als er een negatief getal wordt ingevoerd). Dat lukt allemaal prima met gehele positieve of negatieve getallen (of niets ingevuld) tot er decimale getallen worden ingevuld. Nochthans is netjes alles als double gebruikt in de tabellen of verwezen elders.
Denk dat het ergens terug die Amerikaanse manier van werken is (met een punt) terwijl wij de komma gebruiken als separator. Ik probeer de replace funcitie te gebuiken maar loop tegen een "typen komen niet overeen" fout aan in de onderstaande regel.
Code:
DoCmd.RunSQL "Update Tbl_Bijvoeding_Artikels set Stock_aantal=Stock_aantal-" & CDbl(Nz(Replace("Me.Morgen_Aantal", ",", "."), 0)) & " where Id_bijvoedingartikel=" & Me.Morgen.Value
Enig voorstel of idee wat zou kunnen gebruikt worden om het onze dames mogelijk te maken een half flesje toe te kennen (dus 0,5 invoeren )
Even de volledige code die wel werkt met gewone getallen die van belang is;
Code:
Private Sub Morgen_Aantal_Enter()
Dim Morgen_Aantal As Double
hold_qty = Nz(Me.Morgen_Aantal, 0)
End Sub
Code:
Private Sub Morgen_Aantal_AfterUpdate()
Dim Morgen_Aantal As Double
If Me.Morgen_Aantal.Value > 0 Then
DoCmd.RunSQL "Update Tbl_Bijvoeding_Artikels set Stock_aantal=Stock_aantal-" & CDbl(Nz(Replace("Me.Morgen_Aantal", ",", "."), 0)) & " where Id_bijvoedingartikel=" & Me.Morgen.Value
DoCmd.RunSQL "Update Tbl_Bijvoeding_Artikels set Stock_aantal=Stock_aantal-" & CDbl(Nz(Me.Morgen_Aantal, 0)) & " where Id_bijvoedingartikel=" & Me.Morgen.Value
Me.Stock1.Requery
End If
If Me.Morgen_Aantal.Value < 0 Then
If MsgBox("Bent U zeker het reeds ingevulde aantal " & hold_qty & " te verminderen met " & Me.Morgen_Aantal.Value & "? De stock wordt evenredig vermeerderd.", vbInformation + vbYesNo) = vbYes Then
Me!Morgen_Aantal.Value = Me.Morgen_Aantal.Value
DoCmd.RunSQL "Update Tbl_Bijvoeding_Artikels set Stock_aantal=Stock_aantal-" & CDbl(Nz(Me.Morgen_Aantal, 0)) & " where Id_bijvoedingartikel=" & Me.Morgen.Value
Me.Morgen_Aantal = 0
Me.Stock1.Requery
Else
Exit Sub
End If
End If
End Sub