Konstigt, jag ser inget fel... Om du inte får något felmeddelande, laddas sidan klart eller står den och bara laddar och laddar? Får bara fram en helt blank sida där TESTAR visas. Laddar klart o allting. men något pris kommer det inte..... Finns det något annat sätt att hämta upp data från en access databas? Hej Verkar som den helt enkelt skiter i följande kod: eller har det med de första raderna att göra där jag bestämmer vart databasen är.....behövs det någon form av "select" redan där ?? prova att ändra raden <% Show = "SELECT pris FROM produkt WHERE ((artnr) = 48515) borde vara " efter sista apostrofen eller ?? Sorry Oavslutad strängkonstant gnäller den om..... Hej! Får följande fel ändå... >Show = "SELECT * FROM produkt WHERE artnr = ' " & 48515 & " ' ;" Nu stöter jag på ytterligare ett litet problem, men Ni kan säkert lösningen. Borde väl finnas ett bättre sätt än att kopiera in hela den ovanstående koden för varje artikel. Ser ut att bli lite mycket kod för en sådan liten funktion. Bara en reflektion på något som verkar vara lätt men som har varit så dj-vla jobbigt. Tack än engång för att ni hjälpt till. Känns skönt att veta att det finns sådana grymma asp proffs som kan hjälpa en newbie på traven lite, Du sersätter bara det hårdkodade värdet med en variabel. Eller så kan du använda en parameter i querystring'en: Om jag fattar det rätt Andreas presenteras väl då de olika priserna baserade på artnr på olika sidor...? Grejen är att jag på en och samma sida har ett 50-talet produkter. Varje gång priserna uppdateras i databasen vill jag att priserna på sidan skall uppdateras. Idag går jag in och skriver alla priser manuellt :-( Varför listar du dem ine med ASP kod? Grejen är att jag har ca. 400 artiklar i databasen. Dessutom har jag olika kategorisidor. Vill på varje kategorisida enbart "pusha" för ett tiotal utvalda produkter. Dessutom har jag en massa undersidor med information om produkterna där även priset anges. Förslag:Hämta priset från access--vad är fel `???
Hoppas ni proffs kan hjälpa mig lite. Jag vill hämta upp priset från min databas då priset på varor uppdateras hela tiden och jag vill bara ändra i databasen så ska priset ändras på min produktsida, Det kommer vara flera varor på sidan som skall visas men i exemplet är det bara en.
I exemplet nedan har jag en produkt med artnr 48515 och vill att priset ska visas men det gör det inte...
Vad kan vara fel ??? Jag får inga felmeddelanden eller så utan det enda som visas är "TESTAR"
Har suttit nu i några dagar och mecklat fram o tillbaka men jag löser det inte :(. Oerhör tacksam för alla förslag
<%
Set Connect=Server.CreateObject("ADODB.Connection")
Connect.Open "vår_url.se_databasen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>
<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="sv">
<META NAME="robots" CONTENT="noindex,nofollow">
<TITLE></TITLE>
</HEAD>
<body>
<p>TESTAR</p>
<% Show = "SELECT pris FROM produkt WHERE artnr =" & 48515
RecSet.Open Show, Connect, adOpenStatic, adLockOptimistic
Response.Write "Priset på " & artnr & " är " & RecSet("pris")
RecSet.Close
Connect.Close
%>
</body>
</html> Sv: Hämta priset från access--vad är fel `???
/JohanSv: Hämta priset från access--vad är fel `???
Sv: Hämta priset från access--vad är fel `???
Sv: Hämta priset från access--vad är fel `???
Gör en liten koll först så att ditt recordset är inte tomt.
Jag brukar alltid göra så här för att få en indikation om det är så att jag får en tom post tillbaka.
IF RecSet.EOF THEN
Response.write"Prisuppgift saknas"
else
Response.Write "Priset på " & artnr & " är " & RecSet("pris")
end if
Om ditt recset är tomt så skrivs prisuppgift saknas ut, annars skrivs artikel nr och pris ut.
Jag antar att du tar emot artnr på något sätt tidigare.
Anna-KarinSv: Hämta priset från access--vad är fel `???
<% Show = "SELECT pris FROM produkt WHERE artnr =" & 48515
RecSet.Open Show, Connect, adOpenStatic, adLockOptimistic
Response.Write "Priset på " & artnr & " är " & RecSet("pris")
RecSet.Close
Connect.Close
%>
Ändrar jag något så kommer fellmeddelanden men låter jag det stå så händer inget förutom att texten "TESTAR" visas. Kan det vara något med databasen som jag måste ändra formatering eller så??
Kolomnen pris ser ut på fäljande sätt: Fältstorlek = heltal, Format = tal, Decimaler = 0 Titel = pris
Vet ärligt talat inte vad jag ska ta mig till..........
// TommySv: Hämta priset från access--vad är fel `???
Sv: Hämta priset från access--vad är fel `???
<% Show = "SELECT pris FROM produkt WHERE artnr =" & 48515
till
<% Show = "SELECT pris FROM produkt WHERE ((artnr) = 48515) Sv: Hämta priset från access--vad är fel `???
Hur som helts så kommer det bara en helt blank sida nu bara. Skriver jag exakt så som du skrivit så gnäller den om oavslutad programsats men sätter jag dit "-fnuttarna så blir sidan helt blank..........Sv: Hämta priset från access--vad är fel `???
Sv: Hämta priset från access--vad är fel `???
Har lagt till och ändrat lite i din kod, hoopas det fungera för dig.
<!-- HAR FLYTTAT NED ALL ASP-KOD IN I BODY-TAGGEN -->
<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="sv">
<META NAME="robots" CONTENT="noindex,nofollow">
<TITLE></TITLE>
</HEAD>
<body>
<p>TESTAR</p>
<%
Set Connect=Server.CreateObject("ADODB.Connection")
'Ersätt din rad
'Connect.Open "vår_url.se_databasen"
'med följande rad
Connect.Open "DBQ=" & Server.MapPath("dbTestar.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
'I strängen ska du för DBQ ange den exakta sökvägen och filnamnet för din databas
'Jag har valt att lägga databasen och ASP-filen i samma katalog så därför använder jag Server.MapPath
'Mer om Server.MapPath kan du läsa på olika ASP-forum
Set RecSet = Server.CreateObject("ADODB.Recordset")
'Här har jag lagt till ett semikolon sist i SELECT-strängen
'Oftast klarar databasmotorn av att tolka SQL:n ändå
'men ta för vana att alltid avsluta med semikolon
'som är rätt syntax
'Med stjärntecknet hämtar jag sen alla fält från aktuell post
'måste ju också ha fältet artnr för att kunna skriva ut det
Show = "SELECT * FROM produkt WHERE artnr =" & 48515 & ";"
'Har tagit bort villkoren för Recordsetet
'De du hade där är variabler från en fil adovbs.inc
'Om du ska använda dessa måste denna fil inlkuderas
'FÖr det här enkla recordsetet behövs de inte
RecSet.Open Show, Connect
'Har ändrat textsträngen så att artikelnumret som ska skriva ut hämtas från databasen
'och också lagt till en liten fel-hantering om det inte skulle finnas en post med artnr 48515
If Not RecSet.EOF Then
Response.Write "Priset på artikeln med artikelnummer " & RecSet("artnr") & " är " & RecSet("pris") & " kr."
Else
Response.Write "Det finns ingen artikel med valt artnr!"
End If
RecSet.Close
Set RecSet=Nothing 'Tömmer all minnesallokering på servern
Connect.Close
Set Connect=Nothing 'Tömmer all minnesallokering på servern
%>
</body>
</html>
SvenneSv: Hämta priset från access--vad är fel `???
TESTAR
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/db/test.asp, line 42
Några bra förslag?Sv: Hämta priset från access--vad är fel `???
Om artnr är av datatypen text i databasen så ska den ha ' runt sig i SQL satsen.
Show = "SELECT * FROM produkt WHERE artnr = ' " & 48515 & " ' ;"
Prova om inte det löser problemet.
Anna-KarinSv: Hämta priset från access--vad är fel `???
Den satsen lägger till ett mellanslag framför och bakom artikelnumret vilket antagligen inte är riktigt... Dessutom vill jag minnas att det inte fungerar med ; på slutet, det är bara i en Access-fråga som den ska vara där.
Show = "SELECT * FROM produkt WHERE artnr = '" & 48515 & "'"
/JohanYtterligare problem
Om jag på samma sida vill presentera exempelvis 5 olika priser baserat på tillhörande artnr. Hur gör man bäst då??? Tacksam för hjälp!
Nuvarande kod plockar fram ett pris baserat på ett artnr.
___________________________________________________________________
</HEAD>
<body>
<p>TESTAR</p>
<%
Set Connect=Server.CreateObject("ADODB.Connection")
Connect.Open "DBQ=" & Server.MapPath("databasnamn.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Show = "SELECT * FROM produkt WHERE artnr = '" & 48515 & "'"
RecSet.Open Show, Connect
If Not RecSet.EOF Then
Response.Write "Priset på artikeln med artikelnummer " & RecSet("artnr") & " är " & RecSet("pris") & " kr."
Else
Response.Write "Det finns ingen artikel med valt artnr!"
End If
RecSet.Close
Set RecSet=Nothing
Connect.Close
Set Connect=Nothing
%>
</body>
</html>Sv: Ytterligare problem
// TommySv: Ytterligare problem
<code>
Set Connect=Server.CreateObject("ADODB.Connection")
Connect.Open "DBQ=" & Server.MapPath("databasnamn.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Show = "SELECT * FROM produkt WHERE artnr = '" & Replace(Request.QueryString("artnr"),"'","'") & "'"
RecSet.Open Show, Connect
If Not RecSet.EOF Then
Response.Write "Priset på artikeln med artikelnummer " & RecSet("artnr") & " är " & RecSet("pris") & " kr."
Else
Response.Write "Det finns ingen artikel med valt artnr!"
End If
RecSet.Close
Set RecSet=Nothing
Connect.Close
Set Connect=Nothing
%>
</code>
På så sätt kan du anropa sidan med:<br>
visapris.asp?artnr=48515 Sv: Ytterligare problem
Tacksam för din hjälp!Sv: Ytterligare problem
<code>
<table>
<tr>
<td>artikelnummer</td>
<td>pris</td><tr>
<%
Set Connect=Server.CreateObject("ADODB.Connection")
Connect.Open "DBQ=" & Server.MapPath("databasnamn.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM produkt", Connect
Do until RecSet.EOF
Response.Write "<tr><td>" & RecSet("artnr") & "</td><td>" & RecSet("pris") & "</td></tr>"
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet=Nothing
Connect.Close
Set Connect=Nothing
%>
</code>Sv: Ytterligare problem
Siten växer och det fungerar inte längra att varje vecka sitta och ändra varje sida......Sv: Ytterligare problem
* Skapa en tabel som anger vilka produkter som skall pushas
* Skapa en sida som visar kategorierna
* Skapa sida som visar produkter som skall visas för en kategori
* Försök att standardisera produktsidorna och lägg informationen i en tabell som du länkar till produkten.
Med andra ord. Gör det till en dynamisk site.
Slipper du redigera sidor. Bara att uppdatera databasen.