von Wiesie » Mi, 04.01.2017 15:13
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
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