Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: klamotte am Dezember 01, 2010, 07:40:13

Titel: Variablenindex durchlaufen
Beitrag von: klamotte am Dezember 01, 2010, 07:40:13
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?
Titel: Re: Variablenindex durchlaufen
Beitrag von: database am Dezember 01, 2010, 12:24:15
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
Titel: Re: Variablenindex durchlaufen
Beitrag von: Josef P. am Dezember 01, 2010, 12:33:43
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
Titel: Re: Variablenindex durchlaufen
Beitrag von: klamotte am Dezember 01, 2010, 13:41:28
@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 ;)
Titel: Re: Variablenindex durchlaufen
Beitrag von: klamotte am Dezember 01, 2010, 15:59:46
Die Variable sieht nun so aus:
Public Type Schadensklassen
      strGrenze(3) As String
End Type


und damit ist die Birne geschält:)