I'm just trying to make a cash till and something is wrong because when i try to execute it it just freezes. I think something is wrong with my loop, also i don't know how to refresh my sale total when i click clear order. It clears it but when i select more values it just adds on to the old price. Any suggestions would be greatly appreciated!

Option Explicit
Dim Cost As Currency

Private Sub CommandButton12_Click()
'assume Burger and Pop = 3.00
Cost = Cost + 3
TextBox1.Value = TextBox1.Value & vbNewLine & "Burger and Pop $3.00"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton13_Click()
 TextBox1.Text = ""
 TextBox2.Text = ""
 TextBox3.Text = ""
End Sub

Private Sub CommandButton14_Click()
'assume chocolate bar = .90
Cost = Cost + 0.9
TextBox1.Value = TextBox1.Value & vbNewLine & "Chocolate Bar $0.90"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton15_Click()
'assume hot dog = 1.25'
Cost = Cost + 1.25
TextBox1.Value = TextBox1.Value & vbNewLine & "Hot Dog $1.25"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton2_Click()
'assume burger = 2.25'
Cost = Cost + 2.25
TextBox1.Value = TextBox1.Value & vbNewLine & "Burger $2.25"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton3_Click()
'assume HotDog And Pop = 2.00
Cost = Cost + 2
TextBox1.Value = TextBox1.Value & vbNewLine & "HotDog and Pop $2.00"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton5_Click()
'assume cheese = .30
Dim cheese As Currency

cheese = MsgBox("Customer must have a burger or hotdog")
Cost = Cost + 0.3
TextBox1.Value = TextBox1.Value & vbNewLine & "cheese $.30"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton6_Click()
'assume Pop = .99'
Cost = Cost + 0.99

TextBox1.Value = TextBox1.Value & vbNewLine & "Pop $0.99"
TextBox3.Value = Cost
TextBox4.Value = Cost
End Sub

Private Sub CommandButton9_Click()
Dim AmtRec As Currency
Dim EndVal As Currency
Dim Change As Currency

AmtRec = InputBox("Money Recieved From Customer")
'display how much money was recieved
TextBox2.Value = TextBox2.Value & vbNewLine & "Amount Recieved: $" & AmtRec

Change = AmtRec - Cost
'display how much change is due
TextBox2.Value = TextBox2.Value & vbNewLine & "Change Due: $" & Change

'TextBox3.Value = Saletotal

'Find out how much is owed to customer

Do While Change >= 0
    If Change >= 10 Then
        EndVal = (10 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $10.00"
        End If
     If Change >= 5 Then
        EndVal = (5 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $5.00"
        End If
       If Change >= 2 Then
        EndVal = (2 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $2.00"
        End If
         If Change >= 1 Then
        EndVal = (1 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $1.00"
        End If
         If Change >= 0.25 Then
        EndVal = (0.25 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $0.25"
        End If
         If Change >= 0.1 Then
       EndVal = (0.1 - Cost)
       TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $0.10"
        End If
         If Change >= 0.05 Then
        EndVal = (0.05 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $0.05"
        End If
         If Change >= 0.01 Then
        EndVal = (0.01 - Cost)
        TextBox2.Value = TextBox2.Value & vbNewLine & "Change to Give Customer: $0.01"
        End If
Loop
End
End Sub

Since your Cost variable is a Form-level variable, it's value won't change unless you unload the form, just clear your Cost variable to reset it's value...

Cost = 0

...for your loop....well I really don't know why you have to do it in a loop, as I see in your codes, it just checks the change of the customer, well anyway to avoid your loop from hanging up, just put a

DoEvents

keyword before the "Loop", like this:

Do While...

DoEvents
Loop

NOTE: your loop will not end until the value of the Change variable is less than 0...and thus, not changing its value will result in an infinite loop...

If you still having problems, then feel free to ask...

@PoisenedHeart - please make use of code tags to display code.:)

@Bob3 - I will be able to help as soon as I know what language is used as per your previous post. It looks like VBA?:)

This question has already been answered. Start a new discussion instead.