29. april 2010 - 17:23 Der er 7 kommentarer og
1 løsning

Flerne duplikater selektivt

I en database jeg arbejder med kan en persoon have mere end et telefonnummer.  Hvis jeg saa laver en rapport over fornavn, efternavn, og telefonnummer kommer den til at se saaledes ud:

Caroline Adriaenssen 03/7412581
Caroline Adriaenssen 0497/121472
Mon Adriaenssen 0497/607213
Veerle Adriaenssen 03/721322
Veerle Adriaenssen 0476/229518

o.s.v.

Standard loesningen til at undgaa at vise navnene flere gange synes at vaere for fornavn og efternavn at saette Hide Duplicates til Yes.  Men hvis jeg goer det faar jeg dette resultat:

Caroline Adriaenssen 03/7412581
                                        0497/121472
Mon                                    0497/607213
Veerle                                  03/721322
                                        0476/229518

Det er jo personen "Caroline Adriaenssen" der ikke skal duplikeres, ikke "Caroline" og "Adriaenssen" hver for sig.  Ved at systemet undersoeger duplikater felt for felt fjerner det for eksempel ens efternavne selv de hoerer til forskellige personer.

I min googlen rundt fandt jeg dette link http://allenbrowne.com/casu-21.html som diskuterer dette problem.  Den foreslaaede loesning er at saette Hide Duplicates til Yes for kun et felt, i artiklens eksempel OrderId.  Artiklen siger saa at ved at anvende Hide Duplicates faar OrderId en egenskal IsVisible.  Hvis OrderID er visible skal de andre felter ogsaa vaere visible, ellers skal de vaere skjult.  Saa  for eksempel OrderDate faar denne ControlSource:  IIf(OrderID.IsVisible, OrderDate, Null).

Det lyder jo tilforladeligt, saa i min rapport satte jeg fornavn til Hide Duplicates og aendrede efternavnets Control Source fra efternavn til IIf(fornavn.IsVisible, efternavn, Null).

Men det fungerer ikke.  Systemet behandler "IIf(fornavn.IsVisible, efternavn, Null)" som en parameter der mangler en vaerdi (jeg faar parametervinduet.)

Har nogen erfaring med, eller kan finde en loesning paa, at fjerne, for eksempel, duplikeret fornavn+efternavn?

Artiklen foreslaar at jeg giver feltet efternavn et andet navn, for eksempel txtefternavn.  Det har jeg proevet, men uden held.

Jeg kan i oevrigt oplyse at rapportens kilde er en tabel der dannes dynamisk efter brugeren har valgt et antal navne fra en liste og trykket paa en knap "List personer."  VBA koden starter med at delete alt fra tabellen og derefter koere en sql insert query.  Jeg har dobbeltchecket navnene i rapporten og tabellen.
Avatar billede Slettet bruger
30. april 2010 - 09:41 #1
bemærk det foranstillede lighedstegn i '=IIf(OrderID.IsVisible,[OrderDate],Null)' fra 'allenbrowne.com/casu-21.html' linket.

Eksemplet går nu mere på at styre synlighed af kolonner, kontroleret af et unikt felt - OrderId - i en adresseliste er hverken fornavn eller efternavn i sig selv unikke:

Caroline Andreasen
Caroline Jespersen

Anders Andreasen
Hilmer Andreasen

.. så man kunne gå en anden vej og sætte fornavn og efternavn sammen i raportens datakilden:

select datakilde.fornavn & datakilde.efternavn as navnelinie from datakilde

og sætte 'hideduplicates' til true for 'navnelinie' kontolelementet.
02. maj 2010 - 07:31 #2
ellebe, tak for dit indlaeg og undskyld sen reaktion.  Jeg er udenbys et par dage, har lige laant en internet forbindelse for at se om der var svar.

1.  Jeg har proevet alle kombinationer af med og uden lighedstegn o.s.v., men uden held.

2.  fornavn og efternavn sammen i datakilden, ja det ville loese dette problem, men saa opstaar det naeste problem at jeg ikke kan sortere paa efternavn.  Plus at hvis der en dag skulle komme to personer med samme for- og efternavn men paa forskellige adresser saa er jeg paa den igen.  Jeg havde haabet at kunne finde en generel loesning.

Jeg er hjemme tirsdag eller onsdag hvor jeg vil teste videre.
Avatar billede nih Novice
02. maj 2010 - 21:53 #3
Hej

Løsning 2 er den rigtige.
- og du kan godt sortere på efternavn ved at beholde den i datakilden, selvom du ikke viser den i rapporten.

mvh
Niels
Avatar billede Slettet bruger
03. maj 2010 - 21:14 #4
Jeg vil mene du skal have en entydig person identifikation med i raporten - den behøver ikke at skulle vises.
05. maj 2010 - 07:10 #5
Saa er jeg med paa vognen igen.  Jeg takker for indlaeg.  Men:

Jeg forsoegte, maaske forkert, i mit oprindelige indlaeg at give et simpelt eksempel (fornavn, efternavn, foedselsdag) paa et generelt problem.  Rapporter kan have, for eksempel, fornavn, efternavn, personnummer, foedselsdag, gade, postnummer, by, telefon, og hvor det saa er de foerste syv felter tilsammen der ikke skal duplikeres hvis de tilsammen er ens men ellers skal vises selv om de individuelt er forskellige. 

Det problem ville http://allenbrowne.com/casu-21.html precist loese hvis jeg kunne faa det til at virke.  Det jeg havde haabet paa var om nogen havde erfaring med egenskaben "IsVisible" som kilden siger OrderID faar naar der bruges "hide duplicates" eller kan foreslaa loesninger paa at systemet behandler "IIf(OrderID.IsVisible, [Company Name], Null)" som en parameter og ikke genkender det som en control source.

(Her til morgen har jeg i rapporten indsat personid som er unik for at se om det skulle goere nogen forskel i stedet for at bruge fornavn, men det gjorde ingen forskel.)
Avatar billede nih Novice
05. maj 2010 - 07:26 #6
Hvad med at bruge indlejret rapport (sub-rapport)
én rapport med alle navne og én subrapport med telefonnumre

Niels
05. maj 2010 - 19:47 #7
Det jeg soeger er en generel loesning paa at skjule duplikater i rapporter, ogsaa naar duplikaterne bestaar af flere felter.  Jeg aantager (forhaabenligt ikke til urette) at Allen Brown der skrev den citerede artikel har fundet/udviklet og testet en saaden generel metode men at jeg begaar fejl naar jeg proever, og fejler, at faa det til at virke, og jeg haaber nogen kan hjaelpe mig med at spotte hvor det gaar galt.  Kan nogen bekraefte/afkraefte at et felt hvor der er brugt "hide duplicates" faar egenskaben IsVisible?  Har nogen maaske proevet denne eller andre metoder om at skjule fler-felt duplikater?  Det maa vaere et tilbagekommende problem.
07. maj 2010 - 18:40 #8
Igen, jeg takker for interessen i mit spoergsmaal.  Desvaerre svarede indlaeggene ikke til mit behov.  Maaske havde jeg kunnet formulere problemet mere praecist.  Jeg vil studere/eksperimentere videre og saa, med mindre jeg selv finder en loesning, saa oprette et nyt og bedre formuleret spoergsmaal.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester