Autor Thema: Doppelte Datensätze verhindern  (Gelesen 1774 mal)

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
Doppelte Datensätze verhindern
« am: 09.07.02 - 16:31:35 »
Hallo an alle Lotus Notes Gurus (und die anderen auch  ;)),

gibt es eine einfache Möglichkeit zuz verhindern, dass ein Doc doppelt angelegt wird?

Gruß
  Steffen
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Wipe

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 873
  • Geschlecht: Männlich
Re: Doppelte Datensätze verhindern
« Antwort #1 am: 09.07.02 - 16:44:23 »
Hallo,

meinst Du das kopieren/einfügen oder bezogen auf ein Feld (z.B. eine Nummer).

Gruss
Bubble
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re: Doppelte Datensätze verhindern
« Antwort #2 am: 09.07.02 - 18:06:01 »
Zitat
Hallo,

meinst Du das kopieren/einfügen oder bezogen auf ein Feld (z.B. eine Nummer).


Sprich was macht einen Datensatz zu einem Datensatz ;D und was ist das Kriterium dafür das einer doppelt ist ???


Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
Re: Doppelte Datensätze verhindern
« Antwort #3 am: 10.07.02 - 08:19:14 »
Also,

wir haben hier eine Datenbank in der die Lieferanten gespeichert werden. Es konnt immer wieder vor, dass die Leute vor dem anlegen eines Neues Lieferers nicht gucken ob er schon besteht, sondern legen ihn einfach an.
Die Folge: Viele Lieferanten (eine komplett gefüllte Maske ist ein Datensatz) sind doppelt und dreifach vorhanden.

Und genau das wil ich verhindern.


Gruß
  Steffen
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Doppelte Datensätze verhindern
« Antwort #4 am: 10.07.02 - 08:26:48 »
Hab hier mal was zum Thema ausgegraben

This is a handy way I use to prevent users from saving duplicate
                                        documents. A duplicate
                                        document is defined by the document key, which is determined by your
                                        application.

                                        1. Create a view of all documents, sorted by the key field or value of the
                                        key. Limit the
                                        view selection formula to those forms you wish to prevent duplicates for.
                                        2. Create a field on the each form which evaluates to the key value. It
                                        should be a
                                        computed field.
                                        3. Place the code for the Ok2Save function below in the Globals section
                                        of your form.
                                        This allows the function to be called anywhere within your form.
                                        4. Place the following code fragment into the QuerySave event on each
                                        form which contains
                                        the key field: Continue = Ok2Save( source ).
                                        5. In any buttons on your form which save the document, call Ok2Save(
                                        NotesUIDocument ) to
                                        determine if you can save the document.

                                        This will prevent documents from being saved if a document with the
                                        same key exists in the
                                        database. Enjoy!

                                        Function Ok2Save( source As NotesUIDocument ) As Variant
                                        Dim view As NotesView
                                        Dim db As NotesDatabase
                                        Dim doc As NotesDocument
                                        Dim s As New NotesSession
                                        Dim key As String
                                        Dim key2 As String
                                        Dim item As NotesItem

                                        ' get the current database and view
                                        Set db = s.CurrentDatabase
                                        Set view = db.GetView("(all)") ' this is the view created in step 1 above

                                        ' refresh document for validation formulas and get key for this document
                                        Call source.Refresh
                                        key = source.fieldgettext("key")

                                        ' check to see if the document key already exists....
                                        Set doc = view.getdocumentbykey( key )

                                        If doc Is Nothing Then
                                        ' first time saved
                                        Ok2Save = True
                                        Exit Function
                                        Else
                                        Set item = doc.GetFirstItem("key")
                                        key2 = item.values(0)
                                        If key2 = key Then
                                        ' key matched...possible duplicate"
                                        ' subsequent saves
                                        If doc.UniversalID = source.document.UniversalID Then
                                        'saving same document
                                        'unid matched, same doc, saving..."
                                        Ok2Save = True
                                        Exit Function
                                        Else
                                        ' duplicate document
                                        ' unid is different with same key...duplicate document"
                                        Messagebox "This would create a duplicate document. Save
                                        cancelled.",64,"Save"
                                        Ok2Save = False
                                        End If
                                        Else
                                        ' keys dont match not the same document
                                        'keys dont match...saving"
                                        Ok2Save = True
                                        End If
                                        End If
                                        End Function
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
Re: Doppelte Datensätze verhindern
« Antwort #5 am: 10.07.02 - 08:59:00 »
Danke für die schnelle Antwort.
Das hilft mir bestimmt weiter...

Gruß
  Steffen
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
Re: Doppelte Datensätze verhindern
« Antwort #6 am: 10.07.02 - 11:59:30 »
Hallo,

ich habe den Quellcode soweit in meine Datenbank eingefügt.
Ich habe nur noch folgendes Problem.
Wenn ich beim OnClick Ereignis bei meinen Save-Buttons

Call Ok2Save( NotesUIDocument )

eintrage (wie in der Anleitung beschrieben, bekomme ich eine Typemismatch-Meldung. :-/

Woran kann das liegen? ???

Gruß
  Steffen
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz