09. august 2003 - 09:27Der er
17 kommentarer og 1 løsning
Autonummer til liste
Jeg har i en form oprettet en liste med følgende sql: SELECT PersonID, Navn, CPR FROM Person WHERE HoldID=[Forms]![UnderFormTilHovedForm]![TempHoldID];
Listen virker fint, ved at vise: Peter 12-12-01 Bjarne 23-05-00 Jette 15-02-00
men problemet er at jeg i listen skal have fortløbende nummer på Eks.:
1 Peter 12-12-01 2 Bjarne 23-05-00 3 Jette 15-02-00
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du får svært ved at lave numrene i en Formular. Faktisk skal der laves et nyt sæt numre efter hver opdatering af tabellen. Hvis det ikke er brugeren, der skal opdatere, men dig selv, er det let at lave.
Jeg har ca. 1000 personer i DB, og jeg ved at det skal gøres via VBA, men jeg kan ikke få funkionen til at virke. Jeg har prøvet med en Function der sætter 1 til recorden med Nr=Nr+1, men det virker ikke efter hensigten, derfor er det jeg spørger i eksperten.
Jeg skal lige oplyse at jeg har 2 lister på samme form, hvilket betyder at Nr skal nulstilles for hver liste. Altså er det formindeligt ikke noget med en global Nr ???
meelby>I can see that there is NO sort order even though it is actually sorted after descending date. If you can accept soring by date then I think I have a solution!
I havent tested this SELECT PersonID, Navn, CPR, (Select Count (*) from Person Where [CPR] > [P].[CPR])+1 AS SortOrder FROM Person AS P WHERE HoldID=[Forms]![UnderFormTilHovedForm]![TempHoldID] ORDER BY CPR DESC;
Terry>> Det er næsten ok, men den viser altså ikke helt korrekt. Den starter med 2, springer 5 over, resten kommer fint:
2 Morten Anthon 290987 3 Patrick 280686 6 Ahmet Satan 270886 7 Glenn Bütow 261186 8 Mads Hornbæk 240786
Jeg vil gerne have den til at starte med 1 og skal sorterer efter Navn!
fynbohans>> Hvis jeg forstår din idé, vil du oprette en Nr-felt i tabellen, som bliver opdateret ved oprettelse eller ændringer med den skjulte form. Hvis det er tilfældet vil listen kun blive vist korrekt hvis jeg viser alle poster på én gang, hvilket jeg ikke gør!
Hvis du bruger de samme betingelser i forespørgslen, der ligger til grund for den skjulte formular, som for listen, får du hvad du ønsker. Eller du kan bruge en IF/ENDIF i VBA-koden.
Brug Terrys finte "Where [CPR] > [P].[CPR])+1", men brug den på et autonummereret felt, som du tilføjer tabellen, så er du sikker på, at feltet er unikt...Modificér, så den starter med 1.
SELECT P.PersonID, P.Navn, P.CPR, P.Billed, (Select Count (*) from Person P1 Where [P1].[Navn] < [P].[Navn] AND P1.HoldID = [Forms]![UnderFormTilHovedForm]![TempHoldID])+1 AS SortOrder FROM Person AS P WHERE (((P.HoldID)=[Forms]![UnderFormTilHovedForm]![TempHoldID])) ORDER BY P.Navn;
It cant be used on an autonumber field because we are sorting on Navn, therefore Count(*) has to be on Navn!
Synes godt om
Ny brugerNybegynder
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.