Avatar billede webwally Nybegynder
23. december 2002 - 14:08 Der er 23 kommentarer og
2 løsninger

Opdatere data i Access...

Hey

Jeg har en Access-database, med en tabel i der hedder brugere. Denne tabel indeholder så igen kolonnerne: "navn" og "value".

Jeg skal så bruge ASP-koden der: åbner databasen, plusser 1 til "value", men den skal kun plusse hvis "navn" er = bruger.

Hvis der er noget I ikke foirstår så sig til :-)
Avatar billede medions Nybegynder
23. december 2002 - 14:10 #1
strSQL = "UPDATE brugere SET [value] = [value] +1 WHERE [navn] = '" & brugere & "'"

objConn.Execute(strSQL)

//>Rune
Avatar billede medions Nybegynder
23. december 2002 - 14:10 #2
Eller er det sådan du mener?

strSQL = "UPDATE brugere SET [value] = [value] +1 WHERE [navn] = 'brugere'"

objConn.Execute(strSQL)

//>Rune
Avatar billede webwally Nybegynder
23. december 2002 - 14:13 #3
muligvis men jeg skal også bruge koden der åbner database :)
Avatar billede mortvader Nybegynder
23. december 2002 - 14:13 #4
user=(den aktuelle brugers navn)

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open dsn
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeConnection = con

rs.open "select * from brugere where navn='"&user&"'"
if not rs.eof then
  antal=rs("value")
  if antal<>"" then
    antal=cint(rs("value"))+1
  else
    antal=1
  end if
  conn.execute "update brugere set value="&antal&" where navn='"&user&"'"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
Avatar billede webwally Nybegynder
23. december 2002 - 14:22 #5
hmm hvor i det øverste skal jeg skrive adressen til databasen?
Avatar billede mortvader Nybegynder
23. december 2002 - 14:24 #6
conn.Open dsn

dsn=datasourcename
f.eks:
dsn="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\inetpub\mysite\data\db.mdb"
Avatar billede webwally Nybegynder
23. december 2002 - 14:26 #7
så siger den at der er opstået en konflikt i linje 9...!?!?
Avatar billede webwally Nybegynder
23. december 2002 - 14:28 #8
gider du ikke lige skrive koden som den skal være?? :)

adressen til min database er Server.MapPath("/db/database.mdb
Avatar billede mortvader Nybegynder
23. december 2002 - 14:28 #9
Noget i denne stil :)

user=(den aktuelle brugers navn)

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Server.MapPath("/db/database.mdb")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeConnection = conn

rs.open "select * from brugere where navn='"&user&"'"
if not rs.eof then
  antal=rs("value")
  if antal<>"" then
    antal=cint(rs("value"))+1
  else
    antal=1
  end if
  conn.execute "update brugere set value="&antal&" where navn='"&user&"'"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
Avatar billede webwally Nybegynder
23. december 2002 - 14:32 #10
så sir den:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Datakildenavnet er for langt.
/solsticegame/indsaet.asp, line 6
Avatar billede mortvader Nybegynder
23. december 2002 - 14:34 #11
du må vel åbne databasen fra et andet sted i dine scripts? bare kopier metoden.
Avatar billede webwally Nybegynder
23. december 2002 - 14:36 #12
de andre steder bruger jeg:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")
Conn.Open DSN

men så passer det vel ikke sammen med koden!?
Avatar billede mortvader Nybegynder
23. december 2002 - 14:37 #13
jojo, intet problem!
Avatar billede webwally Nybegynder
23. december 2002 - 14:38 #14
men i din kode står der jo rs.open og sådan, lidt skal jo tilpasses, gider du tilpasse resten efter min metode til at åbne db'er, for jeg er temmelig forvirret selv lige nu :)
Avatar billede mortvader Nybegynder
23. december 2002 - 14:39 #15
user=(den aktuelle brugers navn)

DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open DSN
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeConnection = conn

rs.open "select * from brugere where navn='"&user&"'"
if not rs.eof then
  antal=rs("value")
  if antal<>"" then
    antal=cint(rs("value"))+1
  else
    antal=1
  end if
  conn.execute "update brugere set value="&antal&" where navn='"&user&"'"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
Avatar billede webwally Nybegynder
23. december 2002 - 14:42 #16
ok, så siger den:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.
/indsaet.asp, line 21

:(((
Avatar billede mortvader Nybegynder
23. december 2002 - 14:44 #17
er der skriveadgang til filen?
Avatar billede webwally Nybegynder
23. december 2002 - 14:45 #18
det vil jeg tro, hvordan checker jeg det??
den ligger bare i min egen inetpub\wwwroot\db
Avatar billede mortvader Nybegynder
23. december 2002 - 14:47 #19
i information services tjek at der er skriverettighedder på mappen.
tjek også om selve filen er skrivebeskyttet!
Avatar billede webwally Nybegynder
23. december 2002 - 14:50 #20
ok, det er der ikke, så skal jeg vel bare sætte kryds i skriveadgang?
Avatar billede mortvader Nybegynder
23. december 2002 - 14:51 #21
jepper ;)
Avatar billede webwally Nybegynder
23. december 2002 - 14:52 #22
har jeg gjort, men den giver nu samme melding?
Avatar billede mortvader Nybegynder
23. december 2002 - 14:54 #23
prøv at restarte?  ellers må jeg melde pas.. det er i hvert fald et eller andet setup der er problemet, ikke scriptet. :P
Avatar billede webwally Nybegynder
23. december 2002 - 14:54 #24
jeg prøver lige at lægge den ud på mit websted, og se om den kører der så :-)
Avatar billede webwally Nybegynder
23. december 2002 - 17:26 #25
det virker så nu... takker !
lige en sidste ting, hvis jeg har en value2 hvor der skal trækkes 1 fra, hvordan skal jeg så føre det ind i conn.execute "update brugere set value="&antal&" where navn='"&user&"'"??
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