0

Markierte Daten von Tabelle A nach Tabelle B kopieren

Hallo liebe Forummitglieder,

ich bin gerade dabei eine neue Datenbank für mich und 4 Kollegen aufzubauen.

Ziel ist es die Bestandskunden ( liegen in Tabelle A ) durch markieren in eine neue Adressdatenbank ( Tabelle B )zu importieren oder kopieren.

In der neuen Adressdatenbank sollen dann nur die kopierten importierten und ganze neue ( sind noch keine Kunden ) stehen.

 

Wie kann ich dies handhaben??

7 Antworten

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

    Hallo Christian, um die vorhandenen Datensätze von TabelleA in TabelleB zu übertragen könntest du eine Schaltfläche mit folgendem Code erstellen (egal, wo):

    do as server
       for ii in select TabelleA do
          let newB := (create Tabelle B);
          newB.(
             Datenfeld1 := ii.Datenfeld1;
             Datenfeld2 := ii.Datenfeld2;
             [... usw. ...]
             );
       end
    end
    

    Nun schriebst du noch "durch Markieren". Ich weiß nicht, was das genau bedeutet, aber wenn es heißt, dass nur Datensätze kopiert werden sollen, die einer bestimmten Bedingung entsprechen, ließe sich das beim "select"-Befehl angeben. Nehmen wir an, es gibt in TabelleA ein Ja/Nein-Feld namens "Kopieren", dann könnte man dies als Bedingung so formulieren:

       [...]
       for ii in select TabelleA[Kopieren = true] do
          [...]
    

    Es würden dann nur Datensätze aus TabelleA berücksichtigt, bei denen das Feld "Kopieren" auf "Ja" steht.
     

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Sorry das klappt soweit wie angegeben wäre es jetzt auch möglich den kopierten Datensatz gleich aus der Tabelle zu löschen?? 

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

      Klar, entweder innerhalb des Scriptes direkt nach dem Übetragen der Daten:

      do as server
         for ii in (select TabelleA)[Kopieren = true] do
            let newB := (create Tabelle B);
            newB.(
               Datenfeld1 := ii.Datenfeld1;
               Datenfeld2 := ii.Datenfeld2;
               [... usw. ...]
               );
               delete ii
         end
      end
      

      Oder im Nachhinein, wenn die Daten bereits übertragen wurden, mit einem Extra-Button:

      for ii in (select TabelleA)[Kopieren = true] do
          delete ii
      end
      
      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Ach so, solche Funktionen wie "delete" am besten immer erst mal mit Demodaten testen und/oder vorher ein Backup der Datenbank anlegen!

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Super das hat auch wunderbar geklappt. Ja erstmal nur Demodaten.

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Planox,

    danke für die schnelle Antwort.

    Ich werde es ausprobieren.

    Werde ein Ja/nein Feld in Tabelle A einbauen und es so probieren und berichten.

    Gruß Christian

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 2 Jahren
    • Gemeldet - anzeigen

    SUPER 🙂 hat geklappt. Besten Dank

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 7Antworten
  • 53Ansichten
  • 2 Folge bereits