Avatar billede myanimalfarm Nybegynder
02. april 2005 - 16:48 Der er 7 kommentarer og
2 løsninger

Record count? forespørgsel

åhhhh jeg er blevet så glemsom, hvordan er det nu??

Jeg har en helt basic tabel, den har et autonummer felt som nøgle, men jeg er også interesseret i et felt som tælder hvilket nr. post den er, for det er jo ikke nødvendigvis det samme hvis nogen poster er blevet slettet ind imellem.

Det ser sådan her ud:

SELECT Members.MemberID, Members.MemberNumber, Members.MemberName, Members.MemberEmail, Members.Memberpoints
FROM Members;


Anyone??
Avatar billede terry Ekspert
02. april 2005 - 17:09 #1
just answered a similar question
http://www.eksperten.dk/spm/605747
Avatar billede myanimalfarm Nybegynder
02. april 2005 - 18:47 #2
I'm sorry, I don't really get it, explain please :-)

I need the one without filter cause it's pretty straightforward. I just need a query where there's a field that acts like a recordcount so that I can see the record number next to each record.

Could you explain this one:

SELECT tbl1.*, (SELECT count(*) from tbl1 T1 WHERE T1.ID < tbl1.ID)+1 AS Nr
FROM tbl1;

thanks! :-)
Avatar billede fynbohans Nybegynder
02. april 2005 - 20:59 #3
Du kan også bruge VBA,
Du skal bruge en skjult formular, hvor autonummer er ordnet stigende (DanNummer).
I din formular åbner du den med:

Private Sub Form_Open(Cancel As Integer)     
        DoCmd.OpenForm "DanNumre", acNormal, , , , acHidden
End Sub

VedÅning i formularen DanNumre:

Public Sidstepost As Long
Function Numre()
       
        Dim SidsteNr As Long
        Dim PostNr As Long
                   
        DoCmd.GoToRecord , , acLast
        SidsteNr = [ID]
        DoCmd.GoToRecord , , acFirst
       
        PostNr = 0
        Do
            PostNr = PostNr + 1
            [POST] = PostNr
            If [ID] = SidsteNr Then Exit Do
            DoCmd.GoToRecord , , acNext
        Loop
        Numre = PostNr
End Function

Private Sub Form_Open(Cancel As Integer)

          Sidstepost = Numre()
          DoCmd.Close
End Sub

Den globale variabel SidstePost kan bruges overalt i basen når der tilføjes eller slettes poster. Hvis du aldrig eller sjældent sletter eller tilføjer poster behøver du ikke at opdatete hver gang basen åbnes, men kan nøjes med at køre opdateringen efter behov.
Avatar billede terry Ekspert
03. april 2005 - 10:28 #4
SELECT tbl1.*, (SELECT count(*) from tbl1 T1 WHERE T1.ID < tbl1.ID)+1 AS Nr
FROM tbl1;



SELECT tbl1.* FROM tbl1


This part returns ALL records from tbl1


the SUB SELECT
(SELECT count(*) from tbl1 T1 WHERE T1.ID < tbl1.ID)
returns the row number starting at 0,but then the +1 resets this to 1



For example:
Lets say we have only one field in tbl1 (ID)

ID = 8     The sub select returns the number of records where the ID field is < 8 which is 0+1 = 1
ID = 111        The sub select returns the number of records where the ID field is < 111 which is 1+1 = 2
ID = 200    The sub select returns the number of records where the ID field is < 200 which is 2+1 = 3
ID = 500    The sub select returns the number of records where the ID field is < 500 which is 3+1 = 3


So the SQL will return
8, 1
111, 2
200, 3
500, 4
Avatar billede terry Ekspert
03. april 2005 - 10:30 #5
But as I mentioned in the previos question you will NOT be able to alter data in the form.
Avatar billede myanimalfarm Nybegynder
03. april 2005 - 12:53 #6
shit...it wont work then, it's a webbased memberlist and it's updated from an ASP page...I must try to do it from that end then...will just leave this question open for a while longer, then I'll give you guys points :-)
Avatar billede terry Ekspert
03. april 2005 - 13:09 #7
I was under the impression that it was in Access you were using the SQL. If its on a WEB page  using ASP then there should be NO PROBLEM
Avatar billede terry Ekspert
04. april 2005 - 12:18 #8
status?
Avatar billede myanimalfarm Nybegynder
13. april 2005 - 18:03 #9
Tror det er opklaret, har oprettet det andet spørgsmål her http://www.eksperten.dk/spm/605885 hvis du har kommentarer modtager jeg gerne :-)
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