Hej! Jag skulle rekomendera att du lägger in felhantering i din kod liknande som finns på exempel bland "Kurser & artiklar" om databashantering. Raden före den du får problemet på försöker hämta data från databasen men du kontrollerar ej om du fick tillbaka några poster utan försöker bara skriva ut dem. Troligen fick du noll poster tillbaka av någon anledning eller fel från läsningen. Prova att lägga dit felhantering. Jag har sådan felhantering i min applikation men bantade bort den för inlägget. Lösningen på det felmeddelandet är att du faktiskt inte har något fältnamn i ditt recordset som har det namn du refererar till. Det kan antingen vara felstavning eller så har du ett tomt recordset. Det är vad jag tycker det verkar som också men jag har kollat och dubbelkollat. Finns det nåt sätt att se vilka fältnamn recordsetet innehåller? <code>Access/asp - Objektet hittas inte i mängden
Jag försöker skapa ett litet forum på egen hand - uppfinner hjulet igen, men det är kul ...
Jag kör Access XP, ASP, IIS
Databasen Forum.mdb innehåller:
tabellen Inlagg med fälten ID, Rubrik, Kropp, Epost och Datum
tabellen Svar med fälten ID, Svar, Kropp, Epost och Datum
Jag blir inte klok på varför jag får felet:
Feltyp:
ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.
/lb/Forum/forum_test.asp, line 24
när jag kör den här koden:
<code>
<%
' Anslut till Databasen
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("\") & "\..\db\Forum.mdb"
Set con = Server.CreateObject("ADODB.Connection")
con.Open strCon
' Skapa ett Recordset
Set rst = Server.CreateObject("ADODB.Recordset")
rst.CursorType = adOpenKeySet
strSQL="SELECT Inlagg.ID, Inlagg.Rubrik, Inlagg.Kropp, Inlagg.Epost, Inlagg.Datum, Svar.Svar, Svar.Kropp, Svar.Epost, Svar.Datum FROM Inlagg INNER JOIN Svar ON Inlagg.ID = Svar.Svar"
rst.Open strSQL, con
response.Write rst("Inlagg.ID") & ", " & rst("Inlagg.Rubrik") & "<br>" 'FELET!
rst.close
set rst=nothing
con.close
set con=nothing
%>
</code>
Det är raden med Response.Write som inte funkar.
Jag slet länge med fel i SQL-satsen men nu är det inte den som protesterar längre.
Per - som snart tuggar på knogarna.Sv: Access/asp - Objektet hittas inte i mängden
Vanliga fall är:
du får poster ok att läsa dem
du får inga, hantera detta
databasen är stängd eller låst för läsning, visa meddelande om detta.
Du kan även få fel då du ej har rättigheter att läsa databsen, felhantering
osv.
Finns en hel del om liknande här på forumet, lycka till.Sv: Access/asp - Objektet hittas inte i mängden
Det är inga av de felen du nämner dessvärre.
Jag är lösningen något på spåren - det verkar som att jag inte kan hänvisa till t.ex. fältet Rubrik som Inlagg.Rubrik eftersom det är unikt, dvs. jag kan bara kalla det Rubrik. Däremot måste jag skriva Inlagg.Kropp för att skilja fältet från Svar.Kropp.
Kan nån säga om det verkar vara lösningen? Jag tycker det kräver en himla koll som jag tänkte slippa genom att lägga till tabellnamnet framför alla fält.
PerSv: Access/asp - Objektet hittas inte i mängden
Sv: Access/asp - Objektet hittas inte i mängden
Jag chansade på en programsnutt <b>som inte funkade</b>:
<code>
For each field in rst
Response.Write field.name & "<br>"
Next
</code>
Finns det nåt motsvarande som fungerar?
PerSv: Access/asp - Objektet hittas inte i mängden
for a=0 to rst.fields.count -1
response.write rst.fields(a).name & "<br>"
next
</code>