Loop i ett budgetproram
Jag får inte till det med en loop i ett budgetprogram jag gjort. Kanske nån kan hjälpa mig med det.
Jag har en Grid med 50 rader och 2 kolumner. I den vänstra kolumnen står det vilket konto som gäller, Konto1, Konto2, Konto3 eller Konto4. I den andra kolumnen står det en summa. Nu vill jag att programmet ska summera alla summor som det står Konto1 framför och skriva in den i en Textbox1. Sedan ska programmet summera alla summor som det står Konto2 framför och den summan ska skrivas in i Textbox2 osv. Vore tacksam för lite hjälp.
Svara
Sv: Loop i ett budgetproram
Princip exempel hur du skall tänka
Använd Select Case utmärk i denna loop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Option Explicit Dim K1sum As Double , K2sum As Double 'osv Private Sub Command1_Click() Dim i As Long For i = 0 To 49 'antal rows i Griden -1 Select Case Grid1.row(i).Text 'osäker på hur du skriver här Case Is = "Konto1" K1sum = K1sum + CDbl (Grid1.row(i).col(1)) 'är summan text eller double Case Is = "Konto2" K2sum = K2sum + CDbl (Grid1.row(i).col(1)) 'osv End Select Next 'i Text1.Text = CStr (K1sum) Text2.Text = CStr (K2sum) 'osv beroende på hur många Konto du har K1sum = 0 K2sum = 0 'osv End Sub 'Fritt ur minnet på ungefär hur du skall tänka |
Svara
Sv:Loop i ett budgetproram
Tack men det blir fel (Invalid qualifier) på:
Select Case Grid1.row(i).Text
det var den raden som du var osäker på. Felet verkar vara på: .row
Svara
Sv: Loop i ett budgetproram
<Select Case Grid1.row(i).Text
Ja det förstår jag.Jag vet inte vilken Grid du använder och syntaxer till den.
Gör nu så här.
Skriv en enkel rad där du kan läsa vad som står i Rad 0 kolumn 0
Gör samma sak så du kan läsa vad som står Rad 0 Kolumn 1
ex.
Text1.Text = Grid Rad 0 Kolumn 0
Text2.Text = Grid Rad 0 Kolumn 1
Få detta att funka innan du kan gå vidare.
Svara
Sv:Loop i ett budgetproram
Rädd att jag inte fattar. För mig ser en sån rad ut så här
Grid1.row = 0
Grid1.col = 0
Text1.Text = Grid1.Text
???
För övrigt är det en Grid från från Microsoft Grid Control
Svara
Sv: Loop i ett budgetproram
Ok nu vet jag vilken Grid du använder.
Då borde detta funka.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Option Explicit Dim K1sum As Double , K2sum As Double 'osv Private Sub Command1_Click() Dim i As Long For i = 0 To 49 'Ta reda på antal rows i Griden -1 Grid1.row = i Grid1.col = 0 Select Case Grid1.Text Case Is = "Konto1" Grid1.col = 1 K1sum = K1sum + CDbl (Grid1.Text) Case Is = "Konto2" Grid1.col = 1 K2sum = K2sum + CDbl (Grid1.Text) 'osv End Select Next 'i Text1.Text = CStr (K1sum) Text2.Text = CStr (K2sum) 'osv beroende på hur många Konto du har K1sum = 0 K2sum = 0 'osv End Sub 'Fritt ur minnet på ungefär hur du skall tänka |
Svara
Sv:Loop i ett budgetproram
FeedBack Nääääääää
Det är kanske inte så viktigt men fungerarde det.
Svara eller skit så man hör att det är liv i dig sa morfar.
Svara
Sv: Loop i ett budgetproram
Feedback absolut det kan du se på alla mina frågor jag ställt. Har varit på husvagnssemester i ca: veckor så jag har inte hunnit testa. Fick det att fungera nu med dina justeringar. Fick göra om lite men nu förstår jag principen. Är mycket tacksam för din hjälp, tack. Så här ser resultatet ut efter justeringarna.
Dim K1sum As Double, K2sum As Double, K3sum As Double, K4sum As Double
Dim i As Long
For i = 0 To 49
Grid1.row = i
Grid1.col = 2
Select Case Grid1.Text
Case Is = "Konto 1"
Grid1.col = 3
K1sum = K1sum + Grid1.Text
Case Is = "Konto 2"
Grid1.col = 3
K2sum = K2sum + Grid1.Text
Case Is = "Konto 3"
Grid1.col = 3
K3sum = K3sum + Grid1.Text
Case Is = "Konto 4"
Grid1.col = 3
K4sum = K4sum + Grid1.Text
End Select
Next 'i
Text1.Text = CStr(K1sum)
Text2.Text = CStr(K2sum)
Text3.Text = CStr(K3sum)
Text4.Text = CStr(K4sum)
K1sum = 0
K2sum = 0
K3sum = 0
K4sum = 0
Svara
Sv:Loop i ett budgetproram
Skitbra det värmer när gamla kunskaper fortfarande duger. Tack för FeedBack
Mystiskt att du kan addera så här utan att göra om Text till Cdbl
K1sum = K1sum + Grid1.Text
Svara