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 · 857 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
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
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