I am sure there are many ways to do this - I haven't used split before, however. In the meantime, the old-fashioned way.
This reads the data as Field1 as writes to a table (just started with first 6 fields):
Code:
Public Function ExtractData()
Dim strLabel(10) As String, strValue(10) As String, rst As Recordset, rstOut As Recordset
Dim x As Integer, y As Integer, z As Integer
strLabel(0) = "LastName"
strLabel(1) = "FirstName"
strLabel(2) = "MI"
strLabel(3) = "State"
strLabel(4) = "Street"
strLabel(5) = "City"
On Error Resume Next
Set rst = CurrentDb.OpenRecordset("Table9", dbOpenDynaset)
Set rstOut = CurrentDb.OpenRecordset("Table10", dbOpenDynaset)
rst.MoveFirst
Do Until rst.EOF
rstOut.AddNew
Do Until y > 5
x = InStr(rst!Field1, strLabel(y)) + 3 + Len(strLabel(y))
If y < 5 Then
strValue(y) = Trim(Mid(rst!Field1, x, InStr(x, rst!Field1, strLabel(y + 1)) - x))
Else
strValue(y) = Trim(Mid(rst!Field1, x))
End If
strValue(y) = Replace(strValue(y), Chr(10), "")
strValue(y) = Replace(strValue(y), Chr(13), "")
If strValue(y) <> "" Then rstOut(strLabel(y)) = strValue(y)
y = y + 1
Loop
rstOut.Update
rst.MoveNext
Loop
End Function