SannyWMedlem sedan jan. 2003438 inlägg Ny på if-satser därför behov av lite hjälp.
Databas med kolumnerna DATUM, TID, AKTIVITET
Är ute efter att hämta aktiviteten baserad på datum och tiden.
2003-03-06, 18:00, SIMMA
2003-03-07, 19:00, GÅ
Vill visa nästkommande aktivitet fram tills att den har passerat. Typ klockan är 17:00 6/3 vilket visar informationen SIMMA, men klockan 18:01 så skall informationen visa GÅ framtills nästa aktivitet eller tills att det inte finns någon akivitet och visa informationen typ "Har inga planer."
Någon som har lust att ge en hjälpande hand.
Tack på förhand.
EitrazMedlem sedan sep. 2002366 inlägg Ja, så här skulle det väll kunna bli eller nåt ;)
[1]
SQL = "SELECT * FROM databasen WHERE (DATUM='" & Date() & "' AND TID>'" & Time() & "') OR DATUM>'" & Date() & "' ORDER BY DATUM, TID"
Set RS = Connect.Execute(SQL)
If NOT RS.EOF Then
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("AKTIVITET") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
Set RS = Nothing
[/1]
Här är alltså DATUM och TID strängar.
Har säkert precis som vanlig när jag skriver nåt här krånglat till det ovanligt mycket :birp
-Eitraz
SannyWMedlem sedan jan. 2003438 inlägg Tack för svaret - Eitraz
Hmmm, får inte rätt på det.
Vore tacksam om du kunde förklara vad jag satt fel.
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/test.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM TEST WHERE (DATUM='" & Date() & "' AND TID>'" & Time() & "') OR DATUM>'" & Date() & "' ORDER BY DATUM, TID"
Set RS = Connect.Execute(SQL)
If NOT RS.EOF Then
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("AKTIVITET") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
Set RS = Nothing
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/test.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM TEST WHERE [b]([/b]DATUM='" & Date() & "' AND TID>'" & Time() & "') OR DATUM>'" & Date() & "' ORDER BY DATUM, TID"
Set RS = Connect.Execute(SQL)
If NOT RS.EOF Then
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("AKTIVITET") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
Set RS = Nothing
%>
hör den tjockmarkerade prantesen verkligen hemma där??? den ligger i select satsen, efter where o innan datum
får du inget felmedelande? har du stavat rätt på tabellnamn? stora och små bokstäver?
SQL = "SELECT * FROM TEST WHERE (DATUM='" & Date() & "' AND TID>'" & Time() & "') OR DATUM>'" & Date() & "' ORDER BY DATUM, TID"
borde väl ändå vara
SQL = "SELECT * FROM TEST WHERE DATUM='" & Date() & "' AND TID>'" & Time() & "' OR DATUM>'" & Date() & "' ORDER BY DATUM, TID"
föresten har du tabellnamnen i stora bokstäver i databasen?
SannyWMedlem sedan jan. 2003438 inlägg Jo, får följande fel:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/ubk/test/tid.asp, line 10
Tabellnamnet är rätt, men osäker på stora och små bokstäver. Skall titta.
SannyWMedlem sedan jan. 2003438 inlägg Hjälpte inte med stora och små bokstavsförändringar.
testa med:
SQL = "SELECT * FROM TEST WHERE (DATUM=" & Date() & " AND TID>" & Time() & ") OR DATUM>" & Date() & " ORDER BY DATUM, TID"
alternativt
SQL = "SELECT * FROM TEST WHERE DATUM=" & Date() & " AND TID>" & Time() & " OR DATUM>" & Date() & " ORDER BY DATUM, TID"
och berätta vad du får för medelande då
SannyWMedlem sedan jan. 2003438 inlägg Nu händer följande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'DATUM=2003-03-04 AND TID>01:16:44 OR DATUM>2003-03-04'.
SannyW skrev:
Nu händer följande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'DATUM=2003-03-04 AND TID>01:16:44 OR DATUM>2003-03-04'.
okej vilket andvände du? nummer 1 eller 2?
SannyWMedlem sedan jan. 2003438 inlägg Samma svar på båda.
När jag testar följande så fungerar sidan:
SQL = "SELECT * FROM test ORDER BY Datum, Tid"
Frågan som jag ställer mig eller anledningen måste väl vara Date () och Time () uttrycken?
solbulleMedlem sedan mars 20015 287 inlägg Är det inte så att DATUM är ett reserverat ord i svensk access? Och därmed måste klamras?
jag ska det en en sista försök inna det e dags o sova
datum = date
tid = time
SQL = "SELECT * FROM TEST WHERE (DATUM="&datum&" AND TID > ="&tid&") OR DATUM > ="&datum&" ORDER BY datum, tid"
SannyWMedlem sedan jan. 2003438 inlägg Vilket betyder? Utgå från att du pratar med en 5 åring så kommer jag nog att förstå. :q
velket betyder följande..
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/test.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
datum = date
tid = time
SQL = "SELECT * FROM TEST WHERE (DATUM="&datum&" AND TID > ="&tid&") OR DATUM > ="&datum&" ORDER BY datum, tid"
Set RS = Connect.Execute(SQL)
If NOT RS.EOF Then
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("AKTIVITET") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
Set RS = Nothing
%>
kan fungera, jag e svintrött just nu, har skolaimorn också o skulle vart i sängs för länge sen :P
SannyWMedlem sedan jan. 2003438 inlägg Okey, skall testa det sista du skickade. Tack för hjälpen och sov gott!
om inte den fungerar så kan det hända aatt denna fungerar.. annars får du vänta tills dem riktiga guruna vaknar imorn o kan hjälpa dej!
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/test.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
datum = date
tid = time
SQL = "SELECT * FROM TEST WHERE (DATUM='"&datum&"' AND TID > ='"&tid&"') OR DATUM > ='"&datum&"' ORDER BY datum, tid"
Set RS = Connect.Execute(SQL)
If NOT RS.EOF Then
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("AKTIVITET") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
Set RS = Nothing
%>
jag väntar på ett besked om inget av dem fungerar sover jag, om det fungerar sover jag iaf.. vill bara veta om det gick eller inte :P
SannyWMedlem sedan jan. 2003438 inlägg Nope, det funkar inte.
Jag får vända och vrida på det lite till. Sen lägger jag det åtsidan för idag.
Tack än en gång för alla hjälp.
okej... strange.. men men, kolla igenom denna sida om du ska fnula lite..
http://www.ultimateasp.com/tutorial/sql.asp
och här har du reserverade ord i SQL
http://www.jsoftware.com/books/help/user/sql_reserved_words.htm