Tabellen, mit Feldern rechnen

Hallo alle zusammen,

neue Woche neue Fragen...
Ich hab ein Feld in dem die Zeichenfolge "001" bis ca. "100" steht. Nun will ich in einem neuen Feld bezogen auf das vorherige Feld den Wert minus 001 drin stehen haben.

Beispiel:
Feld1: "052"
Feld2: "051"
Also: "Feld2" = "Feld1" - "001"

Klingt eigentlich recht primitiv aber für mich halt ne halbe Welt.

und noch eine Frage:
Man kann ja wie bei Excel Formeln in ein Feld eingeben. Aber da ArcView ja kein Tabellenkalkulationsprogramm ist wird es keine Option geben mit der Rechnungen bei Änderungen sofort aktualisiert werden oder? Muss man immer wieder neu berechnen.

Vielen Dank
Tobias
Hallo Tobias,

Du hast Problem erkannt :-)

Soweit ich weiß, kommst Du um ein kleines Script hicht herum, wenn das automatisiert werden soll. Es gibt da ein paar Ereignisse, die ein Script auslösen können (change, open, activate) welche davon für Tabellen zur Verfügung stehen, weiß ich jetzt nicht.
'001' sieht so aus wie eine Zeichenfolge, nicht wie eine Zahl, wahrscheinlich muss das vor der Berechung auch noch umgewandelt werden.

Jörg
Hallo

ja es ist eine Zeichenfolge.
Das Problem liegt darin das ich Werte in 5 Spalten ermittle und dann in einer 6 Spalte zusammenfüge.
Beispiel:
001 - 3 - 01 - 004 - 2 = 0013010042

Wenn ich jetzt den Spalten das Format "Zahl" gebe sieht es ja wie folgt aus:
1 - 3 - 1 - 4 - 2 = 13142

So soll es aber nicht sein.
Oder kann ich einer Zahl zuordnen das sie in einer hunderter Stelle dargestellt wird? Also immer drei Stellen VOR dem Komma.
Tobias, angenommen deine Felder heißen so:

[F_a][F_b][F_c][F_d][F_e]

-- 1 -- 3 -- 1 -- 4 -- 2

und sind Nummernfelder, und du willst das Ganze in einem Textfeld wie oben beschrieben zusammenfassen, dann lautet der passende Ausdruck für den Taschenrechner:

"000".left(3-[F_a].AsString.count) + [F_a].AsString + [F_b].AsString + "000".left(2-[F_c].AsString.count) + [F_c].AsString + "000".left(3-[F_d].AsString.count) + [F_d].AsString + [F_e].AsString

= 0013010042

Die wichtige Zeile für deine Nullen ist dabei natürlich

"000".left(3-[F_a].AsString.count) + [F_a].AsString

denn hier bekommst du vor eine einstellige Zahl 2 Nullen, für eine zweistellige Zahl eine Null und ... so weiter.
Bei Werten in den Tausendern müsste da natürlich "0000" und 4-[F_a] stehen.

Max.