Prev: Access 2007 - Select Max
Next: Problem Generating Key
From: Wes on 22 Mar 2010 16:08 has anybody had a chance to take a look at my posting on 3/19 at 8:13 P.M. I find it strange that I get a space added to my variable After retrieving the highest key, I pick up the last 4 characters and add 1 intNewKey = Int(Mid(strMax, 3, 4)) + 1 ' pick up the last 4 bytes and increment [ IntNewkey 1003 ] I then have to convert it back to a string to create the new key strNewKey = Str(intNewKey) ' cast to string when I do, the variabel has a blank placed in the first position [ StrNewKey " 1003" Notice the leading space ] Is there something I am doing incorrectly here, is this the way it is supposed to work? I have done some research and a lot of testing, and it always appears to work like this. thanks Wes
From: Douglas J. Steele on 22 Mar 2010 17:08 According to the Help file entry for the Str function "When numbers are converted to strings, a leading space is always reserved for the sign of number. If number is positive, the returned string contains a leading space and the plus sign is implied." Try: strNewKey = Format(CInt(Right(strMax, 4) + 1, "0000") -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "Wes" <wesjester(a)charter.net> wrote in message news:m7Qpn.14851$y13.6982(a)newsfe12.iad... > has anybody had a chance to take a look at my posting on 3/19 at 8:13 P.M. > > I find it strange that I get a space added to my variable > > After retrieving the highest key, I pick up the last 4 characters and add > 1 > > intNewKey = Int(Mid(strMax, 3, 4)) + 1 ' pick up the last 4 bytes and > increment > > [ IntNewkey 1003 ] > > > I then have to convert it back to a string to create the new key > > strNewKey = Str(intNewKey) ' cast to string > > when I do, the variabel has a blank placed in the first position > > [ StrNewKey " 1003" Notice the leading space ] > > > Is there something I am doing incorrectly here, is this the way it is > supposed to work? > > I have done some research and a lot of testing, and it always appears to > work like this. > > thanks > > Wes
From: XPS350 on 22 Mar 2010 17:11 On 22 mrt, 21:08, Wes <wesjes...(a)charter.net> wrote: > has anybody had a chance to take a look at my posting on 3/19 at 8:13 P.M.. > > I find it strange that I get a space added to my variable > > After retrieving the highest key, I pick up the last 4 characters and add 1 > > intNewKey = Int(Mid(strMax, 3, 4)) + 1 ' pick up the last 4 bytes and > increment > > [ IntNewkey 1003 ] > > I then have to convert it back to a string to create the new key > > strNewKey = Str(intNewKey) ' cast to string > > when I do, the variabel has a blank placed in the first position > > [ StrNewKey " 1003" Notice the leading space ] > > Is there something I am doing incorrectly here, is this the way it is > supposed to work? > > I have done some research and a lot of testing, and it always appears to > work like this. > > thanks > > Wes I cannot exactly figure out what is wrong with your code. I do know Int isn't the right function to use. It cuts off the decimal part. Access is rathet tolerant, so this code will do: Dim Newkey As String Newkey = Format(Mid(strMax, 3, 4) + 1, "0000") Debug.Print Left(strMax, 2) & Newkey Groeten, Peter http://access.xps350.com
From: John W. Vinson on 22 Mar 2010 17:17 On Mon, 22 Mar 2010 16:08:45 -0400, Wes <wesjester(a)charter.net> wrote: >I then have to convert it back to a string to create the new key > >strNewKey = Str(intNewKey) ' cast to string > >when I do, the variabel has a blank placed in the first position > >[ StrNewKey " 1003" Notice the leading space ] > > >Is there something I am doing incorrectly here, is this the way it is >supposed to work? Try using a negative number. You'll see that it comes out as "-1003" It's leaving a space for the sign. You can use Trim(Str(intNewKey)) to trim off the leading blank. -- John W. Vinson [MVP]
From: Dirk Goldgar on 22 Mar 2010 20:49
"Wes" <wesjester(a)charter.net> wrote in message news:m7Qpn.14851$y13.6982(a)newsfe12.iad... > has anybody had a chance to take a look at my posting on 3/19 at 8:13 P.M. > > I find it strange that I get a space added to my variable > > After retrieving the highest key, I pick up the last 4 characters and add > 1 > > intNewKey = Int(Mid(strMax, 3, 4)) + 1 ' pick up the last 4 bytes and > increment > > [ IntNewkey 1003 ] > > > I then have to convert it back to a string to create the new key > > strNewKey = Str(intNewKey) ' cast to string > > when I do, the variabel has a blank placed in the first position > > [ StrNewKey " 1003" Notice the leading space ] > > > Is there something I am doing incorrectly here, is this the way it is > supposed to work? > > I have done some research and a lot of testing, and it always appears to > work like this. Use Cstr() instead of Str() -- and CInt() instead of Int(): intNewKey = CInt(Mid(strMax, 3, 4)) + 1 strNewKey = CStr(intNewKey) -- Dirk Goldgar, MS Access MVP Access tips: www.datagnostics.com/tips.html (please reply to the newsgroup) |