InStrRev issue

J

John Keith

Can anyone tell me why the results of these are the same?

rsData.Fields("DataText") contains "Transaction Void #178"
x = InStrRev(rsData.Fields("DataText"), "#")
y = InStr(1, rsData.Fields("DataText"), "#")

x and y both end up 18... I had expected that x would be 4. I also tried
assigning the recordset value to a string "S" just to make sure ADO wasn't
doing something strange to the string functions, still had the same results.

I had to use the StrReverse() function in my Right$ function to get the
"#178" extracted properly.

Right$(rsData.Fields("DataText"), _
InStr(1, StrReverse(rsData.Fields("DataText")), "#")) 'returns "#178"
 
C

Chip Pearson

Both InStr and InStrRev return the position of the found character counting
left to right. Since you have only a single occurrence of the '#' character,
both InStr and InStrRev return the same value.

InStrRev does not return the position counting right to left. Both InStr and
InStrRev results are counting from the left.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)
 

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