Cdbl in combinatie met Nz en replace

Status
Niet open voor verdere reacties.

JohanRVT

Gebruiker
Lid geworden
2 mrt 2011
Berichten
545
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.
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 ) :confused:

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
en
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
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan