Hallo!
Ich habe mir eine eigene Variable definiert:
Public Type Schadensklassen
sngGrenze1 As Single
sngGrenze2 As Single
sngGrenze3 As Single
sngGrenze4 As Single
End Type
die ich dann zB so verwende:
Public Funktion SKermitteln() as Schadensklasse
SKermitteln.sngGrenze1 = 10
SKermitteln.sngGrenze2 = 5
SKermitteln.sngGrenze3 = 33
SKermitteln.sngGrenze4 = 444
End Sub
Bei der Verwendung in einem Formular möchte ich gerne mit einem Index die Felder 1 bis 4 durchlaufen, so wie ich es schon bei indizierten Textfeldern mache, also so:
...
For intI = 1 to 4
Me("txt" & intI & intJ) = " "
Next
...
... geht aber nicht!
Versucht habe ich:
Dim SK as Schadensklasse
Set SK = SKermitteln
For intI = 1 to 4
SK("sngGenze" & intI) = irgendeinWert
Next
Habt einer von Euch eine Lösung dazu?
Hallo,
soviel ich weiß, ist in VB6 / VBA das Auflisten von Variablen wie du das versucht hast nicht möglich.
Controls eines Formulars kannst du folgendermaßen auflisten
Dim cont As Control
Dim intI As Integer
For intI = 1 To 4
For Each cont in Me.Controls
If cont.name = "txt" & intI Then
Machirgendwas
Exit For
End If
Next cont
Next intI
....ungetestet!
HTH
Peter
Hallo!
Wenn du statt der Type-Definition eine Klasse verwendest, könntest du eine Funktionalität für eine for-each-Schleife einbauen.
Ich frage mich allerdings, warum du nicht einfach ein Array verwendest um die Werte zu speichern.
SKermitteln.sngGrenze1 bis SKermitteln.sngGrenze4 ist meiner Ansicht nach nicht aussagekräftiger als SKermitteln.sngGrenze(1) bis SKermitteln.sngGrenze(4).
mfg
Josef
@Josef:
Die Idee mit dem Array kam mir auch grade während meines Mittagsspaziergangs :)
Meinst Du das Array in Verbindung mit einer Klasse oder soll das eine separate Lösung sein?
... ich werde mich mal durchhacken ;)
Die Variable sieht nun so aus:
Public Type Schadensklassen
strGrenze(3) As String
End Type
und damit ist die Birne geschält:)