webForumDet fria alternativet

Behöver lite hjälp här utan er experter:

ASPur ASP

26 svar · 857 visningar · startad av Megaman

Medlem sedan jan. 2004118 inlägg
Frågan#1

Jag har lite kod som ser ut så här vad den skall göra är att visa som senaste inloggade på ett forum men jag får ett fel meddelande och jag kan inte se vad som är fel på koden så därför vänder jag mig till er här!!!

<%
Dim MyCheck 'As Boolean
Dim intDay,intMonth,intYear 'As Integer
Dim dtmDate, dtmTempDate 'As datetime
  dtmDate = now()
  If strTimeOffSet = "+" Then
   dtmTempDate = DateAdd("h", + intTimeOffSet, dtmDate)
  ElseIf strTimeOffSet = "-" Then
   dtmTempDate = DateAdd("h", - intTimeOffSet, dtmDate)
  End If
  'Seprate the date into differnet strings
  intDay = CInt(Day(dtmTempDate))
  intMonth = CInt(Month(dtmTempDate))
  intYear = CInt(Year(dtmTempDate))
MyCheck = False
strSQL = "SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit "
strSQL = strSQL & ",DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit) AS FFGG "
strSQL = strSQL & "FROM tblAuthor "
strSQL = strSQL & "where day(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intDay & " and month(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intMonth & " and year(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intYear & " "
strSQL = strSQL & "ORDER BY FFGG DESC;"

rsCommon.Open strSQL, adoCon
Response.Write "<b>Det har loggat " & rsCommon.RecordCount & " medlemmar idag.</b><br><br>"
Response.Write "Medelemmar som har loggat in idag är:  "
Do Until rsCommon.eof
 If MyCheck = True then
  Response.Write ",  "
 Else
  MyCheck = True
 End If 
 Response.Write "<a class=""smlink"" href=""JavaScript:openWin('pop_up_profile.asp?PF=" & rsCommon("Author_ID") & "','profile','toolbar=0,location=0,status=0,menubar=0,scroll bars=1,resizable=1,width=590,height=425')"">"
 Response.Write rsCommon("Username") <- - -  På denna rad är det fel på
 Response.Write "</a>"
 rsCommon.MoveNext
Loop 
%>

Och felmedelandet jag får är följande:

Microsoft JET Database Engine fel '80040e10'

Det har inte angetts något värde för en eller flera nödvändiga parametrar.

Jag kan inte se vad som jag tydligen har missat...

MVH Megaman

Medlem sedan juni 200032 967 inlägg
#2

Jag skulle tro att de ställen du använt:

DateAdd(hh,

i din sql-fråga, ska vara:

DateAdd('h',

I övrigt, det stämmer nog inte att det är

Response.Write rsCommon("Username")

det är fel på. Jag sätter en tia på att det är denna rad som felmeddelandet pekar på:

rsCommon.Open strSQL, adoCon

mvh

Medlem sedan jan. 2004118 inlägg
#3

Jo det har jag förståt också men det är något knas där anropar detta tidigare i dokumentet och där funkar det men inte just här..

Och jag hittar inte vad felet är

Medlem sedan juni 200032 967 inlägg
#4

Vad är det för skillnad på koden som fungerar och den som inte fungerar då?

Felmeddelandet betyder egentligen "du har i din SQL-fråga använt ett tabell- eller fältnamn som inte finns", så det är i SQL-frågan felet ligger.

Medlem sedan jan. 2004118 inlägg
#5

Det är det som är det löjliga i det hela tabllen finns och heter: tblAuthor

Och fälten heter: Username, Author_ID, Group_ID och Last_visit,

Username = Andvändarnamnet
Author_ID = ID på andvändaren
Group_ID = vilken grupp den tillhör
Last_visit = Senaste besöket på sidan

Som du ser så finns tabellen och gruppen

Du ser inte så mycket här men detta är ett exempel på hur det har anropats tidihare i filen

Do While NOT rsCommon.EOF

'Place the moderators username into the string
strModeratorsList = strModeratorsList & " <a href=""members.asp?GID=" & rsCommon("Group_ID") & """ class=""smLink"">" & rsCommon("Username") & "</a>"
		
'Move to the next record
rsCommon.MoveNext

Måste säga att detta är inte mitt script utan det är en funktion som jag försöker att lägga in på ett gratis forum...

MVH Megaman

Medlem sedan juni 200032 967 inlägg
#6

Och det hände ingenting när du ändrade hh till 'h'?

Medlem sedan jan. 2004118 inlägg
#7

Nopp nada det blev ingen skillnad han klagade i alla fall inte på något utav varken

DateAdd(hh,
DateAdd('h',

Jag vet faktiskt inte vad jag skall göra, det får väl vila så länge tills att någon annan har en bra ide hur det skall lösas...

Inget ont mot dig @nders Jag är väldigt tacksam för att du har försökt att hjälpa mig!!!

Jag klarar mig ändå utan det men det vore en kul sak om det funkade!

Vad det är tänkt att den skall göra är att skriva ut andvändare som har varit inloggade varje dag

idag har 2 varit inloggade st
Andvändare som har varit inloggade idag är: Megaman, @nders, osv

plus att man kan klicka på personens namn och kolla på hans profil.

MVH Megaman

MVH Megaman

Medlem sedan dec. 19996 721 inlägg
#8

Skriv ut innehållet i strSQL så får vi se

Medlem sedan jan. 2004118 inlägg
#9

Nu är jag nog lite trög här var det detta du menade???

strSQL = "SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit "
strSQL = strSQL & ",DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit) AS FFGG "
strSQL = strSQL & "FROM tblAuthor "
strSQL = strSQL & "where day(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intDay & " and month(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intMonth & " and year(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intYear & " "
strSQL = strSQL & "ORDER BY FFGG DESC;"

MVH Megaman

Medlem sedan juni 200032 967 inlägg
#10

emission menar att du ska skriva ut strSQL till webbläsaren med response.write så man ser hur den färdiga SQL-frågan ser ut.

Edit: en sak som jag ser nu kan vara fel (också) är följande:

ORDER BY FFGG DESC

I Access kan man inte ange ett alias i order by, utan man ska ange ordningsnumret som tillhör det fält / värde man vill sortera på. I detta fall borde det alltså vara:

ORDER BY 5 DESC
Medlem sedan jan. 2004118 inlägg
#11

Detta fick jag ut när jag skrev ut strSQL:

SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit ,DateAdd(h, +0, tblAuthor.Last_visit); FROM tblAuthor where day(DateAdd(h, +0, tblAuthor.Last_visit)) = 28 and month(DateAdd(hh, +0, tblAuthor.Last_visit)) = 12 and year(DateAdd(hh, +0, tblAuthor.Last_visit)) = 2004 ORDER BY 5 DESC;

MVH Megaman

Medlem sedan juni 200032 967 inlägg
#12

Och när du bytt ut h och hh i dina DateAdd-kall i SQL-frågan, hur ser det ut då, och vad får du för felmeddelande då?

Medlem sedan jan. 2004118 inlägg
#13

Med bara ett enkelt h som du rekomenderar så ser det ut så här:

SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit ,DateAdd(h, +0, tblAuthor.Last_visit) AS FFGG FROM tblAuthor where day(DateAdd(h, +0, tblAuthor.Last_visit)) = 29 and month(DateAdd(hh, +0, tblAuthor.Last_visit)) = 12 and year(DateAdd(hh, +0, tblAuthor.Last_visit)) = 2004 ORDER BY FFGG DESC;

MVH Megaman...

Medlem sedan jan. 2004118 inlägg
#14

Med bara ett enkelt h som du rekomenderar så ser det ut så här:

Detta var med ORDER BY FFGG DESC

SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit ,DateAdd(h, +0, tblAuthor.Last_visit) AS FFGG FROM tblAuthor where day(DateAdd(h, +0, tblAuthor.Last_visit)) = 29 and month(DateAdd(hh, +0, tblAuthor.Last_visit)) = 12 and year(DateAdd(hh, +0, tblAuthor.Last_visit)) = 2004 ORDER BY FFGG DESC;

Och detta med ORDER BY 5 DESC

SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit ,DateAdd(h, +0, tblAuthor.Last_visit) AS 5 FROM tblAuthor where day(DateAdd(h, +0, tblAuthor.Last_visit)) = 29 and month(DateAdd(hh, +0, tblAuthor.Last_visit)) = 12 and year(DateAdd(hh, +0, tblAuthor.Last_visit)) = 2004 ORDER BY 5 DESC;

MVH Megaman......

Medlem sedan juni 200032 967 inlägg
#15
  1. det skall vara apostrofer runt h i alla dateadd-anrop, som jag skrev i mitt första inlägg. Inte dubbla h, inte enkla h för sig själv. Apostrofer.

  2. Som jag skrev i mitt andra inlägg, du kan inte ange ett alias i ORDER BY, utan måste ange ordningsnumret.

Är jag verkligen så otydlig?

Medlem sedan jan. 2004118 inlägg
#16

Nej det var du inte men jag testade bara några alternativ

Medlem sedan jan. 2004118 inlägg
#17

Nu med apostrofer runt alla dateadd

SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit ,DateAdd('h', +0, tblAuthor.Last_visit) AS 5 FROM tblAuthor where day(DateAdd('h', +0, tblAuthor.Last_visit)) = 29 and month(DateAdd(hh, +0, tblAuthor.Last_visit)) = 12 and year(DateAdd(hh, +0, tblAuthor.Last_visit)) = 2004 ORDER BY 5 DESC;

MVH Megaman

Medlem sedan juni 200032 967 inlägg
#18

Hur definierar du alla :q

Du har ju bara ändrat på två av fem ställen?

Edit: Det är bara i ORDER BY du inte kan ange alias. Du kan gott ta tillbaka aliaset FFGG i SELECT-delen.

Medlem sedan jan. 2004118 inlägg
#19

Dim MyCheck 'As Boolean
Dim intDay,intMonth,intYear 'As Integer
Dim dtmDate, dtmTempDate 'As datetime
dtmDate = now()
If strTimeOffSet = "+" Then
dtmTempDate = DateAdd('h', + intTimeOffSet, dtmDate) '<-- om jag ändrar här får jag fel mess

Kompileringsfel i Microsoft VBScript fel '800a03ea'

Syntaxfel

/idp/forum/default.asp, rad 792

dtmTempDate = DateAdd('h', + intTimeOffSet, dtmDate)
------------------------^

likadant på andra stället sedan så finns det bara fyra ställen med h i scriptet

  ElseIf strTimeOffSet = "-" Then
   dtmTempDate = DateAdd('h', - intTimeOffSet, dtmDate)
  End If
  'Seprate the date into differnet strings
  intDay = CInt(Day(dtmTempDate))
  intMonth = CInt(Month(dtmTempDate))
  intYear = CInt(Year(dtmTempDate))
MyCheck = False

rsCommon.Open strSQL, adoCon
strSQL = "SELECT tblAuthor.Username, tblAuthor.Author_ID, tblAuthor.Group_ID, tblAuthor.Last_visit "
strSQL = strSQL & ",DateAdd('h', " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit) AS 5 "
strSQL = strSQL & "FROM tblAuthor "
strSQL = strSQL & "where day(DateAdd('h', " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intDay & " and month(DateAdd(hh, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intMonth & " and year(DateAdd(h, " & strTimeOffSet & intTimeOffSet & ", tblAuthor.Last_visit)) = " & intYear & " "
strSQL = strSQL & "ORDER BY 5 DESC;"

Response.Write "<b>There have been " & rsCommon.RecordCount & " members that have logged in today.</b><br><br>"
Response.Write "Members that have logged in:  "
Do Until rsCommon.eof
 If MyCheck = True then
  Response.Write ",  "
 Else
  MyCheck = True
 End If 
 Response.Write "<a class=""smlink"" href=""JavaScript:openWin('pop_up_profile.asp?PF=" & rsCommon("Author_ID") & "','profile','toolbar=0,location=0,status=0,menubar=0,scroll bars=1,resizable=1,width=590,height=425')"">"
 Response.Write rsCommon("Username") 
 Response.Write "</a>"
 rsCommon.MoveNext
Loop
Medlem sedan jan. 2004118 inlägg
#20

Sorry du hade inte fel @nders det var 5 i den

137 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)