TossExecutor
Ensign
- Registriert
- Juli 2021
- Beiträge
- 167
Ich komme gerade nicht weiter. Ein Nachprogrammierbares Beispiel kann ich jetzt leider nicht zur Verfügung zu stellen, das wäre jetzt leider zu aufwändig. Vielleicht reicht es schon, wenn ihr mal drüber schaut.
Der Ausschnitt des Codes sieht so aus:
Fast Alles funktioniert super: Mit der Update Funktion werden alle Zeileneinträge einer Spalte verändert, zu einem Merkmal. Danach wird ein Maximum gesetzt und die Zahlen auf zwei Nachkommastellen gerundet. Auch das funktioniert einwandfrei. Aber: Aktuell wird immer nur das letzte Merkmal angewendet bzw. dort die Zeilen in der Spalte manipuliert. Konkret heißt das, dass die Spalte zu Merkmal 1-5 unverändert bleibt und nur Merkmal 6 richtig verändert wird. Wenn ich Merkmal 5 unter Merkmal 6 schiebe, wird nur Merkmal 5 verändert. Also immer nur der Letzte Aufruf der Funktion scheint zu klappen (AB "Merkmal_6", TableName, Time).
Um zu testen habe ich mit msg = MsgBox(Feature) mir den String des Merkmals mal ausgeben lassen und siehe da: die Merkmal 1-6 werden auf der untersten Ebene alle korrekt angezeigt. Für mich heißt das, dass die Übergabe funktioniert und auch das Aufrufen der Funktion an sich korrekt funktioniert. Aber dennoch wird immer nur die letzte Update Funktion scheinbar angewendet, wenn ich mir die Tabelle am Ende anschaue.
Ich stehe gerade ein bisschen auf dem Schlauch. Wenn die verschiedenen Merkmale als String nicht zurückgegeben worden wären, hätte ich es eher verstanden. So bin ich grad maximal verwirrt.
Kann man es annähernd nachvollzielen, was ich dort vorhabe? Oder hat vielleicht schon jemand eine Idee, was das Problem sein könnte?
Vielen Dank!
Der Ausschnitt des Codes sieht so aus:
Public Function Prognose()
AB "Merkmal_1", TableName, Time
AB "Merkmal_2", TableName, Time
AB "Merkmal_3", TableName, Time
AB "Merkmal_4", TableName, Time
AB "Merkmal_5", TableName, Time
AB "Merkmal_6", TableName, Time
End Function
Public Sub AB(ByVal Feature As String, ByVal Name As String, ByVal Time As String)
Dim Summand1, Summand2, Summand3, Summand4 As String
Summand1 = Str(Summand(Feature, "[1, 2)"))
Summand2 = Str(Summand(Feature, "[2, 3)"))
Summand3 = Str(Summand(Feature, "[3, 4)"))
Summand4 = Str(Summand(Feature, "[4, 5]"))
For i = 1 To Time
Name = TableName(i)
CreateTable i, Name
Update Name, Feature, Summand1, Summand2, Summand3, Summand4, Str(i) 'Time
msg = MsgBox(Feature)
Next
For i = 1 To Time
Name = TableName(i)
SetMax Name, Feature
RoundValues Name, Feature
Next
End Sub
Fast Alles funktioniert super: Mit der Update Funktion werden alle Zeileneinträge einer Spalte verändert, zu einem Merkmal. Danach wird ein Maximum gesetzt und die Zahlen auf zwei Nachkommastellen gerundet. Auch das funktioniert einwandfrei. Aber: Aktuell wird immer nur das letzte Merkmal angewendet bzw. dort die Zeilen in der Spalte manipuliert. Konkret heißt das, dass die Spalte zu Merkmal 1-5 unverändert bleibt und nur Merkmal 6 richtig verändert wird. Wenn ich Merkmal 5 unter Merkmal 6 schiebe, wird nur Merkmal 5 verändert. Also immer nur der Letzte Aufruf der Funktion scheint zu klappen (AB "Merkmal_6", TableName, Time).
Um zu testen habe ich mit msg = MsgBox(Feature) mir den String des Merkmals mal ausgeben lassen und siehe da: die Merkmal 1-6 werden auf der untersten Ebene alle korrekt angezeigt. Für mich heißt das, dass die Übergabe funktioniert und auch das Aufrufen der Funktion an sich korrekt funktioniert. Aber dennoch wird immer nur die letzte Update Funktion scheinbar angewendet, wenn ich mir die Tabelle am Ende anschaue.
Ich stehe gerade ein bisschen auf dem Schlauch. Wenn die verschiedenen Merkmale als String nicht zurückgegeben worden wären, hätte ich es eher verstanden. So bin ich grad maximal verwirrt.
Kann man es annähernd nachvollzielen, was ich dort vorhabe? Oder hat vielleicht schon jemand eine Idee, was das Problem sein könnte?
Vielen Dank!