Avatar billede killstun Nybegynder
10. april 2005 - 15:55 Der er 13 kommentarer og
1 løsning

automatisk +1 værdi i access database

Jeg har en access database, hvor jeg indføre nogle ting via forms. Når jeg vil indsætte noget, vil jeg gerne have at den indsætter en værdi i et af felterne. En værdi som hele tiden vokser med +1.

Fx.
Jeg indsætter noget i databasen som har værdien 1.
Når jeg indsætter noget i databasen igen, skal værdien vokse til værdien 2.
Næste gang skal den stige til værdien 3 osv osv.

Jeg har prøvet med autoindeksering, men den kan jeg ikke anvende efterom den allerede bliver brugt til ID. Det jeg søger er altså at min form kan huske den sidste indsættelses værdi, og derved sige +1 til denne.
Avatar billede longshanks Nybegynder
10. april 2005 - 15:59 #1
Kig på "application" variables. Disse defineres i global.asa filen!

mvh

Allan
Avatar billede eagleeye Praktikant
10. april 2005 - 15:59 #2
Du kan bruge en update SQL sætning til at opdater eks:

SQL = "update tabelnavn set kolonne = kolonne + 1 where id = xxxx"
Avatar billede killstun Nybegynder
10. april 2005 - 16:13 #3
Eagleeye, jeg har lidt problemer med dit forslag. Hvorledes får jeg fat i ID nummeret, når filmen indsættes på samme side? Jeg har lagt mit script herunder, men får fejlen:

Fejltype:
(0x80020009)
Undtagelse opstod.
/sql.asp, line 60

Script:
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/etellerandet.mdb")
Conn.Open DSN
strSQL = "Insert into etellerandet (titel) values('" & Replace(Request.Form("titel"), "'", "''") & "')"
Conn.Execute(strSQL)
strSQL = "update etellerandet set nummer = nummer + 1 where ID= " & rs("ID")
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
Avatar billede longshanks Nybegynder
10. april 2005 - 16:14 #4
Mit svar gik mere på det du skrev omkring at "min form kan huske den sidste indsættelses værdi".

Hvis dette er det du mangler ville jeg mene at en inkrementering af en Application variabel, vil være mere hensigtsmæssig end at lave database aktioner. ( Performance etc.)
Avatar billede killstun Nybegynder
10. april 2005 - 16:17 #5
Ja, netop det jeg søger. Kan du give et eksempel. Har aldrig rodet med global.asa filer...
Avatar billede longshanks Nybegynder
10. april 2005 - 16:28 #6
hvis du laver en global.asa fil og lægger den i roden af din ASP application, vil den tage effekt på hele dit site. Dvs. f.eks. ved at skrive Application("counter") = 0

under Application_Onstart parametren i global.asa vil du have en variabel Application("counter") med værdien 0 fra applikationens opstarts tidspunkt! Denne inkrementerer du så i dine scripts.

f.eks. ved Form submit kan du inkrementere med 1 via:
Application("counter") = Application("counter") + 1

Osv. osv....
flg. sites giver et hurtigt overblik over global.asa:
http://www.communitymx.com/content/article.cfm?cid=36009
http://www.haneng.com/lessons_19.asp
Avatar billede longshanks Nybegynder
10. april 2005 - 16:29 #7
Virker mere eller mindre som sessions, men er bare permanente variabler!!
Avatar billede killstun Nybegynder
10. april 2005 - 16:33 #8
Takker. Afprøver lige og vender tilbage hertil om 2 timers tid (FCK-brøndby ;-)
Avatar billede longshanks Nybegynder
10. april 2005 - 16:37 #9
Ja lige nemlig ja!!!

Forca FC!

:o)
Avatar billede killstun Nybegynder
10. april 2005 - 17:34 #10
Nu har jeg lavet denne global.asa:

<SCRIPT LANGUAGE= VBScript RUNAT=Server>
    Sub Application_OnStart
    Application("counter") = 0
    End Sub
   
    Sub session_OnStart
        Application.Lock
        Application("counter") = Application("counter") + 1
        Application.UnLock
    End Sub
</SCRIPT>

Og indført dette ved form feltet:
<%=application("counter")%>

Men tallet stiger ikke. Den bliver ved værdien 1. Hvad gør jeg galt. Jeg går ud fra at det har noget med denne linie at gøre "Application("counter") = Application("counter") + 1" som skal ind ved form submit feltet, men kan ikke finde ud af hvorledes den skal implanteres?
Avatar billede longshanks Nybegynder
10. april 2005 - 18:08 #11
Nu går jeg ud fra at du vil have nummeret til at stige hver gang du "submitter" din form?

hvis du i din form refererer til et andet ASP script f.eks. <form action="ditEksterneScript.asp" .....> så kan du i "ditEksterneScript.asp" sætte Application("counter") = Application("counter")+1

Burde virke!!!
Avatar billede killstun Nybegynder
10. april 2005 - 19:18 #12
jeps, det virker. Takker mange gange. Smid lige et svar, så du kan få nogle velfortjente points :-)
Avatar billede longshanks Nybegynder
10. april 2005 - 20:27 #13
Dejligt at det virker!

God "resten af søndagen"
:o)
Avatar billede killstun Nybegynder
10. april 2005 - 20:49 #14
jeps takker og i lige måde :-)
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