Avatar billede Xola Nybegynder
22. marts 2012 - 10:08 Der er 8 kommentarer og
1 løsning

Hvordan markerer man hver n'te post pr gruppe i en tabel i Access 2010?

Hej, jeg har i Access 2010 en tabel med ca. 250.000 records, der er grupperet i forskellige grupper af varierende størrelse.

Nu skal jeg markere hver 50. records i de grupper, der har flere end 50 records, hvordan søren gør man det?
Avatar billede sifuentes Nybegynder
22. marts 2012 - 23:49 #1
Hvorfor er det hver n'te og ikke hver n+1'te?
Avatar billede sifuentes Nybegynder
22. marts 2012 - 23:52 #2
Jeg har selvsagt en formodning om valget af det magiske nummer.
Avatar billede Xola Nybegynder
23. marts 2012 - 08:29 #3
Jeg må desværre indrømme, at jeg ikke kan se den afgørende forskel på hver n'te og hver n+1'th. Hvis du har en løsning på det sidste, ville det bestemt også løse mit problem.
Avatar billede Slettet bruger
23. marts 2012 - 08:53 #4
Hvis du med markere, mener markere i datasheet view, mener jeg ikke det er muligt. Hvis der skal udvælges i en tabel på en eller anden måde, er det nok muligt - ved at tilsætte et felt: 'erMarkeret' og så på programmerings/sql vis markere udvalgte poster. Det kræver hver n'te bliver defineret i kontekst til en sorteringsorden.
Hvad skal det efterfølgende bruges til?
Avatar billede Xola Nybegynder
23. marts 2012 - 11:43 #5
Du har helt ret: Markeringen skal ske i forbindelse med en sorteringsorden. Jeg har en større adressefil (250.000 adresser) til en svensk mailing, og det svenske postvæsen har temmelig besværlige krav til sortering og markering af adresserne, hvis man vil opnå en ekstra rabat på portoen:

Først skal man downloade deres sorteringsfil med "brevbärar postkontorers postnumre og tilhørende brevområde". Herefter sorteres adressefilen i henhold til disse brevbärar postkontorers postnumre i stigende orden, herefter alfabetisk efter gadenavn og endelig i stigende orden efter husnummer, først efter ulige og herefter lige numre. Disse sorteringer har jeg fixet, men dernæst ønsker det svenske postvæsen også, at adressefilen bundtes efter nedenstående regler, hvor jeg har klaret pkt. 1 og 2, men er strandet ved pkt. 3:


1. Hvis der indenfor brevbärar postnummeret er mindst 25 forsendelser skal hver forsendelse markeres med ordet "Lokal"


2. Hvis der indenfor brevbärar postnummeret er færre end 25 forsendelser skal de samles med andre forsendelser til brevområdet som brevbärar postnummeret tilhører, dog gælder reglen i pkt. 2. stadig, så det er kun de brevbärar postnumre, hvor bundterne er mindre end 25 der samles på brevområde niveau. Disse skal markeres med brevområdets navn.

3. Gælder kun for adresser markeret med "Lokal": For hver 50. adresse pr. brevbärar postnummer skal der tilføjes følgende Brytmarkering *

Jeg havde forstillet mig en opdateringsforespørgsel der opdaterer et felt med * ud for hver 50. adresse efter ovenstående sortering, men kan ikke gennemskue hvordan man gør.

Jeg håber, at denne forklaring gav et nogenlunde klart billede af problemstillingen?
Avatar billede Slettet bruger
23. marts 2012 - 20:25 #6
Lidt at komme videre på, måske?

I en tabel Mails med felterne postnr og navn, er her hver 50., indenfor hvert postnr, markeret som boolsk falsk. Det virker når der ikke er dupletter mht. navn

SELECT (select (count(navn) mod 50=0 ) from Mails cntLess where  ((strcomp(cntLess.navn,Mails.navn,2)<0)  and (cntLess.postnr=Mails.postnr))) AS is50ndeMarked, *
FROM Mails
ORDER BY [postNr], [navn]

"Handlingen skal bruge en opdaterbar forespørgsel" er meddelelsen  hvis man forsøger undertegnede på en Mails tabel tilsat nyt felt: 'is50ndeMarked'

UPDATE Mails SET is50ndeMarked = (select (count(navn) mod 50=0 ) from Mails cntLess where  ((strcomp(cntLess.navn,Mails.navn,2)<0)  and (cntLess.postnr=Mails.postnr)));

Men det det må kunne løses med temporære tabeller eller loope igennem Mails i vba  kode og udføre update en af gangen.
Avatar billede Xola Nybegynder
19. april 2012 - 09:14 #7
Hej

Jeg beklager meget, at jeg først vender tilbage nu, men har først haft mulighed for at gå videre med sagen nu. Dit forslag virker helt efter hensigten - tusind tak for hjælpen.
Avatar billede Xola Nybegynder
19. april 2012 - 09:18 #8
Jeg kan ikke lige se, hvordan jeg kan give dig points - men hvis du sender et svar, så giver jeg dig fluks de 30
Avatar billede Slettet bruger
19. april 2012 - 09:43 #9
Det var rart at høre at du fik løst.
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