SSannyWMedlem sedan jan. 2003438 inlägg Har fortfarande inte fått rätt på problemet, som jag har berättat tidigare försöker jag göra följande:
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Å
osv....
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."
SQL = "SELECT * FROM TEST WHERE (DATUM='"&datum&"' AND TID > ='"&tid&"') OR DATUM > ='"&datum&"' ORDER BY datum, tid"
Får följande medd.
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'.
Avslutar med att tacka alla som hittills har hjälpt mig.
EitrazMedlem sedan sep. 2002366 inläggHar inte läst alla inlägg helt ordentligt så du kanske svarat på det här..
Använder du Datum som typ på datum eller är de textsträngar?
Är det datum måste du använda # istället för ' i Access.
-Eitraz
SSannyWMedlem sedan jan. 2003438 inlägg Yes jag har datum som datum i Access och har precis ändrat det som du sa, tror jag.
SQL = "SELECT * FROM test WHERE DATUM = #" &datum& "# AND TID > =#" &tid& "# OR DATUM > =#" &datum& "# ORDER BY datum, tid"
Men får fortfarande följande fel:
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 > =#15:41:07# OR DATUM < =#2003-03-04#'.
EitrazMedlem sedan sep. 2002366 inlägg# runt tid är lite tveksamt om det ska finnas i det fallet. Är inte bäst på Access direkt..
Jag testade faktiskt koden med mySQL förut och det funkade.. (den jag postade först)
SSannyWMedlem sedan jan. 2003438 inlägg Nästan så att man får tårar i ögonen, skiten fungerar!!
Jag har ändrat så mycket att jag snurrat till det x(
Nu när jag gick tillbaka och använde din första kod och gjorde förändringarna enligt vad du sa med datum så blev det enligt följande:
[KOD]
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM tabellen 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
%>
Tack så mycket för ditt tålamod med mig och hjälpen du givit mig!
SSannyWMedlem sedan jan. 2003438 inlägg Tjena igen, upptäckte en liten sak bara. När jag flyttade fram datumen förbi sista posten i databasen så får jag ett fel:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
Vad kan detta bero på tror du?
EitrazMedlem sedan sep. 2002366 inläggHmm. Det var underligt, på felet låter det mer som att du har skrivit ett felaktigt datum (eller tid).
SSannyWMedlem sedan jan. 2003438 inlägg Kanske är access som spökar, inte vet jag. Men vad jag vet är att det inte finns fler rader i databasen.
EitrazMedlem sedan sep. 2002366 inläggDet fungerar även om det inte finns några rader kvar:
[b]If NOT RS.EOF Then[/b]
Do Until RS.EOF
Response.Write RS("datum") & ", " & RS("TID") & ", " & RS("Aktivitet") & "<br>"
RS.MoveNext
Loop
Else
Response.Write "Har inga planer."
End If
kollar ju om det är i "slutet"
SSannyWMedlem sedan jan. 2003438 inlägg Okey, en liten utveckling.
Inför aktiviteten fungerar allt perfekt alltså innan 8/3 15:00
Men om jag sätter klockan på 15:30 så kommer följande felmeddelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
Om jag istället sätter fram tiden till 9/3, så funkar det som det skall "Har inga planer."
Alltså måste felet bero på tiden, då återstår det bara varför? Hmm...
EitrazMedlem sedan sep. 2002366 inläggHmm. Har inget bra förslag nu alltså.. Känns ju som att det har med tidsformatet i Access (har testat o det funkar i mySQL) att göra (precis som du sa), men eftersom det fungerar Innan en viss tidpunkt är det lite underligt.
Har inget bra o komma med faktiskt :l
får testa lite..
SSannyWMedlem sedan jan. 2003438 inlägg Ja, ibland är det roligt. Tror det nämndes tidigare att man troligen inte behövde sätt # istället för ' vid tid. Vilket jag inte gjorde, därför fick jag fel meddelande.
Så nu följer fungerade kod både framåt och bakåt :)
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM tabellen 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
%>
:birp Det har varit en plåga att på lärovägens tunga väg vandra, tur jag hade min guide i mörkret. TACK Eitraz!!
EitrazMedlem sedan sep. 2002366 inläggHehe.. Äntligen får man väll säga :birp