Hi Kevin
It helps to give a bit more overview of what you are trying to achieve. I'm going to have to guess that you have a field which contains a path which is relative to the location of your database (CurrentProject.Path).
So, let's say CurrentProject.Path is C:\Users\Documents\Databases\MyProject:
If the relative path is SubfolderA\SubfolderB, then the desired result is:
---In MS_Access_Professionals@yahoogroups.com, <qingqinga@...> wrote :
C:\Users\Documents\Databases\MyProject\SubfolderA\SubfolderB
If the relative path is ..\..\SubfolderC\SubfolderD, then the desired result is:
C:\Users\Documents\SubfolderC\SubfolderD
Is my assumption correct?
If so, then you should use a loop, checking for "..\" at the beginning of the relative path. For as long as it is there, you use Mid() to strip it off and use ParentPath to go up another level from CurrentProject.Path. When there are no more "..\" to be found, you append what is left of the relative path to what is left of CurrentProject.Path, with a backslash between.
(Please note that this is "air code" - I am writing it off the top of my head and haven't tested it!)
Dim strAbsolutePath as String
Dim strRelativePath as StringstrAbsolutePath = CurrentProject.Path
strRelativePath = <some value from a field?>
Do While Left( strRelativePath, 3 ) = "..\"
strAbsolutePath = ParentPath( strAbsolutePath )
strRelativePath = Mid( strRelativePath, 4 )
Loop
strAbsolutePath = strAbsolutePath & "\" & strRelativePath
You could even put this code in a Function AddRelativePath( AbsPath as String, RelPath as String) as String
Best wishes,
Graham
---In MS_Access_Professionals@yahoogroups.com, <qingqinga@...> wrote :
Dear Graham,
I have one more question, Suppose the path is like this: "..\..\" Is that possible to count how many "..\" there is, if that it is possible, so combining the ParentPath function I will be able to get the actual path of a file with "..\" or "..\..\" or even more "..\..\..\". Thanks in advance.
Best Regards,
Kevin
On 21-Mar-2019 7:46 AM, graham@... [MS_Access_Professionals] wrote:
Hi KevinInStrRev() searches back from the end of a string until it finds a given character (or string) and it returns the position of that character. You can use this to find the last backslash in the path, and then use the Left() function to cut off the end of the path, including the backslash you have found.It pays to use Len(Path) - 1 to start your search one character back from the end, just in case the last character is already a backslash.Now you should understand how this function works:Public Function ParentPath(ByVal Path As String) As StringParentPath = Left(Path, InStrRev(Path, "\", Len(Path) - 1) - 1)End FunctionBest wishes,Graham Mandeno [Access MVP 1996-2016]
---In MS_Access_Professionals@yahoogroups.com, <qingqinga@...> wrote :
Dear Duane,Thanks a lot. Yes. That's exactly what I want. I have tried instrRew(), but I didn't get the result I want. I only know a little about it. I'll try again and again to get the expected result.Best Result,Kevin发自 WPS邮箱客戶端在 "Duane Hookom duanehookom@... [MS_Access_Professionals]" <MS_Access_Professionals@yahoogroups.com>,2019年3月21日 01:05写道:
Hi Kevin,So you want the current project path without rightmost folder name?If this is the case you can use InstrRev() functionhttps://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/t2ekk41a(v=vs.90)DuaneFrom: MS_Access_Professionals@yahoogroups.com <MS_Access_Professionals@yahoogroups.com> on behalf of qingqinga qingqinga@... [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com>
Sent: Wednesday, March 20, 2019 11:15 AM
To: MS_Access_Professionals@yahoogroups.com
Subject: Re: [MS_AccessPros] How the get the path.Dear Domenico,Thanks for your reply. My point is to only get the path without the folder where the current project locates. Desktop is not the case.Best Regards,Kevin发自 WPS邮箱客戶端在 "Domenico Cozzolino domcoz@... [MS_Access_Professionals]" <MS_Access_Professionals@yahoogroups.com>,2019年3月20日 15:31写道:path = Environ("USERPROFILE") & "\Desktop"Ciao DomenicoIl giorno mer 20 mar 2019 alle ore 07:24 crystal 8 strive4peace2008@... [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> ha scritto:
__._,_.___
Posted by: graham@mandeno.com
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (12) |
Have you tried the highest rated email app?
With 4.5 stars in iTunes, the Yahoo Mail app is the highest rated email app on the market. What are you waiting for? Now you can access all your inboxes (Gmail, Outlook, AOL and more) in one place. Never delete an email again with 1000GB of free cloud storage.
SPONSORED LINKS
.
__,_._,___
Tidak ada komentar:
Posting Komentar