[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 555
  • Last Modified:

Save an Already Open PDF Document

Hello - I need to find and save a PDF that is already opened.  Basically, I am using VBA from Access 2007 to open a PDF file from a website.  I need to find the opened file and do a save as on it.

I have tried GetObject, but that isn't working.

I am able to use the following code to "find" the window, and set the focus there, but I am having no luck in using the API's for Adobe.

Thanks!

 
Dim WinWnd As Long, windowName As String, retval As Long, lpClassName As String
        Dim I As Long
        Dim hwnds() As Long
        Dim numFound As Long
        numFound = FindWindowLike(hwnds, 0, "*Correspondent_Rate_Sheet*", "*", Null)
        Debug.Print "Matches Found: " & numFound
        For I = 1 To numFound
            Debug.Print I & " = " & hwnds(I)
            'PostMessage hwnds(i), WM_CLOSE, 0&, 0& ' close the first match found
            SetFocusAPI hwnds(I)
        Next

Open in new window

0
rsburge
Asked:
rsburge
  • 23
  • 15
  • 6
2 Solutions
 
kemi67Commented:
You say that you open the PDF from a website using VBA.
Why don't you save the file before opening it, dowloading the file from the web?

Is there any other reason for trying to find the handle of Adobe and delegate the "Save as" Adobe?

Anyway, with Adobe, once you have put the focus on it, you can use vba command
 SendKeys "%Fv"
to open the menu "Save as". The parameter "%Fv" can be different based on you language.
0
 
rsburgeAuthor Commented:
The file is protected and it won't allow me to save the file from the web that I have been able to figure out.  When I try saving it through VBA before opening it, the file is not saved in an actual pdf format; the error says to go to the site and open the file from there.

I should have stated that SendKeys is not an option in this case.  I have been using SendKeys quite a bit in this project and it is just too unreliable for this situation.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I will look into this as sson as I get back from Mass, Renee.

I am sure we can find a way to do this.

Do you want the file saved as the same name as it has on the website, or another name?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
kemi67Commented:
I am sure we can find a way to download the file, but I need some answers.
1. Do you need to authenticate in the web site before download the file?
2. Do you know the link of the file to download or do you click on a web page button to download the file, so that a http POST command is issued?

If you need to authenticate and click on a download button, you need to simulate the authentication process and the "button click" (send form) process, using VBA
Sometimes you need to send some header's variable to the web server, because it checks for example which browser you are using
This is possible and I have already done that, but we need to know more about the web page, about which forms and parameters are sent to the web server.
You can discover this analyzing the html code of the web page on your browser client


If you don't need authenticate or button click, this is na example on how to download a file

Sub Test()
    Dim FileNum As Long
    Dim FileData() As Byte
    Dim MyFile As String
    Dim WHTTP As Object
    
    On Error Resume Next
        Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
        If Err.Number <> 0 Then
            Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
        End If
    On Error GoTo 0
    
    MyFile = "http://www.bigfoto.com/sites/main/tree-winter-xxx.JPG"
    
    WHTTP.Open "GET", MyFile, False
    WHTTP.Send
    FileData = WHTTP.ResponseBody
    Set WHTTP = Nothing
    
    If Dir("C:\MyDownloads", vbDirectory) = Empty Then MkDir "C:\MyDownloads"
    
    FileNum = FreeFile
    Open "C:\MyDownloads\tree-winter-xxx.JPG" For Binary Access Write As #FileNum
        Put #FileNum, 1, FileData
    Close #FileNum
    
    MsgBox "Open the folder [ C:\MyDownloads ] for the downloaded file..."
End Sub

Open in new window


You can google "download a file  from a web site vba" and you will find more examples
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I have solved the problem for you Renee and it works well.
It just required a little clean-up of some  code where an adjustment is made to the registry.

Please stand by...


Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I have a really simple method using a function I wrote called "AutoSaveURL" which makes a call to "URLDownloadToFile" and could be performed in one line of code (if desired):

   AutoSaveURL "www.xyz.com/Correspondent_Rate_Sheet.pdf", _
                         "c:\Data\Correspondent_Rate_Sheet.pdf"

Provided you know the URL of the PDF you are obtaining use something like the following code (which incorporates error checking)

You make a call in your VBA code to my function "AutoSaveUrl" followed
by the IR address for the PDF and the name of the file to which you want it saved (including folder name)

    Dim cUrl as string
    Dim cResults as string
    cURL = "http://www.xyz.com/Correspondent_Rate_Sheet.pdf"
    cDest = "c:\Data\Correspondent_Rate_Sheet.pdf"
    if AutoSaveURL(cUrl, cDest) then
        ......
   else
        MsgBox  "Correspondent Sheet download failed"
   end if

Please note that the PDF does NOT need to be opened in a window
(and it does not matter if it is). All you must be certain of is that there is an internet connection for it to succeed (and the URL is contactable!

Please note that it function will automatically save a file and overwrite an existing file of the "DEst" specified (even overwrites if that file is Read-Only!)

BEST OF ALL, IT IS EXTREMELY FAST AND HAS NO INTERACTION WITH THE SCREEN!!!!!!

Hope this is what you are after.

Cheers
Chris
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
                "URLDownloadToFileA" (ByVal pCaller As Long, _
                ByVal szURL As String, _
                ByVal szFileName As String, _
                ByVal dwReserved As Long, _
                ByVal lpfnCB As Long) As Long

Public Function AutoSaveIE(cUrl As String, cDest as string) as Boolean
  dim nResult as Long  
  nResult = URLDownloadToFile(0, cUrl, cDest, 0, 0)
  AutoSaveIE = (nResult = 0)
End Sub

Open in new window

0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
By the way, there was no need for any adjustment to the registry, since we are not using the "Open/Save As" dialogue that Internet Explorer has (which causes so much grief to many programmers).

There is really no way to avoid Internet Explorer's "OPen/Save As" except to use something like my "AutoSaveIE" methodology  :-)

Cheers
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Finally "AutoSaveIE" works any ANY URL (HTML, JPG, PDF)
As long as Internet Explorer can download it either into a file or display it as HTML on a screen, AutoSaveIE can save the contents to a file!

Fianl Cheers (for the time being)

Chris  :-)
0
 
rsburgeAuthor Commented:
Hi!  I'm sorry for the delay...  We were at church most of the day today and are just now heading home.

I do need to pass security credentials to the site and then click on the link in the site as the URL changes daily.  I have all of that code already working and I will post it here if I can't make your solution work with the security requirements of the site.

Thank you!
Renee
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Thanks, Renee.

I MAY be able to incorporate the security within the function itself if required.
I wonder whether my function would call as "another" user within your program and so the security would have to be included or whether (if you are already logged on) the function will work OK, knowing that your PC has authorised access.

Hopefully the latter, wherte you log on through your code, then run my function successfully. You would need to ascertain in your code what the "url" is for the download (since you state it changes every time).

If we need to incorporate logging on through my function, then I do not need to know passwords or userids etc., just let me know how you log on and through what URL

I have discovered that my function will not work on Vista (hope you are not using that environment). Also, it returns "success" if the download starts, but does not indicate whether the downloaded file successfully was created, so I will amend it a bit to test for successful creation of the file while I wait for your results.

Cheers
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Just one thing, Renee.

Since the authors of the PDF allow you to view it but not save, are you breaching security by actually saving this file. You had better check that by doing this we are not performing anything illegal.

Just a thought.

Cheers
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Renee,

Just as a thought (for future reference if need be) if we cannot get my "AutoSaveURL" to work because of security, we could try to print the "found" window (using "FindWindowLike") to a PDF printer (which actually saves it to file rather than printing). This has worked in the past in other questions and is an option.

Hmmm...I will keep that in mind  :-)

Anyway, let's see if we can get "AutoSaveURL" to work, first.

Cheers
Chris
0
 
rsburgeAuthor Commented:
Thanks for all of the follow-up.  I am testing your theory of saving the file after authenticating on the site.

It is OK to print and/or save the file after authentication on the site.  The reason for the authentication is that the file is a little different for each user.

I will let you know what my testing reveals in just a bit.

Thanks,
Renee
0
 
rsburgeAuthor Commented:
Hi Chris - Unfortunately, the AutoSave doesn't seem to work.  I am still getting the same error where it won't save in a good pdf format (see image attached).

I am including the code I use to get the URL for the file but because the login information is confidential, I can't send that to you.  Hopefully, this will help anyway.  You will also see in the code where I tried to incorporate AutoSaveIE.

PDF Error
'------------------VARIABLES--------------------------------------'
ln = 431
kw = DLookup("[BotKeyword]", "[tblLenders]", "[ID]= " & ln & "")
LNm = DLookup("[LenderName]", "[tblLenders]", "[ID]= " & ln & "")
bn = DLookup("[BotID]", "[tblLenders]", "[ID]= " & ln & "")
un = DLookup("[UserName]", "[tblLenders]", "[ID]= " & ln & "")
pw = DLookup("[Password]", "[tblLenders]", "[ID]= " & ln & "")
urlMain = "https://www.stmpartners.com/public/"
attchnm = "SunTrustCorr2"
filePath = SDdrive & ":\aLXE-Pricing\SunTrustCorr\STC2\" & attchnm & ".pdf"

