RE: how to save to C:\ drive on report close?
- From: "Brook" <Brook@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 18 Apr 2005 19:51:01 -0700
Thanks for the information,
But I am having trouble figurin out what I need to add/modify to make this
work for my applications...
Can you help me?
Brook
"Ofer" wrote:
> Hi
> just copy this code to a new module
> you have to run the pdfwrite function, give it two parameters, report name
> and location, you have to install two drivers, have a look in the respone I
> got for my post, I used the code and it's great.
>
>
> Option Compare Database
> Option Explicit
>
> 'Read INI settings
> Declare Function GetPrivateProfileString Lib "kernel32" Alias _
> "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
> ByVal lpKeyName As Any, ByVal lpDefault As String, _
> ByVal lpReturnedString As String, ByVal nSize As Long, _
> ByVal lpFileName As String) As Long
>
> 'Write settings
> Declare Function WritePrivateProfileString Lib "kernel32" Alias _
> "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
> ByVal lpKeyName As Any, ByVal lpString As Any, _
> ByVal lpFileName As String) As Long
>
> Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>
> Sub pdfwrite(reportname As String, destpath As String, Optional strcriteria
> As String)
>
> ' Runs an Access report to PDF995 to create a pdf file from the report.
> ' Input parameters are the name of the report within the current database,
> ' the path for the output file, and an optional criteria for the report
>
> ' Be sure to check that the "Generating PDF CS" setting in pdfsync.ini is
> set to 0
> ' when pdf995 is idle. This codes uses that as a completion flag as it seems
> to be
> ' the most reliable indication that PDF995 is done writing the pdf file.
>
>
> ' Note: The application.printer object is not valid in Access 2000
> ' and earlier. In that case, set the printer in the report to pdf995
> ' and comment out the references herein to the application.printer
>
> Dim syncfile As String, maxwaittime As Long
> Dim iniFileName As String, tmpPrinter As Printer
> Dim outputfile As String, x As Long
> Dim tmpoutputfile As String, tmpAutoLaunch As String
>
> ' set the location of the PDF995.ini and the pdfsync files
> iniFileName = "c:\pdf995\res\pdf995.ini"
> syncfile = "c:\pdf995\res\pdfsync.ini"
>
> ' build the output file name from the path parameter and the report name
> If Mid(destpath, Len(destpath), 1) <> "\" Then destpath = destpath & "\"
> outputfile = destpath & reportname & ".pdf"
>
> ' PDF995 operates asynchronously. We need to determine when it is done so we
> can
> ' continue. This is done by creating a file and having PDF995 delete it
> using the
> ' ProcessPDF parameter in its ini file which runs a command when it is
> complete.
>
> ' save current settings from the PDF995.ini file
> tmpoutputfile = ReadINIfile("PARAMETERS", "Output File", iniFileName)
> tmpAutoLaunch = ReadINIfile("PARAMETERS", "Autolaunch", iniFileName)
>
> ' remove previous pdf if it exists
> On Error Resume Next
> Kill outputfile
> On Error GoTo Cleanup
>
> ' setup new values in PDF995.ini
> x = WritePrivateProfileString("PARAMETERS", "Output File", outputfile,
> iniFileName)
> x = WritePrivateProfileString("PARAMETERS", "AutoLaunch", "0", iniFileName)
>
> ' change the default printer to PDF995
> ' if running on Access 2000 or earlier, comment out the next two lines
> Set tmpPrinter = Application.Printer
> Application.Printer = Application.Printers("PDF995")
>
> 'print the report
> DoCmd.OpenReport reportname, acViewNormal, , strcriteria
>
> ' cleanup delay to allow PDF995 to finish up. When flagfile is nolonger
> present, PDF995 is done.
> Sleep (10000)
> maxwaittime = 300000 'If pdf995 isn't done in 5 min, quit anyway
> Do While ReadINIfile("PARAMETERS", "Generating PDF CS", syncfile) = "1" And
> maxwaittime > 0
> Sleep (10000)
> maxwaittime = maxwaittime - 10000
> Loop
>
> ' restore the original default printer and the PDF995.ini settings
> Cleanup:
> Sleep (10000)
> x = WritePrivateProfileString("PARAMETERS", "Output File", tmpoutputfile,
> iniFileName)
> x = WritePrivateProfileString("PARAMETERS", "AutoLaunch", tmpAutoLaunch,
> iniFileName)
> x = WritePrivateProfileString("PARAMETERS", "Launch", "", iniFileName)
> On Error Resume Next
>
> ' if running on Access 2000 or earlier, comment out the next line
> Application.Printer = tmpPrinter
>
> End Sub
>
> Function ReadINIfile(sSection As String, sEntry As String, sFilename As
> String) As String
> Dim x As Long
> Dim sDefault As String
> Dim sRetBuf As String, iLenBuf As Integer
> Dim sValue As String
>
> 'Six arguments
> 'Explanation of arguments:
> 'sSection: ini file section (always between brackets)
> 'sEntry : word on left side of "=" sign
> 'sDefault$: value returned if function is unsuccessful
> 'sRetBuf$ : the value you're looking for will be copied to this buffer string
> 'iLenBuf% : Length in characters of the buffer string
> 'sFileName: Path to the ini file
>
> sDefault$ = ""
> sRetBuf$ = String$(256, 0) '256 null characters
> iLenBuf% = Len(sRetBuf$)
> x = GetPrivateProfileString(sSection, sEntry, _
> sDefault$, sRetBuf$, iLenBuf%, sFilename)
> ReadINIfile = Left$(sRetBuf$, x)
>
> End Function
>
>
> "Brook" wrote:
>
> > Thank you for the information..
> >
> > Have you used this code? Does the code perform the process automatically
> > or do you have to tell it to save the file?
> >
> > Would you mind sending me the code? That might help me understand what is
> > going on?
> >
> > Brook
> >
> > "Ofer" wrote:
> >
> > > Hi brook
> > > I wrote to you before about saving your report ad pdf file, look on my
> > > earlier post, 2 before you, somebody gave me a link to go to that gives you
> > > the code that take a report name and save it on any location you desire as
> > > pdf file.
> > > If you have any problem with it, I'll send you the code.
> > >
> > > "Brook" wrote:
> > >
> > > > What I am trying to do is, when I close my rptinvoice report, I would like it
> > > > to be saved to my C:\ drive?
> > > >
> > > > Is there any easy code to do this? Is it possilbe to add the current date
> > > > and report title to the saved file name?
> > > >
> > > > Thanks in advance...
> > > >
> > > > Brook
.
- References:
- how to save to C:\ drive on report close?
- From: Brook
- RE: how to save to C:\ drive on report close?
- From: Ofer
- RE: how to save to C:\ drive on report close?
- From: Brook
- RE: how to save to C:\ drive on report close?
- From: Ofer
- how to save to C:\ drive on report close?
- Prev by Date: reportname? Adding Date and report Field (ordernumber)?
- Next by Date: Re: Very slow response
- Previous by thread: RE: how to save to C:\ drive on report close?
- Next by thread: RE: ComboBox opens before report loads
- Index(es):
Relevant Pages
|