Extract file name from path

W

walter

I have a table with a text field containing file paths.

e.g. c:\folder\subfolder\file1.doc

How can I extract the file name 'file1' to a new field in
the table either by VBA or update query? N.B. I do not
want the extension.

Regards,

Walter
 
A

Allen Browne

Assuming Access 2000 or later, use InstrRev() to get the last slash and the
last dot:

Remove the file extension with:
Left([MyField], InstrRev([MyField], ".") - 1)

Remove the path with:
Mid([MyField], InStrRev([MyField], "\") + 1)
 
W

walter

Thanks Allen,

But I get the error message 'Undefined Function 'InstrRev'
in expression.

I am running Access 2000 SP3, full install but I am not
running Visual Basic.

Should this function be available to me? Do I need to
change some of my references?

Walter
-----Original Message-----
Assuming Access 2000 or later, use InstrRev() to get the last slash and the
last dot:

Remove the file extension with:
Left([MyField], InstrRev([MyField], ".") - 1)

Remove the path with:
Mid([MyField], InStrRev([MyField], "\") + 1)

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

I have a table with a text field containing file paths.

e.g. c:\folder\subfolder\file1.doc

How can I extract the file name 'file1' to a new field in
the table either by VBA or update query? N.B. I do not
want the extension.

Regards,

Walter


.
 
D

Douglas J. Steele

It's possible that your references are messed up.

This can be caused by differences in either the location or file version of
certain files between the machine where the application was developed, and
where it's being run (or the file missing completely from the target
machine). Such differences are common when new software is installed.

On the machine(s) where it's not working, open any code module (or open the
Debug Window, using Ctrl-G, provided you haven't selected the "keep debug
window on top" option). Select Tools | References from the menu bar. Examine
all of the selected references.

If any of the selected references have "MISSING:" in front of them, unselect
them, and back out of the dialog. If you really need the reference(s) you
just unselected (you can tell by doing a Compile All Modules), go back in
and reselect them.

If none have "MISSING:", select an additional reference at random, back out
of the dialog, then go back in and unselect the reference you just added. If
that doesn't solve the problem, try to unselect as many of the selected
references as you can (Access may not let you unselect them all), back out
of the dialog, then go back in and reselect the references you just
unselected. (NOTE: write down what the references are before you delete
them, because they'll be in a different order when you go back in)


--
Doug Steele, Microsoft Access MVP

(No private e-mails, please)



walter said:
Thanks Allen,

But I get the error message 'Undefined Function 'InstrRev'
in expression.

I am running Access 2000 SP3, full install but I am not
running Visual Basic.

Should this function be available to me? Do I need to
change some of my references?

Walter
-----Original Message-----
Assuming Access 2000 or later, use InstrRev() to get the last slash and the
last dot:

Remove the file extension with:
Left([MyField], InstrRev([MyField], ".") - 1)

Remove the path with:
Mid([MyField], InStrRev([MyField], "\") + 1)

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

I have a table with a text field containing file paths.

e.g. c:\folder\subfolder\file1.doc

How can I extract the file name 'file1' to a new field in
the table either by VBA or update query? N.B. I do not
want the extension.

Regards,

Walter


.
 
J

John Spencer (MVP)

InStrRev is available in Access 2000 in VBA, but it is not available to be used
in a query.

You either have to write a little user function to use it or you can _TRY_ the following.

Left(Dir([MyField]),Instr(1,Dir(MyField),".")-1)


The simplest user function that would work would be something like:

Public Function fInStrRev(StringIn, StrFind)

fInStrRev = InstrRev(StringIn,StrFind,-1,1)

End Function

You can call this function in place of InstrRev in Allen Browne's suggestion.
Thanks Allen,

But I get the error message 'Undefined Function 'InstrRev'
in expression.

I am running Access 2000 SP3, full install but I am not
running Visual Basic.

Should this function be available to me? Do I need to
change some of my references?

Walter
-----Original Message-----
Assuming Access 2000 or later, use InstrRev() to get the last slash and the
last dot:

Remove the file extension with:
Left([MyField], InstrRev([MyField], ".") - 1)

Remove the path with:
Mid([MyField], InStrRev([MyField], "\") + 1)

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

I have a table with a text field containing file paths.

e.g. c:\folder\subfolder\file1.doc

How can I extract the file name 'file1' to a new field in
the table either by VBA or update query? N.B. I do not
want the extension.

Regards,

Walter


.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top