Link to home
Start Free TrialLog in
Avatar of Amanda080598
Amanda080598

asked on

csv files

I am working on a VB program that needs to use  a Crystal Report to print out a .CSV file.  Can this be done?  If so, how?
Avatar of bharris1
bharris1

I don't know about using CR to do it, but the following code is the way I've always created .csv files:

lfreefile = FreeFile
Open "outfile.txt" For Output As #lfreefile
Write #lfreefile, val1, val2, val3, val4,.....
Close #lfreefile


By CSV can I assume you mean comma seperated values?
If so, yes Crystal Reports can export to that.

As I'm not 100% sure this is what you mean, I am submitting this as a comment.  If it solves your problem, let me know and I'll resubmit it as an answer.
Oops, forgot the how part.

  CrystalReport1.PrintFileName = "TestFile.csv"
  CrystalReport1.PrintFileType = 4
  CrystalReport1.Action = 1

Avatar of Amanda080598

ASKER

clifABB,

I tried your code, but I am getting a debug message which points to CrystalReport1.Action = 1 with an error message "Invalid report file name."  Please help me locate the problem.  Thank you!
clifABB,

Please explain why you used 4 after PrintFileType and 1 after Action.

Thank you!
You need to specify the crystal report you want to export.  Do you have that file (rpt file) already created?  If so, you need to add the following code before the three lines above:

CrystalReport1.ReportFileName = "MyReport.rpt" 'This is the name of the report file you created with Crystal Reports
CrystalReport1.Destination = 2 ' File


clifABB,


I am new to all this.

I have a file (.csv) that has to be printed as a report.  When I try to create a report in CR, it doesn't recognize a .csv file as a valid database/source.

How do I create a report from a .csv file and print it?

Thank you!

Create the report in Crystal.  When you save it, it will be saved as an rpt file.  You will use this file within VB as noted above.
Crystal doesn't actually create csv files, however, using the code above, you can export to a csv file.
The .csv file has already been created in the VB application.  What I need to do is use the CR to print the .csv file while the application is running.  I used a CR control with your code.  The application will have a print button which will print the .csv file in a CR report format.   How would I do this ?  
Oh, I see.  Excuse me for not understanding before.

You must first create an ODBC connection to your csv file.

To do this, you must start your ODBC administrator.  This can be found in the control panel.
To add a new connection, Click "Add" And then select "Microsoft Text Driver" from the list.  Then click Finish.

Type the Data Source name (which is what you want to appear in the ODBC list)
Uncheck "Use Current Directory" then click the "Select Directory" button and select the directory where your csv file exists.
Click Ok, and click Ok.

Now, start your Crystal Report Designer.  Select the type of report you want.  Now the select database screen appears.  Select SQL/ODBC which will display a list of the ODBC drivers available.  Select ODBC - Text Files from the list.  Click Ok and you're on your way.
clifABB,

Thank you for the information above.  I completed entering all the information, but when I run the program the CrystalReport1.Action = 1 debugs with an error message <property is write-only>.  Also, error 20514 keeps popping up.

CrystalReport1.ReportFileName = "File001.rpt"
CrystalReport1.Destination = 2 ' File
   
CrystalReport1.PrintFileName = "File001.csv"
   
CrystalReport1.PrintFileType = crptCSV
   
CrystalReport1.Action = 1

Please let me know, if this is correct.

Thank you so much for your help.

The original setting I had given you were when I thought you wanted CR to write out a csv.  You should now change those lines to this:
CrystalReport1.ReportFileName = "File001.rpt" 'Or whatever you call the report file you created

CrystalReport1.Destination = 0 'This will allow a print preview.  Or 1 to go to the printer    

CrystalReport1.Action = 1

clifABB,

It worked.  Thank you for all your help!

Please send  your comment as an answer, so  I may grade you.
ASKER CERTIFIED SOLUTION
Avatar of clifABB
clifABB

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Adjusted points to 100