When my code gets to a loop it always crashes and I am not sure why the system that I have been tasked (as a school project) to build is an Electronic Point of Sale system for a fast food resturanct.

I will load the all the menu items and prices into an array then when a button on the main screen is pressed it will assign a value to a variable (index) which is then used to retrieve from the array the menu item. If the item can be ordered in varying sizes (such as a pizza) then a new form should pop up which asks what size they would like to order (small, medium and large) those buttons then assign a value to a variable which is then passed back to the function in the main form.

The problem is that when my function is called it does not wait for input from the second form and just proceeds, causing an error to be thrown because it has no size to get the price. So I put it into a loop whilst it waits for input but now it crashes everytime.

Any advise would be greatly appreciated

Here is the code for my function which is called everytime a food item button is pressed(clicked) on the main screen.

 Public Function fAddOrder()
        Dim p1 As Integer = 0 'p1 is the variable that size value is passed to from pKeyboard var1
        If iSize = True Then   'if the menu item has varying sizes then 

            Do Until p1 > 0          'loop to prevent function from proceeding until a size has been selected
                pKeyboard.Visible = True
                p1 = NanzzaEPOS.pKeyboard.var1 'pass var1 (size) from pKeyboard to p1 in main form

            If p1 = 0 Then
                MsgBox("An error has occured, no size was selected")
            End If
            p1 = 4
        End If
        If p1 > 0 Then

        End If

        Return True
    End Function

Thanks in advance.

4 Years
Discussion Span
Last Post by ObSys

I dont understand why you are using a loop to tie up the system. you should use an event to trigger the purchase rather than keep looping.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.