eldeka Geplaatst: 5 september 2009 Delen Geplaatst: 5 september 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 Link naar reactie
0 fmwebshop Geplaatst: 5 september 2009 Delen Geplaatst: 5 september 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 Link naar reactie
0 eldeka Geplaatst: 5 september 2009 Auteur Delen Geplaatst: 5 september 2009 OK Harry... natuurlijk is dat zo. Hartelijk dank. Quote Link naar reactie
0 fmwebshop Geplaatst: 6 september 2009 Delen Geplaatst: 6 september 2009 1/Script 1 aangepast 2/Je verzoek om variabel te zoeken uitgewerkt Vr groet Harry Dubbels nieuw.fp7 Quote Link naar reactie
0 pjotter Geplaatst: 6 september 2009 Delen Geplaatst: 6 september 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 Link naar reactie
0 eldeka Geplaatst: 6 september 2009 Auteur Delen Geplaatst: 6 september 2009 OK Harry... nogmaals dank voor je oplossing! Quote Link naar reactie
0 eldeka Geplaatst: 6 september 2009 Auteur Delen Geplaatst: 6 september 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 Link naar reactie
0 tackenco Geplaatst: 8 september 2009 Delen Geplaatst: 8 september 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 Link naar reactie
0 pjotter Geplaatst: 8 september 2009 Delen Geplaatst: 8 september 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 Link naar reactie
0 eldeka Geplaatst: 8 september 2009 Auteur Delen Geplaatst: 8 september 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 Link naar reactie
0 pjotter Geplaatst: 8 september 2009 Delen Geplaatst: 8 september 2009 Dat is inderdaad iets waar ik geen rekening mee hield Import van niet unieke informatie in een uniek veld... Quote Link naar reactie
0 tackenco Geplaatst: 9 september 2009 Delen Geplaatst: 9 september 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 Link naar reactie
0 eldeka Geplaatst: 9 september 2009 Auteur Delen Geplaatst: 9 september 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 Link naar reactie
0 Willem_P Geplaatst: 10 september 2009 Delen Geplaatst: 10 september 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 Link naar reactie
0 eldeka Geplaatst: 10 september 2009 Auteur Delen Geplaatst: 10 september 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 Link naar reactie
0 Willem_P Geplaatst: 10 september 2009 Delen Geplaatst: 10 september 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 Link naar reactie
0 eldeka Geplaatst: 10 september 2009 Auteur Delen Geplaatst: 10 september 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 Link naar reactie
0 Willem_P Geplaatst: 10 september 2009 Delen Geplaatst: 10 september 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 Link naar reactie
0 pjotter Geplaatst: 10 september 2009 Delen Geplaatst: 10 september 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 Link naar reactie
0 eldeka Geplaatst: 10 september 2009 Auteur Delen Geplaatst: 10 september 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 Link naar reactie
Vraag
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
Link naar reactie
19 antwoorden op deze vraag
Aanbevolen berichten
Doe mee aan dit gesprek
Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.