[AccessD] CurrentProject.Path syntax?

Max Wanadoo max.wanadoo at gmail.com
Thu Mar 18 04:57:16 CDT 2010


Gustav, 
Ah yes, you are correct BUT I have started to set up a little CLASS to
handle these and will  have the same functionality. After all .net is just a
collection of these  little classes.

I thank you....Max


Here is the test:
Sub test1()
    Dim cls As New clsFolders
    Dim spath As String
    spath = cls.libCurrentFolder(CurrentProject.Path) & "MyPic.jpg"
    Debug.Print spath
    
    Debug.Print CurDir, CurrentProject.Path
    Call cls.libSetCurPathToProjectPath
    Debug.Print CurDir, CurrentProject.Path
    Call cls.libResetCurPathFromProjectPath
    Debug.Print CurDir, CurrentProject.Path
    
End Sub

And here is the CLASS:

Option Compare Database
Option Explicit
Public libStrProjPath As String, libStrProjDrive As String, libStrCurPath As
String, libStrCurDrive As String

Public Function libCurrentFolder(strIn As String) As String
' this function ensures that there is a trailing backslash (\) at then end
of a path.
' useful when appending a file name to, say currentproject.path
' example of use: MyFile = clsFolder.libCurrentFolder(CurrentProject.Path) &
"MyPic.jpg"
    Dim strL As String, strR As String
    strL = Left(strIn, 2)
    strR = Replace(Mid(strIn, 3) & "\", "\\", "\")
    libCurrentFolder = strL & strR
End Function

Public Sub libSetCurPathToProjectPath()
' Declare  the  varibles as public so that they can be retained for
re-setting back.
' this is used when there is a need to Shell out to a (say) a batch file
located in the same
' folder as the application but you don't want to have to  put the  full
path in for the
' system application which will be invoked  by the (say) batch  file and
prefer  to let  the
' OS itself locate the object. If you do not set the path before hand then
typically you will
' have  the Current Drive DIFFERENT to the Project Path Drive.
' This will line them up.  It is used in conjunction with
libResetCurPathFromProjectPath
' get the project location:
    libStrProjPath = CurrentProject.Path: libStrProjDrive =
Left(libStrProjPath, 1)
    ' get the current location
    libStrCurPath = CurDir: libStrCurDrive = Left(libStrCurPath, 1)
    ' change the current location to the project location so that we can run
the blat.exe via the batch.bat file etc
    ChDrive libStrProjDrive: ChDir libStrProjPath
End Sub

Public Sub libResetCurPathFromProjectPath()
' this is the counterpart to libSetCurPathToProjectPath()
' now restore the current location back to what it was.
    ChDrive libStrCurDrive
    ChDir libStrCurPath
End Sub

 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: Thursday, March 18, 2010 9:10 AM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] CurrentProject.Path syntax?

Hi Max

This thread demonstrates yet another reason to turn to something more
clever.
In Visual Studio (dotNet) this is done in one line which tells it all:

  someFile = Path.Combine(somePath, someFileName);

freeing your valuable time from low-level stuff like if a backslash is
present or not.

/gustav


>>> max.wanadoo at gmail.com 17-03-2010 22:45 >>>

Bit more complicated.

    str = "\\svr\c\"
    strL = Left(str, 2)
    strR = Replace(Mid(str, 3) & "\", "\\", "\")
    str = strL & strR

Max



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




More information about the AccessD mailing list