Har ett problem: I en sökruta (txtsoka) vill jag kunna skriva i ett valfritt sökord t.ex. sony, son, ny etc. Då vill jag att snutten ska ta fram den/de rade/rader i tabellen där kolumnen test innehåller den angivna snutten t.ex. son Vad använder du för anslutning? ODBC drivrutinen för Access har * och ? som jokertecken medans OLEDB drivrutinen använder % och _. Så här ser min anslutning ut: Hejsan! provade din sträng:Problem med att söka i databasen
Resultatet borde bli att den tar fram en rad som heter Sony eftersom jag sökt på son
Träffen Sony vill jag dessutom ska hamna i en ruta ny ruta som heter txtrubrik
vad blir fel?
'////////Ska ta fram träff genom det sökord som anges t.ex. son///////////////////
ssSOK = "SELECT test FROM madde WHERE test LIKE '*" & request.Form("txtsoka") & "*' "
set rsssok = Server.CreateObject ("ADODB.Recordset")
rssok.Open ssSOK, koppling
'////////I HTML-koden har jag angett raden som ska utföra att den lägger träffen i txtrubrik//////////////
<input type="text" size="26" name="txtrubrik" value="<%response.write rssok("test")%>">Sv: Problem med att söka i databasen
Testa med:
<code>
ssSOK = "SELECT test FROM madde WHERE test LIKE '%" & request.Form("txtsoka") & "*%' "
</code>Sv: Problem med att söka i databasen
Den fungerar eftersom jag utför andra select-satser från databasen.
On error resume next
'///////////////////Sökväg till databas//////////////////////////////////
filePath = Request.ServerVariables("APPL_PHYSICAL_PATH") & "DB/DB.mdb"
Set koppling = Server.CreateObject("ADODB.Connection")
'///////////////////Tömmer errors collection/////////////////////////////
koppling.Errors.clear
'//////////////Skapar uppkoppling mot databasen//////////////////////////
koppling.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePathSv: Problem med att söka i databasen
Recordset??!! Ojdå, det var ju ett steg tillbaka om man använder .NET vill säga, vilket jag tror eftersom du postat i det forumet.
I vilket fall som helst tror jag mig kunna se att problemet finns här:
<input type="text" size="26" name="txtrubrik" value="<%response.write rssok("test")%>">
Vad händer om du nu får fram flera rader??? Jo, jag tror att det bara är den översta raden som hamnar i din ruta och din träff på Sony hamnar i "limbo". Den finns men syns inte.
När jag får problem med strängar som dina brukar jag ta dem och stoppa koden, utvärdera uttrycket så att det blir något fast och kopierar in det i en instans av Access och testkör. Om det då funkar vet jag att problemet inte ligger i frågan eller i Access utan där emellan.
Om du tex har följande sträng:
"SELECT Namn FROM Kunder WHERE Namn LIKE '%" & txtNamn.text & "%'"
Skulle den kanske bli:
"SELECT Namn FROM Kunder WHERE Namn LIKE '%Sonny%'"
Den strängen tar du och testkör i Access.
//Mikael.NETSv: Problem med att söka i databasen
SELECT Namn FROM Kunder WHERE Namn LIKE '%Sony%';
...då fungerar den inte, dvs jag får inte fram någon rad överhuvudtaget.
Så här skrivet, fungerar det och jag får fram rätt rad.
SELECT test
FROM madde
WHERE test LIKE '*Sony*';
Så här har jag provat att skriva i koden, men den hittar inte. Jag har provat byta ut kolumnnamnet (test) mot andra kolumner i tabellen (madde) och detta fungerar utan problem. Så jag kan inte se varför det inte fungerar nu =(