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)
 
B

BruceM via AccessMonster.com

I replied about 11 hours before you made this posting. Aside from the issues
raised here, if the first two digits are always the same you can just append
them before the incremented number for display purposes. If they are
intended to represent the year you need to make provisions to change the
leading numbers next year, and (presumably) to restart the incrementing
numbers at the desired value. Your code as written in the original thread
will do neither that I can see.
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
 

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