eldeka Posted September 5, 2009 Posted September 5, 2009 Ik weet dat dit een reeds veel besproken onderwerp is maar ik vind op het forum geen antwoord op het volgende probleem. Na importeren van gegevens in een FMP DB heb ik in het unieke sleutelveld dubbele waarden. Ik wens die gewoon te elimineren. In bijlage heb ik 2 scripts gemaakt. Script 1 zou gewoon via een Loop de dubbele records moeten verwijderen. Pas na 7 uitvoeringen van het script zijn alle dubbele records verwijderd. Script 2 markeert eerst de dubbele records om ze nadien te selecteren en dan gezamelijk te verwijderen. Dit lukt perfect in 1 run van het script. Mijn vragen: 1) wat is er fout in Script 1? 2) Kan de oplossing met Script 2 eventueel uitgebreid worden met een variabele zodat op gelijk welk veld kan geselecteerd worden? Graag wat ervaring van de profs. Dubbels.fp7 Quote
0 fmwebshop Posted September 5, 2009 Posted September 5, 2009 De fout in script 1 is dat als je een record verwijderd Fm vanzelf al naar het volgende record gaat en je met de scriptstap ga naar volgende record dit dus verdubbeld. Vr groet Harry Quote
0 eldeka Posted September 5, 2009 Author Posted September 5, 2009 OK Harry... natuurlijk is dat zo. Hartelijk dank. Quote
0 fmwebshop Posted September 6, 2009 Posted September 6, 2009 1/Script 1 aangepast 2/Je verzoek om variabel te zoeken uitgewerkt Vr groet Harry Dubbels nieuw.fp7 Quote
0 pjotter Posted September 6, 2009 Posted September 6, 2009 Het ontdubbelen is inderdaad al vaak langs gekomen. Het makkelijkste is toch proberen te voorkomen dat je dubbelen krijgt in je database. Dat doe je door bij de import hier voorwaarden voor te maken en in de database een controle in te bouwen die dubbelen voorkomt (overslaat). Quote
0 eldeka Posted September 6, 2009 Author Posted September 6, 2009 OK Harry... nogmaals dank voor je oplossing! Quote
0 eldeka Posted September 6, 2009 Author Posted September 6, 2009 Het ontdubbelen is inderdaad al vaak langs gekomen. Het makkelijkste is toch proberen te voorkomen dat je dubbelen krijgt in je database.Dat doe je door bij de import hier voorwaarden voor te maken en in de database een controle in te bouwen die dubbelen voorkomt (overslaat). Betekent dit dat je voorwaarden kan instellen bij "Import records"? Unieke waarden bepalen voor het doelveld OK, maar die worden toch bij het importeren niet gerespecteerd? Quote
0 tackenco Posted September 8, 2009 Posted September 8, 2009 Bij importeren kan je toch aangeven; "update matching records"? Je kunt dan het pijtje veranderen voor een = teken om de voorwaarden aan te geven. Op die manier kan je dus twee unieke waarden vergelijken. Als ze gelijk zijn update hij het gevonden record. Onderaan kun je dan ook nog aangeven met een vinkje "add remaining data as new records" waardoor alle records die niet aan de voorwaarde voldoen toegevoegd worden als nieuwe records. Gr. Niels ps. Excuses voor de engels benaming, ik werk altijd in de engelse versie, dat ben ik nu eenmaal gewend. Quote
0 pjotter Posted September 8, 2009 Posted September 8, 2009 tackenco was me voor maar inderdaad gebruik update en ad new voor importeren van nieuwe bestanden. Zorg er ook voor dat als je geen uniek veld hebt (serie nummer bv) dat je dit maakt door meerdere velden samen te voegen met bv getasnumber. Op die manier maak je een unieke code en zal je bij import niets snel dubbele krijgen die je vervolgens weer wilt verwijderen. Filemaker help file legt dit zeer goed uit trouwens Methods of importing data into an existing file (engelse versie, de nederlandse moet je even zelf bedenken) Quote
0 eldeka Posted September 8, 2009 Author Posted September 8, 2009 Aan allen die hierop gereageerd hebben hartelijk dank. Ik vrees echter dat er een klein misverstand is. Ik wil namelijk in een uniek veld van een lege tabel de waarden van een externe file (bv. Excel) invoeren die niet uniek zijn. De oplossing met matching field en de samengestelde sleutel is mij wel bekend maar biedt volgens mij geen oplossing voor dit probleemke. Ik vermoed dat een script achteraf om de dubbels te verwijderen veruit de beste oplossing biedt. Quote
0 pjotter Posted September 8, 2009 Posted September 8, 2009 Dat is inderdaad iets waar ik geen rekening mee hield Import van niet unieke informatie in een uniek veld... Quote
0 tackenco Posted September 9, 2009 Posted September 9, 2009 OK, voor achteraf kan het misschien zoiets zijn. Als je een relatie aanmaakt met de zelfde tabel op basis van je unieke veld. Je maakt een layout waar een portaal van die relatie staat. Je ziet dan in het portaal alle records die dezelfde unieke key hebben. één daarvan moet blijven staan en de rest mag weg. Je kunt dan eenvoudig met een script de portaalrecords weggooien en er één overhouden. Loop Exit Loop If (Count(Portaal::unieke key) = 1) Go to Portal Row [select; First] Delete Portal Row [No dialog] End Loop Is dat iets? Quote
0 eldeka Posted September 9, 2009 Author Posted September 9, 2009 Mooi zo! Onwaarschijnlijk wat voor een waaier aan reacties zo'n eenvoudige vraag teweegbrengt. Prima forum... je voelt je er goed bij. Dank aan alle leden! Terzijde: het stoort me niet dat Engelse termen gebruikt worden. FMP is toch multilanguage niet? Quote
0 Willem_P Posted September 10, 2009 Posted September 10, 2009 Aan allen die hierop gereageerd hebben hartelijk dank. Ik vrees echter dat er een klein misverstand is. Ik wil namelijk in een uniek veld van een lege tabel de waarden van een externe file (bv. Excel) invoeren die niet uniek zijn. De oplossing met matching field en de samengestelde sleutel is mij wel bekend maar biedt volgens mij geen oplossing voor dit probleemke. Ik vermoed dat een script achteraf om de dubbels te verwijderen veruit de beste oplossing biedt. Ik heb hetzelfde probleem gehad en dit opgelost door in de lege tabel eerst een "nep"-record aan te maken. Vervolgens kun je dan bij het importeren bovenstaande functie met het vergelijken van matching fields gebruiken. Daarna de eerste aangemaakte "nep"-record weer verwijderen. Quote
0 eldeka Posted September 10, 2009 Author Posted September 10, 2009 Ik heb hetzelfde probleem gehad en dit opgelost door in de lege tabel eerst een "nep"-record aan te maken. Vervolgens kun je dan bij het importeren bovenstaande functie met het vergelijken van matching fields gebruiken. Daarna de eerste aangemaakte "nep"-record weer verwijderen. Sorry, maar dit lukt me echt niet. Toch bedankt! Quote
0 Willem_P Posted September 10, 2009 Posted September 10, 2009 Als ik het goed begrijp heb je een lege tabel met daarin een uniek veld, laten we zeggen : Kleur. In deze tabel importeer je vanuit bijv. Excel een bestand met diverse records en een veld dat ook Kleur heet of kleuren bevat. Bijvoorbeeld: Rood, Zwart, Rood, Wit, Wit, Zwart. De bedoeling is om in FMP een tabel op te bouwen met records die unieke kleuren bevatten? Het resultaat na import zou hier dan moeten zijn: Rood, Zwart, Wit. Begrijp ik het zo goed? Quote
0 eldeka Posted September 10, 2009 Author Posted September 10, 2009 Inderdaad... misschien stel ik de importhandelingen niet goed in; maar ik heb zowat alles uitgeprobeerd en de help geraadpleegd. Mijn excel-file bevat één kolom met getallen (kan ik niet in bijlage toevoegen) en ik wil die invoeren in de lege FM-file met één uniek veld (in bijlage). Er worden steeds alle getallen ingevoerd. Ook alle dubbels dus. ImporteerExl.fp7 Quote
0 Willem_P Posted September 10, 2009 Posted September 10, 2009 Je hebt gelijk....heb e.e.a. bij mij nog eens nagekeken, maar ik had geen dubbele records..alleen aanvulling en dan werkt het wel. Dus wordt het toch toevoegen en daarna ontdubbelen....tis niet anders. Quote
0 pjotter Posted September 10, 2009 Posted September 10, 2009 Ik begrijp het nog steeds niet erg goed ben ik bang.Stel je hebt een bestand met kleur wat al genoemd is. Je wilt dus elke keer importeren en alleen records toevoegen als de kleur nog niet bestaat. Dan doe je toch de import met als basis dat als de kleur gelijk is je niet importeer? Je geeft een voorbeeld bestand maar dat is alleen een veld met als kenmerk dat het uniek moet zijn. Daar kan ik verder ook niets van maken ben ik bang? De bedoeling van een uniek veld is dat het echt uniek is? Maakt verder niet uit als je met het wissen van de dubbelen uit de voeten kan is prima maar ik blijf het vreemd vinden? Quote
0 eldeka Posted September 10, 2009 Author Posted September 10, 2009 Ik begrijp het nog steeds niet erg goed ben ik bang. Stel je hebt een bestand met kleur wat al genoemd is.Je wilt dus elke keer importeren en alleen records toevoegen als de kleur nog niet bestaat. Dan doe je toch de import met als basis dat als de kleur gelijk is je niet importeer? Je geeft een voorbeeld bestand maar dat is alleen een veld met als kenmerk dat het uniek moet zijn. Daar kan ik verder ook niets van maken ben ik bang? De bedoeling van een uniek veld is dat het echt uniek is? Maakt verder niet uit als je met het wissen van de dubbelen uit de voeten kan is prima maar ik blijf het vreemd vinden? Niet bang zijn beste pjotter. Het punt is dat ik een veld gedefinieerd heb dat uniek is maar ook GEEN WAARDEN inhoudt. NUL records dus. Ik wil nu records importeren maar alleen unieke waarden toevoegen. Dit kan in heel onze speurtocht blijkbaar alleen door de dubbele waarden nadien via een script te elimineren. En dat lukt me intussen prima. Waarvoor dank aan alle medezoekers! Quote
Question
eldeka
Ik weet dat dit een reeds veel besproken onderwerp is maar ik vind op het forum geen antwoord op het volgende probleem.
Na importeren van gegevens in een FMP DB heb ik in het unieke sleutelveld dubbele waarden. Ik wens die gewoon te elimineren.
In bijlage heb ik 2 scripts gemaakt.
Script 1 zou gewoon via een Loop de dubbele records moeten verwijderen. Pas na 7 uitvoeringen van het script zijn alle dubbele records verwijderd.
Script 2 markeert eerst de dubbele records om ze nadien te selecteren en dan gezamelijk te verwijderen. Dit lukt perfect in 1 run van het script.
Mijn vragen:
1) wat is er fout in Script 1?
2) Kan de oplossing met Script 2 eventueel uitgebreid worden met een variabele zodat op gelijk welk veld kan geselecteerd worden?
Graag wat ervaring van de profs.
Dubbels.fp7
19 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.