Substr Function | Community
Skip to main content
June 23, 2015
Question

Substr Function

  • June 23, 2015
  • 16 replies
  • 6671 views

I have a script that "walks" through all the records in an Access database table to find the largest file ID number. This script has been working correctly. Now I need to add a prefix to all the ID numbers. This requires me to modify my script so it ignores the one character prefix (prefix is either a "T" or a "Y"). I was trying to use the Substr function to accomplish this.

This is the original script that works:


while(!oDB.isEOF()){


if(xfa.record.DataConnection1.FileName.value > nMaxID)


  nMaxID = Number(xfa.record.DataConnection1.FileName.value);


oDB.next();


}


Below is how I tried to modify the script above to ignore the prefix but I get an error that says Substr is not defined. What have I got wrong?


while(!oDB.isEOF()){


if(xfa.record.DataConnection1.FileName.value > nMaxID)


  nMaxID = Number(Substr(xfa.record.DataConnection1.FileName.value,2,12);


oDB.next();


}


This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

16 replies

DKinsleyAuthor
June 24, 2015

This is now working. Thank you to all the responders for helping me solve this issue.

This works:


while(!oDB.isEOF()){


if(xfa.record.DataConnection1.FileName.value > nMaxID)


  nMaxID = Number(xfa.record.DataConnection1.FileName.value.substr(1,12));


  Test.rawValue = nMaxID;


oDB.next();


}


Thank you!

DKinsleyAuthor
June 25, 2015

I am mistaken. The script above is still not working correctly.

radzmar: your script does not include "substr" - is it missing or can I use Number(vValue, 2, 5) the same way as substr ?

radzmar
June 25, 2015

Yes, the code got a bit flawed by copy and paste at  my mobile I'm afraid :-O

DKinsleyAuthor
June 25, 2015

Thanks for your help. When you can, please post what your script should look like.

Thank you

radzmar
June 26, 2015

Here'e the complete script I was thinking of.


while (!oDB.isEOF()) {  


  if (xfa.record.DataConnection1.FileName.value > nMaxID) {


       var vValue = xfa.record.DataConnection1.FileName.value;


       nMaxID = Number(vValue.substr(1,12));


  }


  oDB.next();


}


DKinsleyAuthor
June 26, 2015

Thank you. I will give it a try. My concern is that the vValue will not find the largest number in the database column when each value starts with text ("T" or "F"). Example T1012 or F1013