What I would do, in all honesty, is use the following code - I've had some experience with Text File Reading:
'Initialization
Dim Dbs As Database
Dim Rst As Recordset
Dim LineCtr As Integer
Dim Len As Integer
Dim City as String
Dim FileNm
Set Dbs = CurrentDb
Set Rst = Dbs.OpenRecordset("NameOfAddressTable", dbOpenDynaset)
'Get filename from user
FileNm = InputBox("Input File Name without .txt", ""

If FileNm = "" Then
msgbox "Process cancelled!!!", vbCritical, ""
Exit Function
End If
If Len(Dir("c:\Progra~1\Sent\" & FileNm & ".mbx"

) = 0 Then
msgbox "Filename is not found!!!", vbCritical, " "
Exit Function
End If
'Importing text file - Note, directory and filenames can be changed to protect the innocent =)
Open "C:\Temp\" & FileNm & ".txt" For Input As #1
LineCtr = 1
Do While Not EOF(1)
Line Input #1, LineData
Select Case LineCtr
Case 1 ' Name
Rst.AddNew
Rst!NameField = LineData
Case 2 ' Address
Rst!AddressField = LineData
Case 3 ' City, ST Zip+4
City = ""
Len = 1
Do While Mid(LineData,Len,1) <> ","
City = City & Mid(LineData,Len,1)
Len = Len + 1
Loop
Rst!CityField = City
Rst!StateField = Mid(LineData,Len+3,2)
'Assuming that the Zip has one space between State and Zip and it's a Zip+4
Rst!ZipField = Mid(LineData,Len+6,10)
Rst.Update
LineCtr = 1
End Select
Loop
Close #1
Rst.Close
This is quick coding - I'm sure someone can think of ways to make this more efficient or whathaveyou, but I did this on the fly and modified it a little bit for your needs - I did NOT debug this. You just need to copy and paste this into your function and debug it from there. It should work.
HTH
Roy
aka BanditWk
Las Vegas, NV
roy@cccamerica.org
RLMBandit@aol.com (private)