Avatar billede sorenmt84 Juniormester
06. januar 2002 - 13:28 Der er 12 kommentarer og
1 løsning

if sætning i en if sætning

Jeg har følgende script...
Det det skal gøre at at gå ind og tjekke session(\"accesslevel\") hvis accesslevel er 1 eller 2 skal den sætte session(\"diviblad_Slet\") til \"ok\" (dette virker fint)

Men hvis accesslevel er 3 eller 4 skal den gå ind i databasen og tjekke om feltet refid er det samme som session(\"refid\") hvis det er tilfældet, skal den sætte session(\"diviblad_slet\") til \"ok\" men er de forskellige skal den viderstille til godkendt.asp?side=diviblad (det virker ikke)
dim diviblad_level
diviblad_level = 2
if cint(session(\"AccessLevel\")) < diviblad_level then
session(\"diviblad_slet\") = \"ok\"
end if
dim diviblad
diviblad = 2
if cint(session(\"AccessLevel\")) > diviblad then
if rs(\"refid\") <> session(\"refid\") then
response.redirect(\"godkendt.asp?side=diviblad\")
else
session(\"diviblad_slet\") = \"ok\"
end if
end if
Avatar billede jamal_s Nybegynder
06. januar 2002 - 13:36 #1
fejl eller hvad...jeg er ik helt med ?
Avatar billede zeth Nybegynder
06. januar 2002 - 13:46 #2
Prøv med sådan noget her (jeg regner med at du selv kan finde ud af at tilpasse det :-))

<%
If (Session(\"accesslevel\") = 1 Or Session(\"accesslevel\") = 2) Then
    Session(\"diviblad_Slet\") = \"ok\"
ElseIf (Session(\"accesslevel\") = 3 Or Session(\"accesslevel\") = 4) Then
    Set Conn    = CreateObject(\"ADODB.Connection\")
    Conn.Open    \"din dsn...\"

    Set tjek    = Conn.Execute(\"SELECT refid FROM dintabel WHERE refid=\'\"& Session(\"refid\") &\"\'\")

    If (tjek.BOF Or tjek.EOF) Then
        Response.Redirect(\"godkendt.asp?side=diviblad\")
    Else
        Session(\"diviblad_slet\")    = \"ok\"
    End if

    Set Conn    = Nothing
    Set tjek    = Nothing
End if
%>
Avatar billede sorenmt84 Juniormester
06. januar 2002 - 13:49 #3
>>zeth

Jeg kan ikke helt få det til at stemme, men her er hele koden hvis du gider... :-)

et Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../inc/db/spejder.mdb\")
id = Request.QueryString(\"id\")
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM diviblad WHERE ID=\" & id, Conn, 1, 3

dim diviblad_level
diviblad_level = 2
if cint(session(\"AccessLevel\")) < diviblad_level then
session(\"diviblad_slet\") = \"ok\"
end if
dim diviblad
diviblad = 2
if cint(session(\"AccessLevel\")) > diviblad then
if rs(\"refid\") <> session(\"refid\") then
response.redirect(\"godkendt.asp?side=diviblad\")
else
session(\"diviblad_slet\") = \"ok\"
end if
end if
Avatar billede wilweb Nybegynder
06. januar 2002 - 14:12 #4
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../inc/db/spejder.mdb\")
id = Request.QueryString(\"id\")
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM diviblad WHERE ID=\" & id, Conn, 1, 3

If (Session(\"accesslevel\") = 1 Or Session(\"accesslevel\") = 2) Then
    Session(\"diviblad_Slet\") = \"ok\"
ElseIf (Session(\"accesslevel\") = 3 Or Session(\"accesslevel\") = 4) Then
    Set Conn    = CreateObject(\"ADODB.Connection\")
    Conn.Open    \"din dsn...\"

    Set tjek    = Conn.Execute(\"SELECT refid FROM dintabel WHERE refid=\'\"& Session(\"refid\") &\"\'\")

    If (tjek.BOF Or tjek.EOF) Then
        Response.Redirect(\"godkendt.asp?side=diviblad\")
    Else
        Session(\"diviblad_slet\")    = \"ok\"
    End if

    Set Conn    = Nothing
    Set tjek    = Nothing
End if
%>
Avatar billede sorenmt84 Juniormester
06. januar 2002 - 14:15 #5
Hvad skal jeg skrive i coon.open \"din dsn...\"?
Avatar billede wilweb Nybegynder
06. januar 2002 - 14:21 #6
\"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../inc/db/spejder.mdb\")
Avatar billede sorenmt84 Juniormester
06. januar 2002 - 14:35 #7
Får nu følgende fejl:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/troldhoej2/interne/diviblad/oversigt.asp, line 59

line 59:
Set tjek    = Conn.Execute(\"SELECT refid FROM diviblad WHERE refid=\'\"& Session(\"refid\") &\"\'\")
Avatar billede wilweb Nybegynder
06. januar 2002 - 15:50 #8
<%
If (Session(\"accesslevel\") = 1 Or Session(\"accesslevel\") = 2) Then
    Session(\"diviblad_Slet\") = \"ok\"
ElseIf (Session(\"accesslevel\") = 3 Or Session(\"accesslevel\") = 4) Then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"../inc/db/spejder.mdb\")
Conn.Open DSN
Set tjek    = Conn.Execute(\"SELECT refid FROM dintabel WHERE refid=\'\"& Session(\"refid\") &\"\'\")

    If (tjek.BOF Or tjek.EOF) Then
        Response.Redirect(\"godkendt.asp?side=diviblad\")
    Else
        Session(\"diviblad_slet\")    = \"ok\"
    End if

    Set Conn    = Nothing
    Set tjek    = Nothing
End if
%>


Prøv denne her!
Avatar billede sorenmt84 Juniormester
06. januar 2002 - 17:05 #9
Nej, desværre ikke...
Er det nemmere, hvis jeg sender dig filen og databasen?
Avatar billede wilweb Nybegynder
06. januar 2002 - 22:27 #10
Prøv det! willi@gizom.com
Jeg se på det i morgen, OK
Avatar billede sorenmt84 Juniormester
08. januar 2002 - 16:07 #11
Det var da ærgeligt, men så lukker vi!!!
Avatar billede sorenmt84 Juniormester
08. januar 2002 - 16:08 #12
Skulle være et svar!
Avatar billede wilweb Nybegynder
09. januar 2002 - 10:52 #13
Jeg har da sendt dig en mail om at jeg ikke kunne løse det, på anden måde end denne her. jeg skrev også hvorfor. Hvis dette her ikke virker så må du have fat i nogen der ved mere end mig!
<%
If (Session(\"accesslevel\") = 1 Or Session(\"accesslevel\") = 2) Then
    Session(\"diviblad_Slet\") = \"ok\"
ElseIf (Session(\"accesslevel\") = 3 Or Session(\"accesslevel\") = 4) Then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"../inc/db/spejder.mdb\")
Conn.Open DSN
strSQL = \"SELECT refid FROM dintabel WHERE refid=\'\"& Session(\"refid\") &\"\'\"
Set tjek = Conn.Execute(strSQL)

    If (tjek.BOF Or tjek.EOF) Then
        Response.Redirect(\"godkendt.asp?side=diviblad\")
    Else
        Session(\"diviblad_slet\")    = \"ok\"
    End if

    Set Conn    = Nothing
    Set tjek    = Nothing
End if
%>


:> Gizom
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