Je vergat een index mee te geven aan je txt-variabelen.
Ik heb jouw code gecorrigeerd, omdat er een aantal
fouten bevatten:
1) Gebruik altijd Option Explicit, dit om spellingsfouten en
niet gedefinieerde variabelen te ondervangen.
Option Explicit stel je als volgt in:
Tools/Option/Vink "Require Variable Declaration" af.
(Of bij General Declaration gewoon intypen)
Had je dit wel gedaan, dan had je gezien dat "txtRerm"
"txtTerm" had moeten zijn. Dus een spellingsfout!
2) "txtTerm" was in feite ook nog niet correct. Het had
txtTerm(1) moeten zijn. Dus met een index.
Het indexeren is in dit geval totaal overbodig.
Ik denk dat je dit per ongeluk had gedaan.
Alle variabelen die met "txt" beginnen heb ik wel een
index moeten meegegeven overeenkomstig de properties v.d.
Text-box controls (zie properties venster).
3) Copieer onderstaande code (is al gecorrigeerd, dus hoef je
"Option Explicit" niet erbij te doen, maar dit is wel
aangeraden).
Private Sub cmdCompute_Click()
'use a for loop to calculate a final total
'investment using compuid interest.
'
'intnum is a loop control variable
'sngirate is the annual interest rate
'intterm is the number of years in the investment
'snginterest is the total interest paid
Dim sngIRate As Single, snginterest As Single
Dim intterm As Integer, intNum As Integer
Dim curinitinv As Currency
sngIRate = txtRate(0) / 100# '====WAS txtRate
intterm = txtterm(1) '=====WAS txtRerm
curinitinv = txtInvest(1) '=====WAS txtInvest
snginterest = 1# 'begin at one for first compound
'use loop to calculate total compound amount
For intNum = 1 To intterm
snginterest = snginterest * (1 + sngIRate)
Next intNum
'now we have total interest,
'calculate the total investment
'at the end of N years
txtEnding(1).Text = curinitinv * snginterest
End Sub