Du måste ju "döpa den" till ett objekt först ;) Lägg till detta ovanför rad 12:
Set Conn = Server.CreateObject("ADODB.Connection")
50 svar · 843 visningar · startad av plelkes
Jag vill från min databas hämta antalet typ och för varje typ visa vilka namn som tillhör espektiver typ...
Ex.: typ1
namn1
namn2
typ 2
namn 1
namn 2
osv
Jag vill ha sidbrytning efter sista namnet i varje "type"
Efter att sökt här på webforum har jag gjort ett försökt till paging
<%LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
html>
<head>
<title>Vätskebalans</title>
</head>
<BODY>
<%
sida = TRIM( Request( "liquids" ) )
IF sida = "" THEN sida = 1
Set rs= Server.CreateObject("ADODB.RecordSet")
[B]Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("vbalans.mdb")[/B]
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
rs.Open SQL, Conn, 3,1
typ =""
typ = rs("typeNamn")
namn = rs("typeNamn")
visa = typ + namn
rs.PageSize = visa
rs.AbsolutePage = liquids
WHILE NOT rs.EOF AND rowCount < RecSet.PageSize
rowCount = rowCount + 1
If typ<> last_typ Then
Response.Write typ
typ_antal = typ_antal + 1
End if
Response.Write namn
last_typ = typ
rs.Movenext
WEND
rs.Close
Conn.Close
%>
</body>
</html>
Får felutskriftet
VBScript fel'800a01a8
Objekt krävs.: "
rad 12
rad 12 är fet markerad ovan
Du måste ju "döpa den" till ett objekt först ;) Lägg till detta ovanför rad 12:
Set Conn = Server.CreateObject("ADODB.Connection")
tack Leon, klantigt av mig :r
Men nu får jag följande felmess...
ADODB.Recordse fel '800a0bb9'
Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbörde konflikt
på raden:
rs.Open SQL, Conn, 3,1
Det är fel i din SQL ;) Är inte bra på det här ämnet, och vad jag ser så ser det faktiskt rätt ut. Vänta så ska jag hämta Sebbe :p
Vet inte riktigt vad du ska göra, men testa de här två:
visa = CStr(typ) & CStr(namn)
och/eller
visa = CInt(typ) + CInt(namn)
Varför inte bara
visa = typ * 2
Du multiplicerar det talet med två bara, eller? (Om det nu är ett tal?)
Sebbe skrev
Vet inte riktigt vad du ska göra, men testa de här två:
det jag vill göra är att på varje sida visa 1 typ med tillhörande namn
LeonL
Om det nu är ett tal?
nej Leon, som du ser av ursprungskoden så är
typ = rs("typeNamn")
namn = rs("typeNamn")
Hur är databasen uppbyggd? :)
Om det nu itne är ett tal, hur kan du då peka rs.PageSize mot "visa"? Ställer i såfall samma fråga som Sebbe gör ;)
som bilagan
glömde
Måste rs.PageSize vara ett tal? Jag vet ju inte antalet inlägg som skall visas - det beror ju på hur många namn det finns...
Vad lsöte sig??
Funkar det kanske såhär då? :)
If Request.QueryString("type") = "" Then
intType = 1
Else
intType = CInt(Request.QueryString("type"))
End If
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("vbalans.mdb")
strSQL = "SELECT f.FluidNamn, ft.TypeNamn, ft.TypeID FROM tblFluidRelat fr, tblFluids f, tblFluidTypes ft WHERE fr.FluidID = f.FluidID AND fr.typeID = ft.typeID AND ft.TypeID = " & intType & " ORDER by ft.typeID"
Set objRS = objConn.Execute(strSQL)
If NOT objRS.EOF Then
Response.Write(objRS("TypeNamn") & "<p>")
Do Until objRS.EOF
Response.Write(objRS("FluidNamn") & "<br>")
objRS.MoveNext
Loop
Else
Response.Write("Det finns inga av den typen.")
End If
Set objRS = Nothing
intLast = objConn.Execute("SELECT Max(TypeID) FROM tblFluidTypes")(0)
objConn.Close : Set objConn = Nothing
If intType > 1 Then
Response.Write("<a href=""?type=" & intType - 1 & """>&lt;&lt;</a> ")
Else
Response.Write("&lt;&lt; ")
Next
If intType < intLast Then
Response.Write("<a href=""?type=" & intType + 1 & """>&gt;&gt;</a> ")
Else
Response.Write("&gt;&gt; ")
End If
Jag får:
Oväntat 'Next'
på rad 37
33: If intType > 1 Then
34: Response.Write("<a href=""?type=" & intType - 1 & """><<</a> ")
35: Else
36: Response.Write("<< ")
37; Next
38:
39:If intType < intLast Then