Avatar billede sunweb Nybegynder
16. august 2005 - 10:32 Der er 15 kommentarer og
1 løsning

Grupering med at tal fra access - prøver igen

hejs igen..

Fik meget venlig hjælp fra en gut her på eksperten tidligere idag, og han hjalp mig frem til nedenstående kode. Så er mit spørgsmål om der er nogen, der med andre øjn kan se hvad fejlen er??

<%
'Henter relaterede varer ind, og grupere dem
select case request.querystring("ListProducts")
case ("show15")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../db/database.mdb")
Conn.Open DSN
strSQL = "Select * From " & Request.QueryString("tabel") & " Where Id = " & Request.Querystring("ID")
rs = Conn.Execute(SQL)

Response.Write rs("varenr")

SQL2 = "Select * From " & Request.QueryString("tabel") & " WHERE visning=" & rs("visning") & " AND Id<>" & Request.Querystring("ID")
rs2 = Conn.Execute(SQL2)

Do While Not rs2.EOF
    Response.Write rs2("varenr")
    rs2.MoveNext
Loop
Conn.Close
Set Conn = Nothing
end select
%>

Håber nogen kan hjælpe, har hårdt brug for hjælp....

På forhånd tak!!
Avatar billede cpufan Juniormester
16. august 2005 - 10:35 #1
det ville hjælpe lidt hvis du kan forklare hvad fejlen går ud på?
Avatar billede sunweb Nybegynder
16. august 2005 - 10:38 #2
Ja selvfølgelig :)

Får fejlen:
Microsoft VBScript compilation error '800a03f6'

Expected 'End'

/default.asp, line 157

Men min kode til at grupere med, starter i linie 750.. Og det virkede fint før, indtil jeg fik sat ovenstående kode ind..
Avatar billede cpufan Juniormester
16. august 2005 - 10:41 #3
kan jeg ikke få de første 157 linier at se så....
Avatar billede nielle Nybegynder
16. august 2005 - 10:44 #4
Ref: http://www.eksperten.dk/spm/640458

Som sagt må din fejl være et eller sndet sted tidligere i din kode. Uanset hav du selv mener, så må du på en eller anden måde have kommet til at ændre noget tidligere. Hvis du poster din kode, så skal jeg/vi gerne gå den igennem.

PS: Jeg undre mig stadig over at du kun har en eneste Case inden i din Select. I dette tilfælde ville en If-Then klart være at foretrække.
Avatar billede cpufan Juniormester
16. august 2005 - 11:20 #5
syntes han skrev at han havde noget med 40 stk case
Avatar billede sunweb Nybegynder
16. august 2005 - 11:22 #6
jepper det har jeg også.. jeg vender lige tilbage, det går amok lige nu!
For fejl 500 på hele webstedet nu.. Vender lige tilbage..
Avatar billede nielle Nybegynder
16. august 2005 - 11:24 #7
Ja, men det fremgår ikke specielt klart af den postede kode. Uden at have en eller anden form af hvordan de står i casen så er det jo sværet at vurdere koden.
Avatar billede sunweb Nybegynder
16. august 2005 - 11:45 #8
Det er utrolig så blind man kan se sig på så noget :) Kan godt forstå du sagde det var svært at vurdere nielle! Det må i undskylde!!

Koden er nu sådan her:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../db/database.mdb")
Conn.Open DSN
strSQL = "Select * From " & Request.QueryString("tabel") & " Where Id = " & Request.Querystring("ID")
rs = Conn.Execute(SQL)

Response.Write rs("varenr")

SQL2 = "Select * From " & Request.QueryString("tabel") & " WHERE visning=" & rs("visning") & " AND Id <> " & Request.Querystring("ID")
rs2 = Conn.Execute(SQL2)

Do While Not rs2.EOF
    Response.Write rs2("varenr")
    rs2.MoveNext
Loop
%>

Og nu får jeg en SQL fejl, forstår dog ikke lige hvor den kommer fra:
Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'maaned'. Make sure it exists and that its name is spelled correctly.

/case.asp, line 756

Og linie 756 sker der bare rs = Conn.Execute(SQL)
Avatar billede nielle Nybegynder
16. august 2005 - 11:51 #9
Det er sikkert fodi du kalder den strSQL det ene sted og SQL det andet sted:

strSQL = "Select * FROM " & Request.QueryString("tabel") & " WHERE id = " & Request.Querystring("ID")
rs = Conn.Execute(SQL)
Avatar billede sunweb Nybegynder
16. august 2005 - 12:01 #10
hehe, newbie- det er mig :) Nu virker det sådan set til dels.. Nu får jeg noget end of file fejl, det forstår jeg ikk!

SP14382
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'EOF'

/case.asp, line 764




(SP14382 er det første varenummer ud i et sæt)
Avatar billede nielle Nybegynder
16. august 2005 - 12:04 #11
Hvordan ser din kode ud nu, og hvilken en linje er 764?
Avatar billede sunweb Nybegynder
16. august 2005 - 12:22 #12
Nu ser den sådan her ud:
<%
'Grupere varer fra databasen i sektion 15
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../db/database.mdb")
Conn.Open DSN
SQL = "Select * FROM " & Request.QueryString("tabel") & " WHERE id = " & Request.Querystring("ID")
rs = Conn.Execute(SQL)

Response.Write rs("varenr")

SQL2 = "Select * From " & Request.QueryString("tabel") & " WHERE visning=" & rs("visning") & " AND Id <> " & Request.Querystring("ID")
rs2 = Conn.Execute(SQL2)

Do While Not rs2.EOF
    Response.Write rs2("varenr")
    rs2.MoveNext
Loop
%>

<%
Conn.Close
Set Conn = Nothing
end select
%>


Linie 764 er: Do While Not rs2.EOF

Siger det dig noget??
Avatar billede nielle Nybegynder
16. august 2005 - 12:30 #13
Prøv med et "Set" foran:

Set rs2 = Conn.Execute(SQL2)
Avatar billede sunweb Nybegynder
16. august 2005 - 12:32 #14
Det er fantastisk!!!!!! det virker ;)
Mange mange tak!!!

Nu blir de så dog lige smidt på en stribe, men det er jo bare og ombryde skidtet og det op at køre :)
Avatar billede nielle Nybegynder
16. august 2005 - 12:47 #15
Den problemstilling nævnte jeg da vist også tidligere:

Response.Write rs2("varenr") & "<br>"

... og et svar :^)
Avatar billede sunweb Nybegynder
16. august 2005 - 12:50 #16
jaja det gjorde du godt nok, meen det ved de fleste jo...
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