Hale, Jim
Jim.Hale at FleetPride.com
Mon Sep 26 14:46:47 CDT 2005
Here is a routine I use to build fixed length strings to upload to the AS400
Jim Hale
Function ExportTableToText_TSB(strDatabase As String, strTable As String,
strFile As String) As Boolean
' Comments : exports the data from a table to a fixed length text file
' Parameters: strDatabase - path and name of the database to look in or ""
(blank string) for the current database
' strTable - name of the table/query containing the data to
export
' strFile - name of the file to export to (if it exists, it
will first be deleted)
' Returns : True if successful, False otherwise
'
Dim dbstmp As Database
Dim rstTmp As Recordset
Dim intFile As Integer
Dim intCounter As Integer
Dim strTmp As String
On Error GoTo PROC_ERR
If strDatabase = "" Then
Set dbstmp = CurrentDb()
Else
Set dbstmp = DBEngine.Workspaces(0).OpenDatabase(strDatabase)
End If
' Kill the file if necessary
On Error Resume Next
Kill strFile
On Error GoTo PROC_ERR
' Open the file
intFile = FreeFile
Open strFile For Output As intFile
' Open the recordset and loop through it
Set rstTmp = dbstmp.OpenRecordset(strTable, dbOpenDynaset)
With rstTmp
Do Until .EOF
' initialize the Tmp string
strTmp = ""
'Build the record with fixed length fields
For intCounter = 0 To .Fields.Count - 1
Select Case intCounter
Case 0 'Company
strTmp = strTmp & Right(" " & .Fields(intCounter).Value,
7)
Case 1 'GL
strTmp = strTmp & Right(" " & .Fields(intCounter).Value,
8)
Case 2 'SL
strTmp = strTmp & Right(" " & .Fields(intCounter).Value, 5)
Case 3 'BYEAR
strTmp = strTmp & Right(" " & .Fields(intCounter).Value, 6)
Case 4 'BMONTH
strTmp = strTmp & Right(" " & .Fields(intCounter).Value,
8)
Case 5 'DEPT
strTmp = strTmp & Right(" " & .Fields(intCounter).Value, 5)
Case 6 'AMT
strTmp = strTmp & Right(" " &
Format(.Fields(intCounter).Value, "###.00"), 14)
Case 7 'REPOST
strTmp = strTmp & Right(" " & .Fields(intCounter).Value, 6)
Case Else 'PLANNO
strTmp = strTmp & Right(" " & .Fields(intCounter).Value,
7)
End Select
Next intCounter
Print #intFile, strTmp
.MoveNext
Loop
.Close
End With
Close #intFile
dbstmp.Close
ExportTableToText_TSB = True
PROC_EXIT:
Exit Function
PROC_ERR:
ExportTableToText_TSB = False
Resume PROC_EXIT
End Function
-----Original Message-----
From: Reuben Cummings [mailto:reuben at gfconsultants.com]
Sent: Monday, September 26, 2005 2:23 PM
To: AccessD
Subject: [AccessD] Create and write Text File
Anyone have a routine to create a text file and write to that text file?
I have the routine to create the strings to be added. Now I just need to
create a text file and then write each string to that file. There could be
anywhere from 1 to 250 strings to be added and each needs to be its own
line.
Actually what I'm making is a fixed length text file.
Thanks.
Reuben Cummings
GFC, LLC
812.523.1017
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
***********************************************************************
The information transmitted is intended solely for the individual or
entity to which it is addressed and may contain confidential and/or
privileged material. Any review, retransmission, dissemination or
other use of or taking action in reliance upon this information by
persons or entities other than the intended recipient is prohibited.
If you have received this email in error please contact the sender and
delete the material from any computer. As a recipient of this email,
you are responsible for screening its contents and the contents of any
attachments for the presence of viruses. No liability is accepted for
any damages caused by any virus transmitted by this email.