Printing to Files

 < Day Day Up > 

Using the Print # statement, you can print data to a file using the following form:


 Print #filenumber[, outputlist] 

The information for this statement is basically the same as for Write #. The only difference is that Write # sends the data to the named file and Print # creates a new print file.

To insert a space in outputlist, use the Spc(n) setting where n is the number of spaces to insert. Likewise, to insert a tab, use the Tab(n) setting, where n represents the absolute value of the column.

The following procedure gleans the entire contents of a file and then creates a new print file:


 Sub PrintPoundSign(filSource As String, filPrint As String)   'Print data from passed file   'in Immediate window.   Dim hFileSource As Long   Dim hFilePrint As Long   Dim strLine As String   hFileSource = FreeFile   Open filSource For Input Access Read Shared As hFileSource   hFilePrint = FreeFile   Open filPrint For Output Access Write As hFilePrint   Do Until EOF(hFileSource)     Line Input #hFileSource, strLine     Print #hFilePrint, strLine   Loop   Close hFileSource   Close hFilePrint End Sub 

To run the procedure, enter the following statement in the Immediate window:


 PrintPoundSign "path\employees.txt", "PrintFile" 

Using Word or a text editor, locate the new file named PrintFile (which should be in Access's default directory). The contents are the same as the employees.txt file, as shown in Figure 20.5.

Figure 20.5. The contents of the print file are similar to what you've seen in the Immediate window.


CASE STUDY: Using I/O to Number Lines in a Text File

Your users want to export client information to a text file for sharing, but they also want to add a line number to each line of data in the text file. Users can open the newly created text file and do it manually, but let's automate the process using I/O functions.

First, open the Switchboard form and add a new command button. Name that button cmdExport and enter the Caption setting "Export Client Text File." Then, add the following Click event procedure to the form's module:


 Private Sub cmdExport_Click()   'Export Clients table to   'delimited text file.   On Error GoTo HandleErr   DoCmd.TransferText acExportDelim, , _    "Clients", "Clients.txt"   Call NumberClientList   Exit Sub HandleErr:   MsgBox "Error " & Err.Number & ": " & _    Err.Description End Sub 

This procedure is simple in task. It exports the entire Clients table to a file named Clients.txt, saving the file in the current directory. You might want to include the entire path in the file's name.

To create the NumberClientList function that's called by the Click event procedure, open a standard module (or use Chapter 20's example module) and enter the following procedure:


 Public Sub NumberClientList()   'Add line numbers to   'client list in text file.   Dim hFileSource As Long   Dim hFilePrint As Long   Dim strInput As String   Dim i As Integer   On Error GoTo HandleErr   hFileSource = FreeFile   Open "Clients.txt" For Input Access Read As hFileSource   hFilePrint = FreeFile   Open "ClientsPrint.txt" For Output Access Write As hFilePrint   Do Until EOF(hFileSource)     i = i + 1     Line Input #hFileSource, strInput     Print #hFilePrint, i, strInput   Loop   Exit Sub ExitHere:   Close hFileSource   Close hFilePrint   Exit Sub HandleErr:   MsgBox "Error " & Err.Number & ": " & _    Err.Description   Resume ExitHere End Sub 

Save the module and close it. Open the modified Switchboard form shown in Figure 20.6 and click the new command button. After exporting the Clients table to a new text file, the procedure calls the NumberClientList function. This procedure opens the new Clients.txt file. The Do Until loop does the following:

  • Uses the Line Input function to cycle through each line in the file.

  • Evaluates the expression i = i + 1 to create the current loop's line number.

  • Executes the Line Input function to retrieve the data and then to write the line number (i) and the retrieved data to the new print file.

Figure 20.6. Click the Export Client Text File command button to create a text file.


Figure 20.7 shows the new text file with each line numbered. In this case, it's just coincidence that the line numbers equal the client identification values.

Figure 20.7. We used I/O functions to add a line number to each line.


     < Day Day Up > 

    Automating Microsoft Access with VBA
    Automating Microsoft Access with VBA
    ISBN: 0789732440
    EAN: 2147483647
    Year: 2003
    Pages: 186 © 2008-2017.
    If you may any questions please contact us: