[AccessD] CmdRunApp Help

Jim DeMarco Jdemarco at hshhp.org
Wed Dec 10 07:20:10 CST 2003


John,

Why are you using using On Error Resume Next when the FileSystemObject contains a FileExists method?  This way you can have meaningful error handling if necessary.
<snip>
    Set fs = CreateObject("Scripting.FileSystemObject")

    If fs.FileExists(strFileName) Then
      fs.CopyFile strFileName, strDestDir
      CopyFile = True
    End if
</snip>

Jim DeMarco
Director Product Development
Hudson Health Plan


-----Original Message-----
From: John W. Colby [mailto:jcolby at colbyconsulting.com]
Sent: Wednesday, December 10, 2003 7:27 AM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] CmdRunApp Help


Erwin,

Why not post code as I did?

John W. Colby 
www.ColbyConsulting.com

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Erwin Craps -
IT Helps
Sent: Wednesday, December 10, 2003 2:38 AM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] CmdRunApp Help


Hi John

Why using the filesystemobject and not the regular VBA commands? 
Faster?

Erwin

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John W. Colby
Sent: Tuesday, December 09, 2003 9:11 PM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] CmdRunApp Help

why don't you just do it from within Access?  If the filesystem object
is accessible, reference it.  Then:

Function CopyFile(strFileName As String, strDestDir As String) As
Boolean On Error GoTo Err_CopyFile Dim fs As FileSystemObject
    Set fs = CreateObject("Scripting.FileSystemObject")
    'On Error Resume Next
    'if the file doesn't exist, ignore the error
    fs.CopyFile strFileName, strDestDir
    CopyFile = True
Exit_CopyFile:
On Error Resume Next
    Set fs = Nothing
Exit Function
Err_CopyFile:
        MsgBox Err.Description, , "Error in Sub basUtils.CopyFile"
        Resume Exit_CopyFile
    Resume 0    '.FOR TROUBLESHOOTING
End Function
Sub DeleteFile(strFileName As String)
On Error GoTo Err_DeleteFile
Dim fs As FileSystemObject
    Set fs = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    'if the file doesn't exist, ignore the error
    fs.DeleteFile strFileName
Exit_DeleteFile:
On Error Resume Next
    Set fs = Nothing
Exit Sub
Err_DeleteFile:
    Select Case Err
    Case 0      '.insert Errors you wish to ignore here
        Resume Next
    Case Else   '.All other errors will trap
        Beep
        MsgBox Err.Description, , "Error in Sub basUtils.DeleteFile"
        Resume Exit_DeleteFile
    End Select
    Resume 0    '.FOR TROUBLESHOOTING
End Sub
Sub RenameFile(strFileName As String, strNewName As String) On Error
GoTo Err_RenameFile
    Dim fs As FileSystemObject
    Dim f As File
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(strFileName)
    f.Name = strNewName
Exit_RenameFile:
On Error Resume Next
    Set f = Nothing
    Set fs = Nothing
Exit Sub
Err_RenameFile:
    Select Case Err
    Case 0      '.insert Errors you wish to ignore here
        Resume Next
    Case Else   '.All other errors will trap
        Beep
        MsgBox Err.Description, , "Error in Sub basUtils.RenameFile"
        Resume Exit_RenameFile
    End Select
    Resume 0    '.FOR TROUBLESHOOTING
End Sub
'.Comments  :
'.Parameters:
'.Created by: John W. Colby
'.Created   : 12/5/2002 9:29:43 PM
Sub CreateDir(strPath As String)
On Error GoTo Err_CreateDir
Dim fs As FileSystemObject
    Set fs = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    'if the file doesn't exist, ignore the error
    fs.CreateFolder strPath
Exit_CreateDir:
On Error Resume Next
    Set fs = Nothing
Exit Sub
Err_CreateDir:
    Select Case Err
    Case 0      '.insert Errors you wish to ignore here
        Resume Next
    Case Else   '.All other errors will trap
        Beep
        MsgBox Err.Description, , "Error in Sub basUtils.CreateDir"
        Resume Exit_CreateDir
    End Select
    Resume 0    '.FOR TROUBLESHOOTING
End Sub

John W. Colby
www.ColbyConsulting.com

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Gowey Mike W
Sent: Tuesday, December 09, 2003 3:03 PM
To: Access Developers discussion and problem solving
Subject: [AccessD] CmdRunApp Help



Hello all,

I have within my database a call to run a batch program that takes a
file that resides on one of our Network servers and copies it to our
local server and renames it to a text file.  I than take that text file
and import it into a table.

My question is, is there a way to call the batch program and have it run
in the background or run minimized.  Right now it works but the dos
window comes up over the top of the database and does the copy and
rename in other words runs in the foreground.

I have a progress meter that comes up that I would like the user to see
rather than the ugly little black dos window.

Thanks in advance for any advice.


Mike Gowey, MCSA, A+
Team Leader - SRCI
Information Systems & Services Division



_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


***********************************************************************************
"This electronic message is intended to be for the use only of the named recipient, and may contain information from Hudson Health Plan (HHP) that is confidential or privileged.  If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of the contents of this message is strictly prohibited.  If you have received this message in error or are not the named recipient, please notify us immediately, either by contacting the sender at the electronic mail address noted above or calling HHP at (914) 631-1611. If you are not the intended recipient, please do not forward this email to anyone, and delete and destroy all copies of this message.  Thank You".
***********************************************************************************



More information about the AccessD mailing list