Hallo Forum,
erst einmal vorweg: ich bin kein toller Programmierer aber für den Hausgebrauch hat es bis jetzt eigentlich immer gereicht.
Folgendes Problem:
Ich möchte in Base aus einer Tabelle Datensätze auslesen und diese mit den Datensätzen in einer anderen Tabelle vergleichen.
Wenn sie dort schon angelegt sind passiert zunächst erst einmal nichts ( später soll noch ein vergleich folgen). Existieren sie
nicht sollen sie angelegt und kopiert werden. Im Grunde funktioniert mein Makro, es ist aber sehr langsam und es dauert eine ganze
Weile bis die Tabelle mit den neuen Datensätzen im Formular angezeigt wird. Manchmal ( nicht immer ) hängt sich der Makro auch auf.
Frau Google kann mir nicht richtig helfen. Hat jemand einen Tip in welche Richtung ich weiter recherchieren könnte ?
Dies ist der Code:
Dabei ist Quelle meine Originaltabelle und Ziel die zu erweiternde.
For i = 1 To Z_Quelle
Duplikat = False
Ziel.Last
Z_Ziel = Ziel.getRow
Ziel.first
For j = 1 To Z_Ziel
If Quelle.getString(29) = Ziel.getString(1) Then Duplikat = True
Ziel.Next
Next j
If Duplikat = False Then
Kommission = Quelle.getString(29)
Kunde = Quelle.getString(30)
Maschine = Quelle.getString(31)
M_Konst_Soll = Datum_in_UNO_Date(Quelle.getString(11))
'M_Konst_neu = Datum_in_UNO_Date(Quelle.getString())
M_Konst_ist = Datum_in_UNO_Date(Quelle.getString(24))
E_Konst_Soll = Datum_in_UNO_Date(Quelle.getString(17))
E_Konst_neu = Datum_in_UNO_Date(Quelle.getString(16))
E_Konst_ist = Datum_in_UNO_Date(Quelle.getString(27))
Schaltschrank_Soll = Datum_in_UNO_Date(Quelle.getString(46))
'Schaltschrank_neu = Datum_in_UNO_Date(Quelle.getString(2))
Schaltschrank_ist = Datum_in_UNO_Date(Quelle.getString(54))
Montageort = Quelle.getString(37)
'*** Datensatz neu anlegen, Daten übernehmen und eintragen
Ziel.moveToInsertRow()
Ziel.updateString(1,Kommission)
Ziel.updateString(2,Kunde)
Ziel.updateString(3,Maschine)
Ziel.updateDate(4,M_Konst_Soll)
'Ziel.updateDate(5,M_Konst_neu)
Ziel.updateDate(6,M_Konst_ist)
Ziel.updateDate(7,E_Konst_Soll)
Ziel.updateDate(8,E_Konst_neu)
Ziel.updateDate(9,E_Konst_ist)
Ziel.updateDate(10,Schaltschrank_Soll)
'Ziel.updatDate(11,Schaltschrank_neu)
Ziel.updateDate(12,Schaltschrank_ist)
Ziel.updateString(13,Montageort)
Ziel.insertRow()
EndIf
Quelle.Next
Ziel.First
Next i
Vielen dank schon einmal vorab,
Wiesie
Base Datensätze zwischen Tabellen kopieren
Moderator: Moderatoren
Re: Base Datensätze zwischen Tabellen kopieren
Noch zur Ergänzung:
Z_Quelle und Z_Ziel wurden vorher mit . getRow belegt
Wiesie
Z_Quelle und Z_Ziel wurden vorher mit . getRow belegt
Wiesie
Re: Base Datensätze zwischen Tabellen kopieren
Hallo,
warum machst Du so einen Aufriss?
Du kannst leicht mit einer Abfrage die "Differenz" der beiden Tabellen ermitteln und dann per Kopieren/Einfügen in die Haupttabelle speichern.
Beispiel anbei.
Die Abfrage Abfrage_neue_Daten_in_Zusatztabellezeigt alle Datensätze der Zusatztabelle die nicht in der Haupttabelle vorkommen.
Vorgehen:
Gruß R
EDIT: hatte den Anhang wohl vergessen ...
warum machst Du so einen Aufriss?
Du kannst leicht mit einer Abfrage die "Differenz" der beiden Tabellen ermitteln und dann per Kopieren/Einfügen in die Haupttabelle speichern.
Beispiel anbei.
Die Abfrage Abfrage_neue_Daten_in_Zusatztabelle
Code: Alles auswählen
SELECT *
FROM
"Zusatztabelle"
WHERE
"ID" || "Name" || "Adresse" || "PLZ" || "Ort"
NOT IN ( SELECT
"ID" || "Name" || "Adresse" || "PLZ" || "Ort"
FROM
"Haupttabelle" )
Vorgehen:
- Klicke im Hauptfenster auf Abfragen
- Markiere die Abfrage Abfrage_neue_Daten_in_Zusatztabelle
- Rechtsklick, Kopieren
- Klicke im Hauptfenster auf Tabellen
- Markiere die Tabelle Haupttabelle
- Rechtsklick, Einfügen
- Der Assistent öffnet sich, wähle Daten anhängen, wenn nötig
- Drücke "Fertigstellen"
Gruß R
EDIT: hatte den Anhang wohl vergessen ...
- Dateianhänge
-
- Differenz.odb
- (83.98 KiB) 89-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Base Datensätze zwischen Tabellen kopieren
Hallo R ( F3K Total )
danke für den Tip. Ich werde es wohl erst heute Abend ausprobieren können.
Ist eigentlich das was ich nicht wollte, beschäftigen mit SQL. Ich scheine aber wohl nicht Drumherum zu kommen.
Zu Deiner Frage nach dem Aufriss muss ich wohl noch ein paar Info's mehr liefern. Ich übernehme via Calc eine recht umfangreiche Tabelle mit Termindaten aus Access. Davon ist nur eine Teilmenge für mich interessant. Die Termine sind das Wesentliche, ich muss damit im Anschluss rechnen und vergleichen. Ich bekomme die Daten nicht im Datumsformat importiert und muss sie erst noch wandeln ( M_Konst_Soll = Datum_in_UNO_Date(Quelle.getString(11)) ). Deshalb bearbeite ich jeden Datensatz einzeln.
Noch eine Frage zu Deinem Vorschlag. Nach welchem SQL Kommando müsste ich googeln wenn ich gleichzeitig feststellen will ob ein bestimmter Datensatz schon vorhanden ist, z.b. "Ort" sich aber geändert hat. Wie das bei Terminplanungen so ist, das ganze lebt.
Ulli
danke für den Tip. Ich werde es wohl erst heute Abend ausprobieren können.
Ist eigentlich das was ich nicht wollte, beschäftigen mit SQL. Ich scheine aber wohl nicht Drumherum zu kommen.
Zu Deiner Frage nach dem Aufriss muss ich wohl noch ein paar Info's mehr liefern. Ich übernehme via Calc eine recht umfangreiche Tabelle mit Termindaten aus Access. Davon ist nur eine Teilmenge für mich interessant. Die Termine sind das Wesentliche, ich muss damit im Anschluss rechnen und vergleichen. Ich bekomme die Daten nicht im Datumsformat importiert und muss sie erst noch wandeln ( M_Konst_Soll = Datum_in_UNO_Date(Quelle.getString(11)) ). Deshalb bearbeite ich jeden Datensatz einzeln.
Noch eine Frage zu Deinem Vorschlag. Nach welchem SQL Kommando müsste ich googeln wenn ich gleichzeitig feststellen will ob ein bestimmter Datensatz schon vorhanden ist, z.b. "Ort" sich aber geändert hat. Wie das bei Terminplanungen so ist, das ganze lebt.
Ulli
Re: Base Datensätze zwischen Tabellen kopieren
Moin,
Gruß R
Wandel sie in Calc, dann kannst Du sie nach BASE schieben.Wiesie hat geschrieben:Ich bekomme die Daten nicht im Datumsformat importiert
Googeln wird nicht helfen, ist zu speziell. SQL verstehen hilft. Oder eine Beispieldatei, ggf. verfremdet.Wiesie hat geschrieben:Noch eine Frage zu Deinem Vorschlag. Nach welchem SQL Kommando müsste ich googeln wenn ich gleichzeitig feststellen will ob ein bestimmter Datensatz schon vorhanden ist, z.b. "Ort" sich aber geändert hat.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO