From: Wes on
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
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
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
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
"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)

 |  Next  |  Last
Pages: 1 2
Prev: Access 2007 - Select Max
Next: Problem Generating Key