Avatar billede JJ77 Juniormester
16. maj 2003 - 16:36 Der er 4 kommentarer og
1 løsning

hente max sagsnr +1 fra access og lægge det i en skærmvariabel

jeg har en hjemmeside hvor jeg skal hente sagsnr fra min accessdatabase og så +1 og lægge det i en skærmvariabel.. hvordan gør jeg dog det... hmmmmm.. meget svært.... men tror at jeg er tæt på.. feltet som værdien skal lægges i hedder også sagsnr og siden som feltet ligger på hedder opret tilbud..... pleace help.
her kommer koden jeg har brugt:

<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db1.mdb")  'Sti til databasen
Conn.Open DSN

' SQL forespørgsel
strSQL = "SELECT max (sagsnr)+1 FROM Kundedata into :sagsnr"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do 

  ' Udskriv værdien af tabellen Kundedata
  Response.Write rs("sagsnr") & "<br>"
 


  ' Gå til næste Record i rs
  rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede etmadsen Nybegynder
16. maj 2003 - 21:55 #1
Jeg mener du bruger en forkert SQL syntaks til Access. Prøv istedet:

"SELECT Max(sagsnr) + 1 AS MaxSagsnr FROM Kundedata;"
Avatar billede nih Novice
16. maj 2003 - 22:55 #2
conn.execute kan ikke bruges på en select - kun på update, insert osv.

Du er nødt til at åbne recordsettet:
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, conn

Niels
- med forbehold for ASP fejl :)
Avatar billede hekla Nybegynder
17. maj 2003 - 02:55 #3
Jeg ville ikke kalde feltet på siden det samme som feltet i databasen. Det kan give problemer, hvis du skal opdatere databasen med en værdi taget fra feltet.

Prøv med denne:


dim strsql
dim rs

strsql = "select top 1 from kundedata order by sagsnr desc

set RS = conn.execute( strsql )

RS.movefirst

Response.Write rs("sagsnr") + 1
Avatar billede hekla Nybegynder
17. maj 2003 - 02:55 #4
Det var et svar
Avatar billede JJ77 Juniormester
17. maj 2003 - 03:13 #5
svar af mig selv... :
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db1.mdb")  'Sti til databasen
Conn.Open DSN

' SQL forespørgsel
strSQL = "SELECT top 1 (Kundedata.sagsnr)+1 as sagsnr FROM Kundedata order by Kundedata.sagsnr desc"


' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Luk databaseforbindelse
'Conn.Close
'Set Conn = Nothing
%>
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