Solved

text box data manipulation

Posted on 2007-11-23
13
143 Views
Last Modified: 2010-04-30
Hi All
I have 2 txtboxs both have numbers in
eg txtBox1 = 200
txtBox2 = 50

I have the following code which on each relative txt change event the number entered is subtracted from txtBox1 firstly and then txtBox2 if txtBox1 is zero, however i cant seem to get this to only switch to txtBox2 when txtBox1 reads zero!! can someone have a look at my code and offer advice please.

Private Sub txtatherstoneactual_Change(Index As Integer)
If Not IsNumeric(txtatherstoneactual(0).Text) Then Exit Sub

If txtjcstandardcoderemainingstock(1).Text - CInt(txtatherstoneactual(0).Text) > 0 Then
   txtjcstandardcoderemainingstock(1).Text = txtjcstandardcoderemainingstock(1).Text - CInt(txtatherstoneactual(0).Text)
Else
   txtjcprecoderemainingstock(1).Text = txtjcprecoderemainingstock(1).Text - CInt(txtatherstoneactual(0).Text)
End If
End Sub

Private Sub txtchelmsfordactual_Change(Index As Integer)

If Not IsNumeric(txtchelmsfordactual(0).Text) Then Exit Sub

If txtjcstandardcoderemainingstock(1).Text - CInt(txtchelmsfordactual(0).Text) > 0 Then
   txtjcstandardcoderemainingstock(1).Text = txtjcstandardcoderemainingstock(1).Text - CInt(txtchelmsfordactual(0).Text)
Else
   txtjcprecoderemainingstock(1).Text = txtjcprecoderemainingstock(1).Text - CInt(txtchelmsfordactual(0).Text)
End If
End Sub

Private Sub txtdarlingtonactual_Change(Index As Integer)

If Not IsNumeric(txtdarlingtonactual(0)) Then Exit Sub

If txtjcstandardcoderemainingstock(1).Text - CInt(txtdarlingtonactual(0)) > 0 Then
   txtjcstandardcoderemainingstock(1).Text = txtjcstandardcoderemainingstock(1).Text - CInt(txtdarlingtonactual(0))
Else
   txtjcprecoderemainingstock(1).Text = txtjcprecoderemainingstock(1).Text - CInt(txtchelmsfordactual(0).Text)
End If
End Sub


Many Thanks
Andy
0
Comment
Question by:samandrew
  • 7
  • 6
13 Comments
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20341112
Hi Andy,

I don't know about you, but I'm beginning to feel a bit tired. However, you could help us to help you by making your very long control names a bit more readable by capitilising the first letter of the embedded words.

Also you try to explain the problem with short names, but the code you use has different names, so we have to take some time to sort out which actual control matches which explanatory name.

I'll carry on looking at it now.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20341143
You don't seem to be using the index passed into the event anywhere. That might be relevant.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20341299
I have substituted the txtBox names into the Atherstone code block:

Private Sub txtBox3_Change(Index As Integer)
    If Not IsNumeric(txtBox3(0).Text) Then Exit Sub
   
    If txtBox1(1).Text - CInt(txtBox3(0).Text) > 0 Then
       txtBox1(1).Text = txtBox1(1).Text - CInt(txtBox3(0).Text)
    Else
       txtBox2(1).Text = txtBox2(1).Text - CInt(txtBox3(0).Text)
    End If
End Sub

This says that you subtract from txtBox1(1) (txtJCStandardCodeRemainingStock) unless that would take the value in that box below zero, in which case subtract from txtBox2 (precode).

That could match the description of your rquirement, but since you say you want somthing else, perhaps you mean that you want to subtract from box1 until it is zero, then start taking from box2, leaving 0 in box 1

Private Sub txtBox3_Change(Index As Integer)
    If Not IsNumeric(txtBox3(0).Text) Then Exit Sub
   
    txtBox1(1).Text = txtBox1(1).Text - CInt(txtBox3(0).Text)
    If txtBox1(1).Text < 0 Then
       txtBox2(1).Text = txtBox2(1).Text + txtBox1(1).Text
       txtBox1(1).Text = 0
    End If
End Sub
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 

Author Comment

by:samandrew
ID: 20342474
Hi Graham

Yes I understand the long txtbox names is a bit of an issue I will try to tidy these up but as there is a lot of code for me I name them something I will recognize. The second code is exactly what I was looking for although this does return 0 in txtBox1..............txtBox2 shows a number then a minus sign then another number?

Many Thanks
Andy
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20342879
Not too much code, Andy. They are controls, so you only need to change them in the properties Window. However there are rather a lot of them, even for that.

The display in txtBox2 is wrong because VB is interpreting the + sign as a string concatenation operator. The & was not in the the original versions (VB1 and VB2), so the + had to do both jobs, depending on context. It still does.  Forcing one of the operands to a numeric value will make it act as an addition sign.

    If Not IsNumeric(txtBox3(0).Text) Then Exit Sub
   
    txtBox1(1).Text = txtBox1(1).Text - CInt(txtBox3(0).Text)
    If txtBox1(1).Text < 0 Then
       txtBox2(1).Text = Val(txtBox2(1).Text) + txtBox1(1).Text
       txtBox1(1).Text = 0
    End If
0
 

Author Comment

by:samandrew
ID: 20345194
Hi Graham
This works great now except I need to figure out a error code incase my second text  txtBox2(1).Text
is less than txtBox3(0) Total.

Many Thanks
Andy
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20345235
Can you do that, or are you having a problem?
0
 

Author Comment

by:samandrew
ID: 20345258
Hi Graham

Its not that i am lazy or do not want to try to do it, my problem is time at the moment 2 kids under 2 (both unwell) and building up a new business. Any ideas would be gratefully accepted.

Thanks
Andy
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20345286
Hope the kids aren't too ill, though even minor illnesses can be disruptive.

The problem is that some things take longer to explain to others than to do yourself. Also, the more that you do, the more you learn. However, see how this fits.

  If Not IsNumeric(txtBox3(0).Text) Then Exit Sub
   
    txtBox1(1).Text = txtBox1(1).Text - CInt(txtBox3(0).Text)
    If txtBox1(1).Text < 0 Then
       IF Val(txtBox2(1).Text) + txtBox1(1).Text < 0 tHEN
             MsgBox "Insufficient stock"
       txtBox2(1).Text = Val(txtBox2(1).Text) + txtBox1(1).Text
       txtBox1(1).Text = 0
    End If
0
 

Author Comment

by:samandrew
ID: 20346042
Hi Graham
Am still at work but will try this when I get home tonight (kids permitting) Probaly not the right etiqute to ask but do you know much about database connections? as I have been on with question one for a long time.  http://www.experts-exchange.com/Database/MySQL/Q_22980767.html

Many Thanks
Andy
0
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 20346694
Nothinq wrong with the etiquette, Andy. The problem is that I have never used MySQL.
0
 

Author Comment

by:samandrew
ID: 20358002
Hi Graham

Many Thanks for your help have finally got round to doing some more work on my program.

Andy
0
 

Author Closing Comment

by:samandrew
ID: 31410713
Very helpful
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question