Doppelte Datensätze

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Josef

Doppelte Datensätze

Beitrag von Josef »

Ich weiß, dass man beim Index mit UNIQUE doppelte Datensätze (z.B. Kunden-Nr.) rausfiltern kann.
Jetzt möcht ich eben nur die Datensätze anzeigen die eine doppelte Kunden-Nummer enthalten (also ohne UNIQUE)

Das ist für Euch Profis doch bestimmt ein Klacks!!
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Nach dem Seek() führt Du einfach einen weiteren Skip(+1) durch und vergleichst, ob die Kd-Nr auch im nächsten Datensatz vorkommt:

Code: Alles auswählen

Func MyUnique( oDb, nAdNr)
 Local nRec

 oDb:Gotop()
 If oDb:Seek( Str( nAdNr ) )
    nRec := oDb:RecNo()
    odb:Skip()
   if oDb:ADNR == nAdNr 
      MsgBox("KdNr doppelt: "  + Str( nAdNr) )
      Return ( .F. )  // Oder Ruckgabe der Datensatz-Nr
   else
       oDb:Goto( nRec )
   endif
Return ( .T. )     // bzw. Return ( 0 ) 
Josef

Beitrag von Josef »

Hallo Lewi,
das gefällt mir schon sehr gut.
Jetzt möcht ich alle "doppelten" in ein Array schreiben und dieses dann als Liste auf dem Bildschirm anzeigen.
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Beitrag von Muecke »

Geht vielleicht so

Code: Alles auswählen

Func MyUnique( oDb, nAdNr) 
 Local nRec 

 oDb:Gotop() 
 If oDb:Seek( Str( nAdNr ) ) 
    nRec := oDb:RecNo() 
    odb:Skip() 
   if oDb:ADNR == nAdNr 
      MsgBox("KdNr doppelt: "  + Str( nAdNr) ) 
      aaDD(aArray, {nAdNr} )
      Return ( .F. )  // Oder Ruckgabe der Datensatz-Nr 
   else 
       oDb:Goto( nRec ) 
   endif 
 endi 
Return {aArray}   //( .T. )    bzw. Return ( 0 ) 


Danach das Array in eine Listbox anzeigen

Gruss Thomas
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Josef,


anzeigen könntest du das auch so. msgbox(var2lchar(array))
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten