Massendatenänderung fortlaufende Zahl
ein altes Problem von mir welches immer noch offen ist..
wie kann ich per massendatenänderung eine Tabellenspalte mit vortlaufender nummerierung befüllen.. am beispiel in einer Tabelle mit Namen und Vornamen kommt eine Spalte persNR dazu welche anfangs leer als Zahlenfeld definiert ist und nun mit 1-100 befüllt werden muss da schon 100 Personen eingepflegt wurden..
an der Internen NR kann mans nicht fest machen da die Zahl nicht fortlaufen ist..
35 Antworten
-
ich würde es so machen: ohne Massendatenänderung
in der Tabelle/Formular eine Schaltfläche mit folgendem Code:
var LFD := 1;
for DAS in select 'hier Tabellenname' do
DAS.'hier Feldname' := LFD;
LFD := LFD + 1;
end;
Anschließend Schaltfläche wieder löschen.
( es gibt noch andere Möglichkeiten)
-
Danke Bernd bin grad unterwegs und werd mir das am Abend ansehen...
was och aber gar nicht verstehe warum die interne Kontextfunktion markieren, kopieren, einfügen nicht funktioniert.. die Funktion scheints hat gar keine Funktion... löschen kopieren funktioniert.. der Rest ist funktionslos ...
es ist doch irgenwie seltsam das die einfachste funktion nur mit affengriffen zu erledigen ist..
-
ach ja „( es gibt noch andere Möglichkeiten)“ ich würde mich freuen genaueres zu erfahren..
Viele liebe Grüße!
-
hier geht es auch noch, den Sript zu schreiben und ausführen zu lassen..., mache ich aber persönlich nicht...
-
das Teil macht mir ein wenig angst etwas zu verbiegen was im nachhinein nicht mehr korrigierbar ist... ich denke das ist eher etwas für spezis wie Birger und Leo..
-
Für den Fall der Fälle vorher ein Backup der Datenbank anlegen. Damit lässt sie sich komplett wiederherstellen, wenn irgendwas schiefgehen sollte.
-
Na das ist schon klar ;) ändert aber nichts am Hintergrund ne simple Problematik mit STRG+C STRG+V zu lösen..
-
Hallo Bernd das funktioniert soweit wenn ja wenn keine Datensätze dupliziert werden oder sortiert wurde..
als Beispiel wird eine Produktgruppe um Klasse 1/1 um die Klasse 1/2 und oder 1/3 erweitert und diese Aufsteigend sortiert wird in deinem Script die PersID nicht nach Sortierung neu vergeben sondern nach der Anlagezeit..
bspw. Alte Tabelle Mustermann 1-10 neue Tabelle Musteman5 gibt es 3x Franz, Ferdinand, Paul... wenn ich diesen mit deinem Script neue PersID gebe hat Musterman1.Franz PersNR5 und die neuen Ferdinand und Paul PersID 11 und 12.. egal wie es sortiert wurde..
-
Mein Hinweis sollte auch lediglich etwas an der Angst ändern, "etwas zu verbiegen was im nachhinein nicht mehr korrigierbar ist".
-
weis ich doch darum auch der schmeili :)
-
mit Sortierung:
var LFD := 1;
for DAS in select 'hier Tabellenname' order by 'hier Sort-Feldname' do
DAS.'hier Feldname' := LFD;
LFD := LFD + 1;
end;
-
cool vielen Dank dafür..
-
wird gleich in die Toolsbibliothek aufgenommen.
-
sorry das funktioniert auch nicht richtig.. kann es auch gar nicht weil order by eine ordnung in die unordnung bringt die bei Mustermann1 bis x noch funktioniert nicht aber bei normalen namen hier wird die order by am Alphabet fest gemacht..
-
wie ist denn die Ordnung, ich kann es vonhier nicht so richtig erkennen. Am besten, ein Foto von der Tabelle posten und dazu die Reihenfolge der Datensätze beschreiben...
-
Morgen Bernd hier ist das Foto
ich spiele da gerade alle Varianten durch und bei allen wird mit Order By was auch klar ist eine Ordnung erzwungen die eigentlich nicht erwünscht ist.. es sollte wie in excel mittels STRGC STRGV der Inhalt in diesem Fall eine Fortlaufende Nummer einfügbar sein.. unter OSX in der App. schaut es auch danach aus nur tut diese über den Kontext nichts..
Das deine Formel die in übrigen genau das macht was sie soll 1A ist sollte nicht extra kommentiert werden, das ist wie bei allen helfenden der Fall und kann nicht oft genug hervorgehoben werden..
-
Möchte noch etwas Anfügen in der Webversion funktioniert dieses STRG+C STRG+V nicht... in der aktuellen OSX APP funktioniert es nun was in der vorigen noch nicht funktionierte.. absolut schräg.. in der IOS gibts das so scheints gar nicht... muss mich gleich mal auf die Suche machen..
wird viele auch gar nicht betreffen.. ich muss nur sehr oft in den Abteilungen die Mitarbeiter nachrücken lassen und die PersID in den Sektionen neu vergeben aber somit ist das Problem auch gelöst..
-
ich verstehe das Problem nicht ,
Strg+C, Strg+V geht nicht...
im ersten Post wolltest Du ein Feld mit einer fordlaufenden Nummer befüllen. Du übernimmst irgendwie Daten und möchtest das Feld füllen. Wo ist bei mir der Gedankenfehler?
-
sind schon teilweise Nummern vorhanden, doe nicht ünerschrieben werden dürfen...
haben die Mitarbeiter schon eine ID, die dann entsprechend eingetragen werden sollen...
-
>ich verstehe das Problem nicht ,
Strg+C, Strg+V geht nicht...<
doch aber nur in der MAC OSX App nicht unter WEB über den Browser und nicht über IOS.
Zurück zur SortProblematik..
nach Fam.Name kann ich nicht sortieren lassen..
nach gesammt PersID auch nicht da diese in einer Abteilung an unterschiedlichen Positionen sind. Sprich sie wären durcheinander.. es gibt nur zwei Möglichkeiten entweder über die OSX App oder den Export via CSV und den den Reimport... Ninox als MAC App hat sogar die Funktion wie in EXCEL durchs runterziehen in der Tabellenspalte die Werte autozuvervollständigen.. kann aber nicht oder noch nicht erkennen das es durch Mehrfachauswahl hochzählen soll.
-
Auch mir ist nicht ganz klar, wo genau das Problem liegt. Du sagst immer, was alles nicht geht, jedenfalls nicht so wie bei Excel. Es wäre aber wichtiger zu wissen, was du erreichen willst bzw. wie das Ergebnis aussehen soll. Dann kann man auch Ideen entwickeln, wie es mit Ninox(!) gehen könnte.
Also: Beschreib doch mal das Ziel etwas genauer. Zum Beispiel: Welches Feld willst du nach welchen Kriterien sortieren und/oder durchnummerieren?
-
aus einer Tabelle Personal Gesammt (runde 2000Datensätze) werden in Abhängigkeit der Stellung und der Abteilung in einer Rotation 2 Mal im Jahr einige Personen ausgetauscht..
Diese kommen aus der Personal gesammt und haben eine PersID Gesammt von 1-2000 Nummeriert.. Die Datenbank der Abteilung bekommt aus dieser Datenbank/Tabelle in Abteilung X 15 Personen zugeteilt die in der Abteilung eingesetzt werden und die PersID Gesammt NICHT verwendbar ist..
Jetzt kommt es noch zusätzlich dazu, das eventuell ausscheidende Mitarbeiter die in Verfahren Pension/Kündigung usw.. Löcher in die Datenstruktur reißen und neu geordnet werden muss...
sprich ich kann diese weder nach PersID, internerNR aus Ninox, Namen oder Gebursttage sortieren lassen.
löschen nachrücken verschieben und danach die ID Neu vergeben vortlaufend basierend auf den Zustand ohne Filter..
-
und sorry <Du sagst immer, was alles nicht geht, jedenfalls nicht so wie bei Excel.>
wenn es funktionieren wür, würde ich nicht fragen..
und wenn die Doku umfasender wäre, würden sich viele Anfragen so oder so erübrigen
da ich die gesamte Spalte nun in der Ninox App unter osx nun kopieren kann ist das Thema für mich erledigt... thread schließen haben fertig
-
Wenn ich mich in die Diskussion noch einmischen darf. Ich würde statt Massendatenänderung einfach ein Berechnungsfeld einfügen und dieFormeln etwa so schreiben:
---
lei myID:=Personalnummer;
cnt(select 'DEINE TABELLE' [Personalnummer<=myID])
---
Dann braucht man nicht jederzeit neu die Massendatenänderung durchzuführen. Und bei Änderungen werden die Nummern wieder neu geordnet wenn das gewünscht ist. 2000 Datensätze sollte Ninox schaffen ohne das die Ladezeit spührbar beeinträchtigt wird.
Leo
-
Danke Leo bin gerade am testen der Szenarien..
Content aside
- vor 3 JahrenZuletzt aktiv
- 35Antworten
- 7413Ansichten