It worked fine for me. You said you were dealing with six digit numbers so I used 999999 and had no problems.

I do have one question though. Why is intRentalPrice (which implies integer, lng implies a Long) being set to a string? "0" is string...0 is an integer. Here is what I tested
VB Code:
  1. Private Sub Command1_Click()
  2. Dim lngRentalPrice As Long
  3. If txtRentalPrice.Text = "" Then
  4.     lngRentalPrice = 0
  5. Else
  6.     lngRentalPrice = CLng(Val(txtRentalPrice.Text))
  7. End If
  8. MsgBox lngRentalPrice
  9. End Sub