Avatar billede christina007 Nybegynder
23. februar 2007 - 10:22 Der er 11 kommentarer og
1 løsning

sortering af DB forekomster

Hej,

Jeg trækker data ind fra et excel dokument i min database. Der er dog en fejl i data fra excel med flere ens forekomster. Jeg vil derfor gerne sortere således at der kun er en række der vises hvis nogle kriterier opfyldes.

Således ser data ud (Udsnit)- der skal kun være en af hver forekomst med ens data:

YECNTY    YEORDN    YERESR    ODQYSD    ODINSH    YELGST
1    7554086    7147791    4329    1081226    22
1    7554346    7147791    8061    1081226    22
1    7554962    7147813    3588    1070129    22
1    7555451    7231385    14810    1070214    30
1    7555451    7231385    14810    1070214    30
1    7555451    7231385    14810    1070214    30
1    7555451    7231385    14810    1070214    30
1    7554484    7235119    43304    1070124    30
1    7554484    7235119    43304    1070124    30
1    7554484    7235119    43304    1070124    30
1    7554484    7235119    43304    1070124    30

Jeg håber det er forklaret ordentligt
Avatar billede langthjem Nybegynder
23. februar 2007 - 10:35 #1
Hvilken database trækker du data fra?
Avatar billede langthjem Nybegynder
23. februar 2007 - 10:36 #2
Sorry, så ikke lige at det var i Access kategorien *flovt*.
Avatar billede christina007 Nybegynder
23. februar 2007 - 10:44 #3
Hi hi, ja det er en access 2003 db :-)
Avatar billede mugs Novice
23. februar 2007 - 10:53 #4
Hvis det kun er et enkelt felt der ikke må være ens, er det nemmeste at lave en forespørgsel og bruge DISTINCT:

SELECT DISTINCT....

Hvilket betyder, at der kun medtages een forekomst af data.

Drejer det sig om flere felter, kan du lave en sammensat nøgle af disse felter, og hvilket gør, at der kun importeres een værdi af felterne.
Avatar billede christina007 Nybegynder
23. februar 2007 - 10:54 #5
Tak, det er det jeg leder efter - kan du også forklare hvordan jeg gør det i Access uden at skrive SQL koden. De er ikke så glade for kode skrivning på mit arbejde for så kan andre ikke forstå det...
Avatar billede mugs Novice
23. februar 2007 - 11:38 #6
Jeg går ud fra, at du ved hvordan du opretter en forespørgsel. Efterhånden som du trækker tabellerne og felterne ned i forespørgselsgitteret, skriver programmet selv SQL-sætningen. Det behøver du ikke at bekymre dig om.

Men hvis du vil have en SELECT DISTINCT skal du manuelt indsætte DISTINCT sådan:

Åbn forespørgslen i designvisning > Øverst vandret VIS > SQL og du ser nu forespørgslen's SQL-sætning. Lige efter det første ord SELECT laver du et mellemrum og skriver DISTINCT og sørg for, at der er mellemrum til det næste ord. FØr din forespørgsel og nu vil der kun være een forekomst af posten.

Hvis du mener den sammensatte nøgle, skal du sørge for at felterne ligger nedenunder hinanden. Du kan sagtens flytte felterne i tabellens designvisning ved at markere et felt og trække det til en ny position. Når de alle ligger korrekt, kan du markere alle felter og trykke på ikonet for primær nøgle. Men hvis du har data i tabellen som er dubletter vil du ikke kunne vælge den primære nøgle, idet PK jo ikke må indeholde dubletter. Du er nødt til først at slette data og importere igen, eller lave en ny tabel med PK og sende data herover.
Avatar billede christina007 Nybegynder
23. februar 2007 - 12:15 #7
Tak skal du ha'

Jeg har ikke lavet det endnu, men det kommer nok itl at lykkedes - du får pointene!
Avatar billede mugs Novice
23. februar 2007 - 13:42 #8
Tak for point. Får du problemer vender du bare tilbage.
Avatar billede christina007 Nybegynder
26. februar 2007 - 12:17 #9
AV - så fik jeg problemer... Jeg kan ikke lave den sammensatte nøgle i Access da det er linked (siger fejlmeddelelsen).

Ved du hvordan jeg vælger hvor der skal være key's når jeg linker til excel sheetet (.csv fil)
Avatar billede mugs Novice
26. februar 2007 - 13:09 #10
En ændring af primære nøgler skal foretages i Back End filen. Du kan ikke ændre tabellerne i din Front End.

Prøv den anden mulighed med en foirespørgsel og en Select Distinct.

Hvad mener du med denne:

Ved du hvordan jeg vælger hvor der skal være key's når jeg linker til excel sheetet (.csv fil)
Avatar billede christina007 Nybegynder
26. februar 2007 - 16:21 #11
Jeg har lavet en select distinct og jeg har fået rydtet godt op i data på den konto. Jeg er dog lidt bange for at jeg mister data da min distinct nu går på alle viste kolonner.

Hvad mener du med denne:

Ved du hvordan jeg vælger hvor der skal være key's når jeg linker til excel sheetet (.csv fil)

Jeg mener at jeg linker (importerer) data fra en .csv fil og kan dermed ikke identificere hvilke felt/felter der skal være PK. JEg vil jo gerne lave en sammensat PK så jeg ved at der kun bliver lavet distinct på de ønskede kolonner.
Avatar billede mugs Novice
26. februar 2007 - 18:23 #12
Så er vi tilbage ved din PK. Du kan IKKE ændre tabellens Design i Front End - Kun i Back End.

Du kan evt. importere til en temporær tabel med en sammensat PK. Efter du har foretaget importen, kan du sende data til den "rigtige" tabel og du vil kun have een forekomst af hver post.
Herefter kan du tømme den temporære tabel for poster. Det lyder omstændigt, men gør du det i VBA, er det lynhurtigt og selve programmeringen er ikke svær at skrive.

Husk blot på een ting: Når du sletter poster i Access, vil den plads de slettede poster udgjorde ikke blive frigjort før du har komprimeret DB. I Funktioner >  Indstillinger > Generelt kan du sætte DB til at komprimere ved lukning. På den m¨de sikrer du, at DB aldrig fylder mere end nødvendigt.
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