Just an FYI. I thought you were wanting the NUMBER of hours. Not text returned of 3 Hours. VAL() takes the NUMBER ONLY so you just want to pull out the rest. To make it really easy put this function into a STANDARD MODULE and then save it as basTime and then call it from your query.
Code:
Function GetTimePart(strInput As String, strPart As String, Optional strDelimiter As String) As String
Dim strDelim As String
Dim varSplit As Variant
Dim i As Integer
On Error GoTo Errors
If strDelimiter = vbNullString Then
strDelim = ","
Else
strDelim = strDelimiter
End If
varSplit = Split(strInput, strDelim)
For i = 0 To UBound(varSplit)
If InStr(1, varSplit(i), strPart) > 0 Then
GetTimePart = varSplit(i)
Exit For
End If
Next
If GetTimePart = vbNullString Then
GetTimePart = "Not Found"
End If
ExitHere:
Exit Function
Errors:
MsgBox "Error " & Err.Number & " - " & " (" & Err.Description & ") in procedure GetTimePart"
Resume ExitHere
Resume
End Function
And then just call it from code like this:
Code:
If Instr(1, [STRING], "Hours") > 0 Then
[NEWFIELD] = GetTimePart([STRING], "Hours")
End If