[AccessD] Trouble using Split command

David McAfee davidmcafee at gmail.com
Fri Apr 22 15:05:08 CDT 2011


Are the files truly delimited with a character?

If not, and they are actually fixed length columns, you could read them in
this manner:
This is something I just wrote and tested:

Sub ImportTextFile()
Dim LineData As String
Dim strCol1 As String ' Variable for Column 1
Dim strCol2 As String ' Variable for Column 2
Dim strCol3 As String ' Variable for Column 3
Dim strCol4 As String ' Variable for Column 4
Dim strCol5 As String ' Variable for Column 5

Dim db As Database
Dim rsimport As Recordset
Set db = CurrentDb


Private Sub cmdImport_Click()
 DoCmd.OpenQuery "qryDeletetblImport"
 Call ImportTextFile
 Me.sbfrmNewlyImportedRecords.Requery
End Sub

Sub ImportTextFile()
   Dim LineData As String
   Dim strCol1 As String ' Variable for Column 1
   Dim strCol2 As String ' Variable for Column 2
   Dim strCol3 As String ' Variable for Column 3
   Dim strCol4 As String ' Variable for Column 4
   Dim strCol5 As String ' Variable for Column 5

   Dim db As Database
   Dim rsimport As Recordset
   Set db = CurrentDb

   Open Me.txtPath For Input As #1 ' Open the text file

   Set rsimport = db.OpenRecordset("
>
> qryNewlyImportedRecords", dbOpenDynaset, dbSeeChanges)
>
> Do While Not EOF(1)
>     Line Input #1, LineData ' Read the whole line of data.
>     strCol1 = Trim(Left(LineData, 5)) 'assigns the first 5 characters to
> the strCol1 variable
>     strCol2 = Trim(Mid(LineData, 6, 15)) 'assigns the next 15 characters to
> the strCol2 variable
>     strCol3 = Trim(Mid(LineData, 21, 6)) 'assigns the next 6 characters to
> the strCol3 variable
>     strCol4 = Trim(Mid(LineData, 27, 4)) 'assigns the next 4 characters to
> the strCol4 variable
>     strCol5 = Trim(Mid(LineData, 31)) 'assigns the next remaining
> characters to the strCol5 variable
>
>     rsimport.AddNew
>
>     rsimport!Remark = strCol1
>     rsimport!Comment = strCol2
>     rsimport!Color = strCol3
>     rsimport!ContactName = strCol4
>     rsimport!SomeNumber = CLng(IIf(strCol5 = "", 0, strCol5))
>
>     rsimport.Update
> Loop
> ' Close the data file.
> Close #1
> rsimport.Close
> Set rsimport = Nothing

    End Sub

>
>



More information about the AccessD mailing list