Problem Generating Key = reprise

W

Wes

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
 
D

Douglas J. Steele

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")
 
X

XPS350

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 add1

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
 
J

John W. Vinson

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.
 
D

Dirk Goldgar

Wes said:
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)
 

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