Autor Thema: Duplikate bei Excel-Import  (Gelesen 1825 mal)

Offline Yves-KA

  • Frischling
  • *
  • Beiträge: 5
Duplikate bei Excel-Import
« am: 20.11.06 - 22:14:32 »
Hallo zusammen,

ich importiere mir Datensätze aus einer Excel-Datei, basierend auf dem hier schon öfter verlinkten Beispiel aus der Sandbox: href="http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/ae94b2c10a4cb8a685256f0a0063866f?OpenDocument"

Jetzt hab ich natürlich das Problem mit Duplikaten. Ich hab dazu folgenden Code (im wesentlichen aus der Sandbox) in einem Agenten versucht:

Sub Initialize
   Dim s As New notessession
   Dim db As notesdatabase
   Set db =s.currentdatabase
   Set alldocs = db.getview("All")
   Dim doc1 As notesdocument
   Dim doc2 As notesdocument
   Set doc1=alldocs.getfirstdocument
   Do While Not (doc1 Is Nothing)
      Set doc2=alldocs.getnextdocument(doc1)
      If doc2 Is Nothing Then
         Exit Do
      End If
      If Trim(Ucase(doc1.Name(0))) = Trim(Ucase(doc2.Name(0))) Then
         doc1.remove True
      End If
      Set doc1=doc2
   Loop
End Sub

Mir scheint aber, das kann theoretisch nur funktionieren, wenn die Duplikate direkt aufeinander folgen. Praktisch löscht mir der Code alle Dokumente bis auf das Letzte ;-)

Hat jemand eine Idee, wieso der Code oben nicht funktioniert? Oder gleich die sauberste Lösung: Wie ich bereits beim importieren von Datensätzen prüfen kann, ob ein entspr. Dokument bereits vorliegt?

Bin dankbar für jeden Tipp, Link, etc..


EDIT: Die Datensätze meiner Exceldatei haben schlicht mehrere Textfelder, eines davon ist einzigartig und soll als sozusagen unique id fungieren..
« Letzte Änderung: 20.11.06 - 22:16:51 von Yves-KA »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Duplikate bei Excel-Import
« Antwort #1 am: 20.11.06 - 23:28:45 »
Zunächst einmal: Deine Deutung des Codes ist korrekt. So einfach wird es aber nicht mit "jeden Tipp, Link, etc.": Das Ganze ist zunächst erst einmal eine konzeptionelle Aufgabe - was ist denn bei Dir ein Duplikat? Was ist dann das Kriterium, welches die gültige Version ist? Sollen ggf. (unter welchen Bedingungen?) Daten aus "Duplikaten" zusammengeführt werden (nach welchen Regeln?), wenn solche gefunden werden?

Ich denke, hier musst Du erheblich mehr spezifizieren. Dann können wir Tipps (aber wegen der Spezifik wohl eher keinen fertigen Code) liefern.

Bernhard

Offline Yves-KA

  • Frischling
  • *
  • Beiträge: 5
Re: Duplikate bei Excel-Import
« Antwort #2 am: 21.11.06 - 14:06:52 »
Ich versuche es mal so darzustellen:

Exceldatei zum Zeitpunkt A:
LieblingsfarbeNameID
grünMax1
blauMoritz2

Exceldatei zum Zeitpunkt B:
LieblingsfarbeNameID
grünMax1
gelbMoritz2
rotBernd3


Der Datensatz mit der ID "1" wäre dann ein Duplikat, welches ich nicht neu importieren, sprich verwerfen möchte. Der Datensatz mit der ID "2" wäre kein Duplikat, da sich ein Feld geändert hat. Datensatz "3" wäre schlicht neu und würde dazugefügt werden.

Wichtig ist dabei natürlich, dass die die Menge der Datensätze in der Exceldatei natürlich wesentlich höher ist und außerdem deren Reihenfolge durchaus variieren kann.

Interessant wäre ausserdem - über das Duplikatproblem hinaus - eine Art History der geänderten Einträge (in obigem Beispiel der Datensatz "2"). Wie wäre das am Besten zu lösen, mit Response-Dokumenten? ...aber das nur im Hinterkopf, das soll später dazukommen, hat aber sicher Einfluss auf mein eigentliches Duplikatproblem oben.

Danke!  :)

« Letzte Änderung: 21.11.06 - 14:13:16 von Yves-KA »

Driri

  • Gast
Re: Duplikate bei Excel-Import
« Antwort #3 am: 21.11.06 - 14:59:06 »
Hallo,

Du müßtest durch die Datensätze "schleifen" und für jeden Datensatz prüfen, ob es zu der ID schon ein Dokument ni der Datenbank gibt.

z.B

Set doc = view.GetDocumentByKey(ID, True)
If Not (doc Is Nothing) Then

   ...Updateverarbeitung
Else
   ...neues Dokument anlegen
End If



 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz