Table name is misspelled in second fill method (FillByLength)
{"Invalid object name 'tlbBarelLength'."}
indicates you misspelled the table name.
Public Sub FillByLength(ByVal BarrelLength As String)
....
'-- Build the query
loCommand.CommandText = "SELECT * FROM tlbBarelLength WHERE Length = @length" <-- should be tbl not tlb
.....
End Sub