'-----DOWNLOAD, SAVE & OPEN-----'
Dim cUrl As String
Dim cDest As String
Set IE = CreateObject("internetexplorer.application")
IE.Visible = False
IE.navigate urlMain
    While IE.readyState <> 4
        DoEvents
    Wend
    While IE.Busy
        DoEvents
    Wend
IE.Document.frames(1).Document.all("LoginBox_UserID").Value = un
IE.Document.frames(1).Document.all("LoginBox_Password").Value = pw
IE.Document.frames(1).Document.all("LoginBox_SignOnButton").Click
    While IE.readyState <> 4
        DoEvents
    Wend
    While IE.Busy
        DoEvents
    Wend
IE.Visible = True
    Sleep 2000
    While IE.Document.frames(0).Document.all("RateSheetButton") Is Nothing
        DoEvents
    Wend
    While IE.readyState <> 4
        DoEvents
    Wend
    While IE.Busy
        DoEvents
    Wend
IE.Document.frames(0).Document.all("RateSheetButton").Click
    While IE.readyState <> 4
        DoEvents
    Wend
    While IE.Busy
        DoEvents
    Wend
    Dim hdoc As HTMLDocument
    Dim linkCol As IHTMLElementCollection
    Dim link As IHTMLElement
    Set hdoc = IE.Document.frames(1).Document '.frames(1).Document '.Table(0).Document '.body.Document.frames(0).Document.Table(0).Document
    Set linkCol = hdoc.all.tags("a")
    For Each link In linkCol
        If InStr(link.ID, "RateSheetGrid_ctl04_View") > 0 Then
            Debug.Print link.href
            rng = Right(link.href, InStr(link.href, "javascript:PopUpFileViewer(") + 8)
            Debug.Print rng
            rng = Left(rng, InStr(rng, ");") - 1)
            Debug.Print rng
            urlXls = "https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp?FileID=" & rng
            'IE.navigate urlXls <--to open file, commented out to test AutoSaveIE
            cUrl = urlXls
            cDest = filePath
            AutoSaveIE cUrl, _
                        cDest
        End If
    Next

Open in new window

0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
OK...thanks.

I will look at this shortly (have to set up for my bridge club now) but will find a solution when I return.

What does "urlXls" show as if you do a debug.print on the line after you assign a value to it (just after the "IE.navigate" commented-out line) ?

Cheers
Chris
0
 
kemi67Commented:
Did you take a look at the saved file with a text editor, like notepad?
Does it look like a pdf file or not?
I mean, does it start with something like

%PDF-1.5
%âãÏÓ
6645 0 obj<</H[1816 3857]/Linearized 1/E 98017/L 2680779/N 48/O 6649/T 2547835>>
endobj
 
or does it start like an html page?
0
 
rsburgeAuthor Commented:
crasin - the urlxls when doing debug.print for the 10/28 file is https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp?FileID=1452703
If I am logged in on the site, I can paste this into the address bar and open the file, so I do know that the url I am getting is correct.

kemi67 - when opening with notpad I get the following...
<html>
<head>
<script language="javascript">
function Body_OnLoad()
{
    top.document.location = "/Public/CheckSessionError.aspx?Error=Your+session+has+expired%2E";
}
</script>
</head>
<body class="pagebackgroundcolor" onload="Body_OnLoad();">
</body>
</html>
0
 
kemi67Commented:
It means that you are downloading a file using an expired session.
I guess that the login script is not working so you are not able to get a valid session
0
 
rsburgeAuthor Commented:
The login script is working.  I know it is working because right now I have a pause in the code so I can manually save the file.  Every time there is a "new" connection to the site, it must be authenticated.  This particular site only allows the users one chance to get their password correct and if they do not, the account is locked until you call their support and get it unlocked.

I have several sites that require authentication for every "new" connection and several that don't.

I currently use a sub similar to AutoSaveIE to save many files...  It is on these sites that require authentication every time that it doesn't work.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Well, it looks like my method will not work for you unless you can log in first.

Pity, but at least I found a great way to save files if no log in is required! Will make use of it myself!

Cheers
Chris

0
 
rsburgeAuthor Commented:
Is there a way to print the found window without using SendKeys?  The found window is Adobe Acrobat Pro 9.0, meaning the file does open in Acrobat rather than in an IE window.
0
 
kemi67Commented:
I guess that the AutoSaveIE, or better, the  URLDownloadToFile function, create an indipendent session so you are not able to use your current authentication.
With my method instead you can continue using the same session, but i know i have not provided you an example on how to authenticate.
I hope i can have some time to provide you a more complete example, with autenthication

Regarding the printing, since you know the window's handle, I will investigate if it is possible to use Sendmessage to issue a print command. Btw, If you have Reader X, it has protected mode so I am not sure that Sendmessage will work
0
 
rsburgeAuthor Commented:
FYI... I am using the full adobe acrobat program rather than just the reader.  

I can do a save as for the file instead of print if that is any easier to code.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
One point to consider.

The AutoSaveIE could incorporate the sending of the log in details (UserId and Password) then transmit them before it starts the download.

It will scan the current screen to see if logon is required before tarting the download.

Can you send me a display of what the logon screen looks like when it is waiting for the logon information?

Also, is your logon the same every time? (same userid and password?) If not
we will have to get that info in the registry on your PC for use by this function.

Many thanks
Chris
0
 
rsburgeAuthor Commented:
Hi - The login screen is at the following url... www.stmpartners.com/public

The way I refer to the login boxes in my code is below...
IE.Document.frames(1).Document.all("LoginBox_UserID").Value = un
IE.Document.frames(1).Document.all("LoginBox_Password").Value = pw
IE.Document.frames(1).Document.all("LoginBox_SignOnButton").Click

These are for the top two boxes under the "Correspondent/Broker Partner" label.
0
 
rsburgeAuthor Commented:
Oh, and the login is always the same until I have to change the password.  I use the variables "un" and "pw" to pull the logins from my database where they are stored.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Do you login as a Correspondent /Broker Partner or as a Settlement Agent?

For the record (it might come in handy in our logging in methoid within AutoSaveIE) I attach the login HTML used by that site to obtain the UserID and password.

Cheers
Chris
LoginHTML.txt
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I think what must happen is that you must log on to the site, pass the file name
(for 10/28 it was:
  https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp? _
              FileID=1452703
and then when the file appears run the function AutoSaveIE with the address showing in the address bar after the file has downloaded on the screen.

What is the filename when that file has downloaded fully? (It will probably be a PDF file).

You may have to place in your code a wait state
(i.e.   "While IE.Busy...Do Events....Loop")
and then pass the address showing in the URL address line NOT
THE ORIGINAL ONE
(NOT "https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp?
              FileID=" & rng)

In other words, DONT comment out the line  
          IE.navigate urlXls
but place a wait state after it to ensure the document appears, then  assign the
value of the new address now showing in the Browser to cURL before calling AutoSaveIE.

Something like the following (I cannot test since I do not have a site to call which has password requirements)

Let me know how it goes.

Cheers
Chris



For Each link In linkCol
  If InStr(link.ID, "RateSheetGrid_ctl04_View") > 0 Then
    Debug.Print link.href
    rng = Right(link.href, _
          InStr(link.href, "javascript:PopUpFileViewer(") + 8)
    Debug.Print rng
    rng = Left(rng, InStr(rng, ");") - 1)
    Debug.Print rng
    urlXls = _
          "https://www.stmpartners.com/Private/ResourceCenter/_
           FileViewer.asp?FileID=" & rng
    IE.navigate urlXls
    While IE.readyState <> 4
      DoEvents
    Wend
    While IE.Busy
      DoEvents
    Wend
    cURL = IE.LocationURL  'save new location to pass to AutoSaveIE
    cDest = filePath
    AutoSaveIE cUrl, cDest
  End If
Next





AutoSaveIE
            cUrl = urlXls
            cDest = filePath
            AutoSaveIE cUrl, _
                        cDest
        End If
    Next

Open in new window

0
 
rsburgeAuthor Commented:
Hi - So the document actually downloads and opens a PDF in Adobe Acrobat rather than opening the file in the browser window.

When the file opens in Acrobat, the file name is "Correspondent_Rate_Sheet_[1].pdf".  The file name does sometimes change where the [1] is [2] or [3], etc.  When I look at the document properties this time, the file location is showing as "C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\08L34BSK".  The file location changes every time I open the file though.

The URL in browser doesn't ever change; it stays at "https://www.stmpartners.com/private/default.asp".

I can send you the login credentials so you can see exactly what happens in the site, if there is some way of sending them to you in a secured way so that only you can access them.

Thanks!
Renee
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I have set up a file just for reburge to obtain contact only for this purpose. Once file is collected and acknowledged I will delete it.

Link is:

http://www.ee-stuff.com/Expert/Upload/viewFilesQuestion.php?qid=27411478 


Cheers
craisin
0
 
rsburgeAuthor Commented:
Thank you!  I will send the credentials from the domain of @mho.com.  You should have the email momentarily.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Thanks for that - have received it and will try shortly.

Cheers
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I have logged on , and navigated to the appopriate page to do the download.
The file name comes up in the browser as:
https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp?FileID=1456627

Unfortunately I cannot seem to get the download to happen, so it never opens up inside Adobe Acrobat.

I must advise you that the file is using TLS 1.0, RC4 with 128 bit encryption (High); RSA with 1024 bit exchange via HyperText Transfer Protocol(with Privacy)
and so there MAY be something set up on yur computer to decrypt that file, something put in place when you established your account with SunTrust Mortgage.

Can you send me a screen capture of what you see when adobe opens up, and is it possible within acrobat to "Save" the file manually? If not, then I suspect we are unable to do whjat you want because of securoty restrictions placed on the PDF file. When you create a PDF you can actuall ystipulate that certain files cannot be either printed, altered or saved. Maybe Suntrust have done just that.


I await your response to my question and the screen capture if possible.

Cheers
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
It is actually trying to download, but says the file cannot be found.

Has the file changed?

My screen shows as follows:

 Screen after going to Rate Sheet Tab
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
I seem to be running across a problem involving "FileViewer" which is a Javascript call being made. It attempts to open a new instance of
Internet explorer then run "Fileviewer.asp" but cannot locate it.

Does all this mean anythiong to you?

I understand now that you can look back at archived versiosns of the files and that the files ARE current and so should appear on my screen.

I will just await your screen captures (include what is showing in the Internet Explorer as well when the Adobe file is displaying).

Cheers
Chris
0
 
rsburgeAuthor Commented:
Hello - I am not sure why you are unable to download the file unless it is something in your security settings on IE.

At any rate, I finally figured this one out...  It requires using the SDK for Acrobat.  I will attach the little bit of code that I use to get the file saved.  The SDK might be able to help in the other open question regarding removing hidden text and metadata.

I'm not sure how to close this question because I want to give you the points for all the time you have spent on this question.

Thank you for all of your help on this question.
Renee
If InStr(link.ID, "RateSheetGrid_ctl05_View") > 0 Then
            Debug.Print link.href
            rng = Right(link.href, InStr(link.href, "javascript:PopUpFileViewer(") + 8)
            Debug.Print rng
            rng = Left(rng, InStr(rng, ");") - 1)
            Debug.Print rng
            urlXls = "https://www.stmpartners.com/Private/ResourceCenter/FileViewer.asp?FileID=" & rng
            ' Declarations
            Dim gApp As Acrobat.CAcroApp
            Dim gPdDoc As Acrobat.CAcroPDDoc
            Dim gAvDoc As Acrobat.CAcroAVDoc
            Set gApp = CreateObject("AcroExch.App")
                gApp.Show
            IE.navigate urlXls
            While IE.Busy
                Sleep 200
                FileDwnld '<--public function that finds and activates the open button on the download file dialog box
                Sleep 200
            Wend
            Sleep 2000
            While gApp.GetActiveDoc Is Nothing
            Wend
            Set gAvDoc = gApp.GetActiveDoc
            Set gPdDoc = gAvDoc.GetPDDoc
                gPdDoc.Save 1, filePath3
                gPdDoc.Close
                gAvDoc.Close False
                gApp.Exit
            Set gPdDoc = Nothing
            Set gAvDoc = Nothing
            Set gApp = Nothing
            acrobat_close '<-- public function that finds and exits all open acrobat windows.
            IE.navigate logoutURL
            While IE.Busy
                DoEvents
            Wend
            While IE.readyState <> 4
                DoEvents
            Wend
            IE.Quit
            Set IE = Nothing
        End If
    Next

Open in new window

0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Thanks Renee.

Much appreciated. I am so glad it has worked out for you.

I am sorry I have been a little tardy the last few days.

My eldest sister died on Monday aged just 57.

She contracted "Golden Staph" after attending a dental appointment and died within 14 days of first falling ill. My family is totally devastated and I am finding it hard to believe I will not see her again. She lives in Brisbane in the state of Queensland which is about 1846 Kilometres (1141 miles) away from me here in Melbourne. I have not seen her since last Christmas and I was going up there (by car) in five weeks to spend some time with her and my mother. Now it is too late.

I am programming to keep my mind busy, but it is hard.

I will attend to your other questions as quickly as possible, but a little time away at the funeral may occur over the next week or so.

Kindest regards
Chris
0
 
kemi67Commented:

I am sorry about your sister death
My sincere condolences Chris

Michele
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Thanks Michele
0
 
rsburgeAuthor Commented:
Chris,

I am so sorry for your loss.  Your family is in our prayers.  

Please don't worry about the other open questions, you can get to them whenever you feel up to it.  

Take care,
Renee
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Thanks Renee,

I like to keep busy, so I will get to work on them tomorrow.

My sister;'s funeral is on Tuesday, but the family in Queensland have told me not to come up since I will be up there in another 5 weeks anyway and I could not afford two trips. I feel guilty, but the cost is prohibitive.

Thank you for your prayers. I am a very active member of my local church (St Thomas the Apostle, Blackburn www.StThomasTheApostle.org.au), being their computer "guru" , reader and commentator. That keeps me close to the thought that Karen is now at rest with our common father.

Thanks again....I will get back to matters shortly.

Chris
0
 
rsburgeAuthor Commented:
craisin did a lot of work on this particular question, so I wanted him to get the points.  In the end, however, I found a solution using his guidance from the many questions he has helped me with in the past.
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Renee,

Could you please show the code for "FileDwnld" (public function) otherwise others will not actually be able to use the code you showed in your last code posting (me included).

Thanks for the points. It is very appreciated (it was a battle for me to make my monthly quota this month under the circumatances).

Kindest regards
Chris
0
 
Chris Raisin(Retired Analyst/Programmer)Commented:
Renee,

As I requested in the last posting, could you please show the code for "FileDwnld" (public function) otherwise others will not actually be able to use the code you showed in your last code posting (me included).

Cheers
Chris

0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 23
  • 15
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now