webForumDet fria alternativet
Logga in / Bli medlem

Item cannot be found

Databaser & SQL

5 svar · 204 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1
"SELECT * FROM (tblPosts INNER JOIN tblUsers ON tblUsers.UserID = tblPosts.UserID) INNER JOIN tblTopics ON tblTopics.TopicID = tblPosts.TopicID ORDER BY LastPost DESC"
Set rsTopics = objConn.Execute(strSQL)

Så långt fungerar det, men när jag sedan ska hämta TopicID enligt följande:

intTopicID = rsTopics("TopicID")

Så säger browsern:

Item cannot be found in the collection corresponding to the requested name or ordinal.

Medlem sedan apr. 20012 427 inlägg
#2

Jag kom på att jag måste specificera tabell:

intTopicID = rsTopics("tblPosts.TopicID")

Men nu reagerar den på samma sätt på denna rad:

strUserName = rsTopics("UserName")

Medlem sedan dec. 19998 577 inlägg
#3

Har du testat samma metod på den? Att sätta tabellnamnet menar jag...

Medlem sedan apr. 20012 427 inlägg
#4

Ja, jag testade även med "tblUsers.UserName", men det hjälpte inte. Är det kanske så att "UserName" inte hämtas från "tblUsers" med ovanstående SQL-sats? Men det vore konstigt eftersom den är inner joinad och jag har valt allt (*).

Medlem sedan dec. 200012 464 inlägg
#5

Det ser skumt ut. Att ange tabellenamnet brukar inte vara någon hjälp.

Vilka kolumner får du upp om du kör din fråga direkt i Access?

Om du skriver frågan så här

SELECT * 
FROM tblPosts,tblUsers,tblTopics
where  tblUsers.UserID = tblPosts.UserID
and tblTopics.TopicID = tblPosts.TopicID 
ORDER BY LastPost DESC

blir det någon skillnad ?

red: litet förtydligande

Medlem sedan apr. 20012 427 inlägg
#6

Det fungerade! Jag ska nog inte ge mig in på INNER JOIN förrän jag behärskar det bättre. :)

254 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)