Avatar billede jps6kb Novice
14. februar 2005 - 14:27 Der er 3 kommentarer og
1 løsning

Vælge sidste post i et udtræk - 1

Hej.

Jeg har en tabel i en Access DB med bruger logins.
Her vil jeg gerne kunne vælge alle dem fra én bruger og så vælge den næst sidste sorteret efter id (autonummering)

Hvorledes gør jeg det ?
Avatar billede yellow Nybegynder
14. februar 2005 - 19:00 #1
SELECT TOP 1 * FROM
(SELECT TOP 2 *
  FROM BrugerLogins
  WHERE brugerlogin = "brugerlogin"
  ORDER BY id desc)
ORDER BY id
Avatar billede jps6kb Novice
16. februar 2005 - 11:14 #2
Jeg får en fejl:


Microsoft VBScript compilation error '800a03ee'

Expected ')'

/access/iamadmin/index.asp, line 14

set data = Myconn.execute("SELECT TOP 1 * FROM (SELECT TOP 2 * FROM [logAccess]  WHERE [userName] = "admin"
------------------------------------------------------------------------------------------------------^

ASP kode;


<%
Set data = Server.CreateObject ("ADODB.Recordset")
set data = Myconn.execute("SELECT TOP 1 * FROM (SELECT TOP 2 * FROM [logAccess] WHERE [userName] = "admin" ORDER BY id desc) ORDER BY id")
%>
Avatar billede yellow Nybegynder
17. februar 2005 - 02:05 #3
hmm, jeg lavede det bare som forespørgsel i Access for at teste - der virker det fint.

Du kan prøve noget andet. Det bliver dog lidt mere kompliceret.

1: Lav en forespørgsel (query) i Access (SQL-visning):
SELECT TOP 1 * FROM
(SELECT TOP 2 *
  FROM [logAccess]
  WHERE [userName] = varUserName
  ORDER BY id desc)
ORDER BY id

2: Gem forespørgslen som q_lastUserLogin
varUserName er en variabel i forespørgslen og er den vi senere angiver værdien for gennem asp.
Prøv evt. at dobbeltklikke på forespørgslen. Så skulle Access gerne spørge om en værdi for varUserName - test her med et brugernavn om querien virker.

3: Så til asp:

<%
Const adCmdStoredProc = &H0004
Const adParamInput = &H0001
Const adVarChar = 200
Set cmd = Server.CreateObject ("ADODB.Command")
cmd.ActiveConnection = Myconn '<-- dit Myconn object du selv har lavet et sted
cmd.CommandText = "q_lastUserLogin" '<-- navnet som vi gemte forespørgslen som i Access
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@varUserName",adVarChar,adParamInput ,10,"admin") '<-- input bruger admin

Set data = Server.CreateObject ("ADODB.Recordset")
Set data = cmd.Execute

...udskriv recordset-indhold og luk objekter etc.

Håber ikke det blev for forvirrende :)
Avatar billede jps6kb Novice
17. februar 2005 - 10:04 #4
Dét gjorde det.. hehe.. men jeg prøver det og vender tilbage :)
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
Kurser inden for grundlæggende programmering

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