veel data invoeren VB2008

Status
Niet open voor verdere reacties.

ruud2000

Gebruiker
Lid geworden
29 mrt 2006
Berichten
5
Is dit te veréénvoudigen?

Public Class Form1
Dim kaas1 As Single
Dim kaas2 As Single
Dim kaas3 As Single
Dim kaas4 As Single
Dim kaas5 As Single
Dim kaas6 As Single
Dim kaas7 As Single
Dim kaas8 As Single
Dim kaas9 As Single
Dim kaas10 As Single
Dim kaas11 As Single
Dim kaas12 As Single
Dim kaas13 As Single
Dim kaas14 As Single


Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click

kaas1 = TxTkaas1.Text
kaas2 = TxTkaas2.Text
kaas3 = TxTkaas3.Text
kaas4 = TxTkaas4.Text
kaas5 = TxTkaas5.Text
kaas6 = TxTkaas6.Text
kaas7 = TxTkaas7.Text
kaas8 = TxTkaas8.Text
kaas9 = TxTkaas9.Text
kaas10 = TxTkaas10.Text
kaas11 = TxTkaas11.Text
kaas12 = TxTkaas12.Text
kaas13 = TxTkaas13.Text
kaas14 = TxTkaas14.Text

lblKaasSub.Text = kaas1 + kaas2 + kaas3 + kaas4 + kaas5 + kaas6 + kaas7 + kaas8 + kaas9 + kaas10 + kaas11 + kaas12 + kaas13 + kaas14
End Sub
End Class
 
Ik heb een projectje voor je in elkaar geknutseld, zie hier: KliK!

Kleine uitleg:

Een integer aanmaken die het totaal bijhoud.
Dim eindgetal As Integer = 0
Voor elke control (textbox, label, button etc) die op het form staat,
For Each test As Control In Me.Controls
Kijken of de control van het type ''TextBox'' is,
If TypeOf test Is TextBox Then
Zoja, dan het eindgetal ophogen met wat er in de textbox staat (en converteren naar een integer)
eindgetal += CInt(test.Text)
End If
Next
Getal in een label prakken.
Label1.Text = CStr(eindgetal)

Wel een klein probleempje, als je meer textboxen toevoegt moet je uitzonderingen gaan maken, bijvoorbeeld op deze manier:
Code:
        Dim eindgetal As Integer = 0

        For Each test As Control In Me.Controls
            If TypeOf test Is TextBox Then
                If Not test.Name = "textBox1000" Then
                    eindgetal += CInt(test.Text)
                End If
            End If
        Next

        Label1.Text = CStr(eindgetal)


Ik hoop dat je dit een stuk op weg heeft kunnen helpen, succes!
 
Ik heb het zo ingevuld, ik ben nog niet zo goed met VB, dus dit zal wel niet goed zijn, het werkt ook niet.

Dim eindgetal As Single = 0


Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click


'Voor elke control (textbox, label, button etc) die op het form staat,
For Each kaas As Control In Me.Controls
'Kijken of de control van het type ''TextBox'' is,
If TypeOf kaas Is TextBox Then
'Zoja, dan het eindgetal ophogen met wat er in de textbox staat (en converteren naar een integer)
eindgetal += CInt(kaas.Text)
End If
Next
'Getal in een label prakken.
lblKaasSub.Text = CStr(eindgetal)


End Sub
 
hier het ontwerp zodat je kan zien wat ik eigenlijk wil.
 

Bijlagen

  • Image4.jpg
    Image4.jpg
    75,9 KB · Weergaven: 30
Volgens mij heb je meer aan een DataGridView of een ListView. Die laatste is denk ik de betere optie. Een ListView vervangt dan al die textboxen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan