A Few Notes: The "Val" function is only required when converting a String to a number. It is not required on a variable that is already declared as a number. Dim sngNumber As Single sngNumber = Val(txtNumber.Text) 'Val function required lblNumber.Caption = Val(sngNumber) 'NOT CORRECT - sngNumber is already a number lblNumber.Caption = sngNumber 'This is the correct way to do it To calculate overtime: Let's look at an actual number of hours to illustrate. If you worked 42 hours, your gross pay would be calculated as follows: The first 40 hours are multiplied by your hourly rate The remaining two hours (42 - 40) are multiplied by one-and-a-half times your hourly rate. These two results are added together. More generally: If you worked more than 40 hours Then Multiply 40 times your hourly rate Subtract 40 from your hours worked, and multiply that number times your hourly rate times 1.5 Add the two numbers together Else Multiply your hours worked by your hourly rate End If Sequential Access Files A sequential access file is one that you read from beginning to end, in order. Each line in a file is called a record, and the end of a record is marked by the carriage-return/line-feed characters (CRLF, or more commonly in Windows by pressing the "Enter" key). Each record, or line, is further divided into fields. A field is a descriptive part of a record. Fields are usually separated by a comma. This is an example of what's called a comma delimited format or comma separated values (CSV). Let's look at an example to help clarify these concepts. Let's say you want a sequential access file for storing names and addresses. Every line in the file would represent one persons' name and address. Each line would be further divided into the parts of the address: name, street address, city, state, zip code, years known. An example of what a file would look like with two records: "Joe Sweeney", "Some Street", "Some City", "NY", "12345", 1 "Renee Rosen", "Some Street", "Some City", "NY", "12345", 1 Notice that the fields are separated by commas. Also notice that most of the field values are enclosed in double quotes. This is because the data type is string. Recall that all literal string values must be enclosed in quotes. If the data type were a number, then no quotes are used. NOTE: I use the term "double quote" to mean what non-programmers call a quote. As opposed to a "single quote," also known as an apostrophe " is a double quote ' is a single quote You may wonder why zip code is in quotes, even though it is a number. The reason for this is that, if a number is not to be used in calculations, then it is stored as a string. This is to avoid confusion and accidental mis-use of the information. The syntax for opening a sequential access file is: Open For As The words in brackets <> need to be filled in by you, the programmer. The other words are keywords and are required. The filename is any valid path and name for a file existing on a disk or hard drive. Example: "a:\addresses.dat" for a file on a disk. The mode is how you want to use the file. Do you want to read from it or write to it? Input - opens a file for reading only Output - opens a file for writing only. If the file does not exist, it creates it If the file exists, it DELETES it first, then creates an empty one Append - opens a file for writing only If the file does not exist, it creates it If the file exists, adds the new records to the end The filenumber is an integer that serves as a reference to the file. It is how you will refer to the file in the program code, similar to a variable.