0

Script ab bestimmter ID

Wie kann man ein Script erst ab einer bestimmten ID ausführen?

Welchen Code muss man dann voranstellen.

Wolfgang

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Was heißt "voranstellen"? Da fehlt mir jetzt etwas Kontext. Ganz allgemein: Wenn es um die intern automatisch vergebene Datensatznummer geht (ID enthält auch noch Info der Tabelle), die kann mit der Feldbezeichnung 'Nr' angesprochen werden:

     

    select TABELLE where Nr > 100

     

    Damit würden alle Datensätze ab Nummer 101 berücksichtigt.

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Perfekt das habe ich gemeint, werde ich gleich testen.

    Wolfgang

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    So jetzt mit mehr Kontext, ich habe es jetzt so umgesetzt

    ---

    for i in select AUTHORS where Nr > 530 do
    i.(Vorname := i.SplitVorname);
    i.(Nachname := i.SplitNachname)
    end

    ---

    Script ist in einem Button und soll mir in das Feld Vorname und Nachname den Wert aus SplitVorname und Split Nachname schreiben.

    Leider passiert nichts mit den Datensätzen ab ID 530

    wenn ich es so laufen lasse

    ---

    for i in select AUTHORS do
    i.(Vorname := i.SplitVorname);
    i.(Nachname := i.SplitNachname)
    end

    ---

    also ohne die Bedingung, dann werden die Datensätze ab 530 so geändert wie ich es möchte nur löscht er mir dann den Vornamen aus den Datensätzen von 1-530

    Wolfgang

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Noch als Ergänzung in den ersten 530 Datensätze habe ich in dem Feld Vornamen den Vornamen und Nachname den Nachnamen. Ab ID 531 ist das Feld Vorname leer und im Feld Nachname steht (z.b. Müller,Peter). Mit der Splitfunktion habe ich das in Vor- und Nachname getrennt um es dann wieder in Vor- und Nachname reinzuschreiben.

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Versuch's doch mal der number(Nr):

     

    for i in select AUTHORS where number(Nr) > 530 do
       i.(Vorname := i.SplitVorname);
       i.(Nachname := i.SplitNachname)
    end

     

    Oder gleich alle Arbeitschritte in einem Rutsch (falls ich den Kontext richtig verstanden habe):

     

    for i in select AUTHORS do
       if not i.Vorname then
          i.(Vorname := item(split(i.Nachname, ","), 1));
          i.(Nachname := item(split(i.Nachname, ","), 0))
       end
    end

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Autsch. "Mit" war das Wort, es sollte heißen "Versuch's doch mal mit number(Nr)"!

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Copytexter du bist der größte, beide Varianten funktionieren.

    Ich war richtig nah dran.

    if not I.Vorname then hätte ich auch schon ausprobiert. Ich hatte s jedoch in der ersten Zeile, deswegen hat es nicht funktioniert.

    Wolfgang

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 7Antworten
  • 1226Ansichten