extract only numeric part from entry in a text field

C

Chris

I am importing a text file from an external source where
the customer name and ID appears in the same field,
like "Premium Transport (99879)". Is there any way that I
can extract only the ID, in this case the "99879"? The ID
always follows the name and is always in brackets.

Any help will be appreciated!
 
K

Ken Snell [MVP]

In which context do you wish to extract the numbers? In a query? On a form?
In a report?

If the numbers are always between ( ) characters, and are at the end of the
string in the way you've shown, here is an expression that will extract the
numbers (assumption in this expression is that the text string is
represented by the variable/field MyString):

MyNumber = Mid(Left(MyString, InStrRev(MyString, ")") - 1),
InStrRev(MyString, "(", InStrRev(MyString, ")") - 1) + 1)
 
C

Chris

Thanks for the reply Ken. I want to extract the numbers in
a query. I've tried this in the query:

trans: Mid(Left([transporter],InStrRev([transporter],")")-
1),InStrRev([transporter],"(",InStrRev([transporter],")")-
1)+1)

But ut returns a message "Undefined function 'InStrRev'in
expression"?
 
K

Ken Snell [MVP]

Which version of ACCESS are you using?

--

Ken Snell
<MS ACCESS MVP>

Chris said:
Thanks for the reply Ken. I want to extract the numbers in
a query. I've tried this in the query:

trans: Mid(Left([transporter],InStrRev([transporter],")")-
1),InStrRev([transporter],"(",InStrRev([transporter],")")-
1)+1)

But ut returns a message "Undefined function 'InStrRev'in
expression"?
-----Original Message-----
In which context do you wish to extract the numbers? In a query? On a form?
In a report?

If the numbers are always between ( ) characters, and are at the end of the
string in the way you've shown, here is an expression that will extract the
numbers (assumption in this expression is that the text string is
represented by the variable/field MyString):

MyNumber = Mid(Left(MyString, InStrRev(MyString, ")") - 1),
InStrRev(MyString, "(", InStrRev(MyString, ")") - 1) + 1)
--

Ken Snell
<MS ACCESS MVP>




.
 
C

chris

Access 2000
-----Original Message-----
Which version of ACCESS are you using?

--

Ken Snell
<MS ACCESS MVP>

Thanks for the reply Ken. I want to extract the numbers in
a query. I've tried this in the query:

trans: Mid(Left([transporter],InStrRev ([transporter],")")-
1),InStrRev([transporter],"(",InStrRev ([transporter],")")-
1)+1)

But ut returns a message "Undefined function 'InStrRev'in
expression"?
-----Original Message-----
In which context do you wish to extract the numbers?
In a
query? On a form?
In a report?

If the numbers are always between ( ) characters, and
are
at the end of the
string in the way you've shown, here is an expression that will extract the
numbers (assumption in this expression is that the text string is
represented by the variable/field MyString):

MyNumber = Mid(Left(MyString, InStrRev(MyString, ")") - 1),
InStrRev(MyString, "(", InStrRev(MyString, ")") - 1) + 1)
--

Ken Snell
<MS ACCESS MVP>

I am importing a text file from an external source where
the customer name and ID appears in the same field,
like "Premium Transport (99879)". Is there any way
that
I
can extract only the ID, in this case the "99879"?
The
ID
always follows the name and is always in brackets.

Any help will be appreciated!


.


.
 
K

Ken Snell [MVP]

InStrRev function is available in 2000, so perhaps you have a missing
reference in the database. If references are messed up -- you can get that
Undefined Function message.

Try following these steps (from a post by Douglas Steele, MVP):

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)

For far more than you could ever want to know about this problem, check out
http://members.rogers.com/douglas.j.steele/AccessReferenceErrors.html



If this doesn't fix it, check that you have the latest patches/upgrades for
Jet dll file.
--

Ken Snell
<MS ACCESS MVP>



chris said:
Access 2000
-----Original Message-----
Which version of ACCESS are you using?

--

Ken Snell
<MS ACCESS MVP>

Thanks for the reply Ken. I want to extract the numbers in
a query. I've tried this in the query:

trans: Mid(Left([transporter],InStrRev ([transporter],")")-
1),InStrRev([transporter],"(",InStrRev ([transporter],")")-
1)+1)

But ut returns a message "Undefined function 'InStrRev'in
expression"?

-----Original Message-----
In which context do you wish to extract the numbers? In a
query? On a form?
In a report?

If the numbers are always between ( ) characters, and are
at the end of the
string in the way you've shown, here is an expression
that will extract the
numbers (assumption in this expression is that the text
string is
represented by the variable/field MyString):

MyNumber = Mid(Left(MyString, InStrRev(MyString, ")") -
1),
InStrRev(MyString, "(", InStrRev(MyString, ")") - 1) + 1)
--

Ken Snell
<MS ACCESS MVP>

message
I am importing a text file from an external source where
the customer name and ID appears in the same field,
like "Premium Transport (99879)". Is there any way that
I
can extract only the ID, in this case the "99879"? The
ID
always follows the name and is always in brackets.

Any help will be appreciated!


.


.
 
C

chris

Thnx Ken, the references were messed up!
-----Original Message-----
InStrRev function is available in 2000, so perhaps you have a missing
reference in the database. If references are messed up -- you can get that
Undefined Function message.

Try following these steps (from a post by Douglas Steele, MVP):

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)

For far more than you could ever want to know about this problem, check out
http://members.rogers.com/douglas.j.steele/AccessReference Errors.html



If this doesn't fix it, check that you have the latest patches/upgrades for
Jet dll file.
--

Ken Snell
<MS ACCESS MVP>



Access 2000
-----Original Message-----
Which version of ACCESS are you using?

--

Ken Snell
<MS ACCESS MVP>

Thanks for the reply Ken. I want to extract the
numbers
in
a query. I've tried this in the query:

trans: Mid(Left([transporter],InStrRev ([transporter],")")-
1),InStrRev([transporter],"(",InStrRev
([transporter],")")-
1)+1)

But ut returns a message "Undefined function 'InStrRev'in
expression"?

-----Original Message-----
In which context do you wish to extract the numbers? In a
query? On a form?
In a report?

If the numbers are always between ( ) characters,
and
are
at the end of the
string in the way you've shown, here is an expression
that will extract the
numbers (assumption in this expression is that the text
string is
represented by the variable/field MyString):

MyNumber = Mid(Left(MyString, InStrRev (MyString, ")") -
1),
InStrRev(MyString, "(", InStrRev(MyString, ")") -
1) +
1)
--

Ken Snell
<MS ACCESS MVP>

message
I am importing a text file from an external source where
the customer name and ID appears in the same field,
like "Premium Transport (99879)". Is there any way that
I
can extract only the ID, in this case the "99879"? The
ID
always follows the name and is always in brackets.

Any help will be appreciated!


.



.


.
 

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