German Wert einer verschachtelten Variable ?

Paulsche

Well-Known Member
Licensed User
Folgendes Problem,

ich möchte einer Variable z.B. "Var1" den Namen einer anderen Variable z.B. Var2 zuordnen, wie kann ich dann den Wert der Variablen Var2 auslesen ?

Beispiel:

Var1 = "Var2"

Ab hier steht mir nur noch Var1 zur Verfügung,
msgbox(var1) ergibt natürlich "Var2" , ich möchte aber den Wert von "Var2"
haben.

Bei Controls geht das über "Control(var1.text)" ,
sowas bräuchte ich praktisch für Variablen, geht das irgendwie ?
 

klaus

Expert
Licensed User
Eine ähnliche Methode "Control(var1.text)" wie für die Controls gibt es nicht für Variablen.

Könntest Du näher erklären was eigentlich Du machen möchtest und warum?
Vielleicht gibt es eine andere Methode das zu machen.
Warum den Namen der Variable var2 übernehmen und nicht direkt deren Wert?

Beste Grüsse.
 

Paulsche

Well-Known Member
Licensed User
ok, ich versuchs zu erklären:

ich hab ne Schleif für die 12 Monate, es wird eine Linechart gezeichnet.

For i = 0 to 11
LineChart.AddPoint(i, TXTboxname & i+1)
LBL8Jahrsumme.Text = LBL8Jahrsumme.Text + TXTboxname & i+1
next

Die Variable TXTboxname soll je nach vorheriger Auswahl eines Buttons
folgende Variablen haben:
TXTboxname = "MonatVerbrauch(i)"
TXTboxname = "MonatLiter(i)"
TXTboxname = "MonatEUR(i)"

Ich möchte halt die Routine der Linechart für mehrere Werte benutzen und möchte nicht 3 extra Abfragen mit extra Linechart-Funktion machen.

OK, das wird zu kompliziert, ich mach es jetzt so, dass ich über select case
die Variable z.B. MonatVerbrauch(i) entsprechend direkt einfüge.

Trotzdem Danke für die schnelle Antwort
 
Last edited:

Paulsche

Well-Known Member
Licensed User
Habs jetzt so gelöst:

For i = 0 To 11 ' Schleife der 12 Monate
Select statArt
Case "verbrauch" ' Verbrauch L/100km
LineChart.AddPoint(i, MonatVerbrauch(i+1))
LBL8Jahrsumme.Text = LBL8Jahrsumme.Text + MonatVerbrauch(i+1) ' Berechnung JahresSumme
Case "eurltr" ' Euro / Liter
LineChart.AddPoint(i, MonatEURLTR(i+1))
LBL8Jahrsumme.Text = LBL8Jahrsumme.Text + MonatEURLTR(i+1) ' Berechnung JahresSumme
Case "eur" ' Rechnungsbetrag
LineChart.AddPoint(i, MonatEUR(i+1))
LBL8Jahrsumme.Text = LBL8Jahrsumme.Text + MonatEUR(i+1) ' Berechnung JahresSumme
End Select
Next

Irgendwie klappt das mit dem einrücken nicht, hoffe es ist trotzdem leserlich
 

klaus

Expert
Licensed User
Hallo Paulsche,

Es gäbe eine Möglichkeit eine Matrix für diese Variablen zu nützen:
Zum Beispiel:
Dim MonatVerbrauch(100,3)
MonatVerbrauch(i,0) = MonatVerbrauch
MonatVerbrauch(i,1) = MonatLiter
MonatVerbrauch(i,2) = MonatEuro
statArt= 0 oder 1 oder 2

Das gleiche würde auch mit Type Variablen funktionieren.
Dim Type(Verbrauch,Liter,EUR)Monat(100)
die Variablen heissen dann:
Monat(i).Verbrauch oder Monat(i,0)
Monat(i).Liter oder Monat(i,1)
Monat(i).Euro oder Monat(i,2)
usw.
statArt= 0 oder 1 oder 2
In diesem Fall kannst Du beide Schreibweisen benützen, im Programm die linke zur Übersichtlichkeit und in der Routine die rechte zur Vereinfachung des Codes..

Hoffe dass es verständlich ist.

Deine Lösung ist vielleicht übersichtlicher.

Beste Grüsse.
 

Paulsche

Well-Known Member
Licensed User
Hi Klaus,

danke, ja das würde bestimmt auch gehen,
habs jetzt aber der übersichtlichkeit wie beschrieben gelöst.

Hab mir nur um paar Zeilen sparen zu wollen mind. 2 Std. das Hirn
zermattert, tztztztz , na ja.
 
Top