Hänger inte riktigt med. Vad ska num vara? 5, 6, "ostron"?
Find-metoden ska du inte använda, kan jag i alla fall säga.
15 svar · 265 visningar · startad av JaktJanne
Suttit och slitit mitt hår inför ett problem, vet ej om det går att lösa med den koden som följer:
Set strRS = Server.CreateObject("ADODB.Recordset")
Set strCONN = Server.CreateObject("ADODB.Connection")
strCONN.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("sokning.mdb")
strCONN.Open
strRS.Open "SELECT * FROM data", strCONN, 2, 3
strRS.Find "num = " & strRS("num")
Do Until strRS.EOF = True
Response.Write "namn = " & strRS("namn")
Response.Write "storlek = " & strRS("storlek")
Response.Write "<p><BR></p>"
strRS.MoveNext
Loop
strRS.Close %>
Vad jag vill göra är att bara visa de poster som = num. Nu får jag upp alla poster i db:n.
Tilläggas att detta är mitt första försök med databaser
Hänger inte riktigt med. Vad ska num vara? 5, 6, "ostron"?
Find-metoden ska du inte använda, kan jag i alla fall säga.
num är en "string". Vad jag har gjort är egentligen att modifiera ett script som fungerar att hämta en post till att hämta fler. Att jag inte skall använda Find har jag nog förstått. Har fått tips om följande kod
Set strRS = Server.CreateObject("ADODB.Recordset")
Set strCONN = Server.CreateObject("ADODB.Connection")
strCONN.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("sokning.mdb")
strCONN.Open
val1 = Request("num")
strSQL="SELECT * FROM data WHERE num LIKE '" & val1 & "'
strRS.Open strSQL
strRS.MoveFirst
Do While Not strRS.EOF
Response.Write "namn = " & strRS("namn")
Response.Write "storlek = " & strRS("storlek")
Response.Write "<p><BR></p>"
strRS.MoveNext
Loop
strRS.Close %>
Det ser väl bättre ut
Snart hoppar jag i älva....
Nu får jag felmeddelande.
ADODB.Recordset fel '800a0e7d'
Programmet begärde en åtgärd på ett objekt som refererar till ett stängt eller ett ogiltigt Connection-objekt.
på rad 13, och där står det RecSet.Open strSQL. Och mer
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
nummer = Request("ID")
Set RecSet = Server.CreateObject("ADODB.Recordset")
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
RecSet.Open strSQL
HHJJJÄÄÄÄLP..
Ny fel kod sama rad:
[Microsoft][Drivrutin för ODBC Microsoft Access] Selected collating sequence not supported by the operating system.
ehrm... skit i mitt föregående inlägg
RecSet.Open strSQL, "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
Nytt fel:
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
Frågar du en gröngöling det.
har du alternativ att hämta postar om innehållet i fältet stämmer med önskad val.
Jag behöver ocksåanvända Response.write
Hoppas du fattar
Gör såhär istället:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
nummer = Request("ID")
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
Set rsResult = Connect.execute(strSQL)
Do Until rsResult.EOF
Response.Write "namn = " & rsResult("namn")
Response.Write "storlek = " & rsResult("storlek")
Response.Write "<p><BR></p>"
rsResult.MoveNext
Loop
Lite enklare...
Det verkar som jag inte får köra SQL uttryck, får detta feelmeddelande:
[Microsoft][Drivrutin för ODBC Microsoft Access] Selected collating sequence not supported by the operating system.
på rad:
Set rsResult = Connect.execute(strSQL)
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
Vilken datatyp har kolumnen ID? Om den är numeriskt så är predikatet like inte så användbart.
Om ID är numeriskt så skriver man
strSQL="SELECT * FROM data WHERE ID = " & nummer
dvs inga apostrofer omkring sökvärdet.
Like används för fritextsökning i karaktärskolumner. Om man använder like så kan man ha med % eller _ i söksträngen där % matchar 0 eller flera godtyckliga tecken och _ matchar ett godtyckligt tecken.
Om du inte har några wildcards i din söksträng så är det bättre att använda = i stället för like.
Ok @anders.
Det kan vara bra att veta, men när jag startade om datorn så fungerade scriptet, det var väl lite mycket igår kväll.
det är nog inte ofta det händer men larsg har skrivit fel!
strSQL="SELECT * FROM data WHERE ID = " & nummer
det beror väl kanske på att vide också skrivit fel!
fast det var nog bara en temporär black out i grabbarnas huven tror jag.
@nders, det heter huvuden inte huven... för jag är då ingen bil