Just nu i M3-nätverket
Jump to content

ERROR


Morpheus

Recommended Posts

Använder SQL-satsen WHERE. Alltså:

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("users.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM Test WHERE Faltet=4"

om det inte faltet är 4 någongång, så blir det ERROR. Vad gör jag?

[inlägget ändrat 2002-10-01 19:38:02 av Morpheus]

Link to comment
Share on other sites

Kör du en do until rs.eof?

 

Isåfall om ditt rs är tomt så får du ett felmeddelande. Testa isåfall följande:

 

if not rs.eof then

do until rs.eof

...

rs.movenext

loop

else

response.write "RS är tomt"

end if

 

Om det är något annat problem så skriv gärna ut felmeddelandet du får så är det lättare att hjälpa.

 

/Niklas

 

Link to comment
Share on other sites

Jag ändrade lite och gjorde följande sats:

Visa = "SELECT TOP 5 * FROM Test WHERE Medlem='arne' ORDER BY DATUM DESC"

 

Då blev felet:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.

 

Jag har en databas med:

| arne | 2002-02-03 21:35:25 |

| arne | 2002-08-06 15:10:19 |

| lisa | 2001-04-09 12:00:05 |

 

Jag vill lista de 5 senaste Arne. Om det bara är 4 skall de 4 senaste Arne visas. Är det ingen Arne skall inget hända.

 

Link to comment
Share on other sites

Ser ju rätt ut, det enda jag kommer på är att du kanske skrivit fel, att fältet Medlem inte är det fältet som innehåller namnen utan ett räknarfält eller nåt? För felmeddelandet tyder på att du exempelvis försöker jämföra ett numeriskt fält med en sträng. Vad är det för typ på fältet Medlem?

 

/Niklas

 

 

Link to comment
Share on other sites

Du har rätt - Medlem är ett numeriskt värde det glömde jag säga. Det är ingen räknare - använder datatypen Long.

 

Link to comment
Share on other sites

Okej, då är det något annat fält som innehåller "arne" och "lisa". Ändra till det fältet i WHERE-delen.

 

/Niklas

 

 

Link to comment
Share on other sites

Ursäkta; jag har varit lite otydlig. Jag använde Arne och Lisa för att ni skulle förstå vad jag menade lättare - men det är egentligen siffror. Så här ser HELA koden ut, som inte funkar:

 

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("users.mdb")&";"
Visa = "SELECT TOP 5 * FROM Test WHERE Medlem='58' ORDER BY Datum DESC"
Set RecSet = Connect.Execute(Visa)
Do Until RecSet.EOF
%><%=RecSet("Namn")%>: <%=RecSet("Datum")%><%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing

Felmeddelandet blir på raden med Set RecSet = Connect.Execute(Visa)

 

 

Medlem - nummer, man kan kalla det ID, men det är ingen räknare

 

Datum - datum

 

Namn - ett namn

 

Alla databaser där Medlem är 58 skall räknas med.

Det 5 senaste skall sorteras efter datum.

 

Tack för all hjälp!!!

 

[inlägget ändrat 2002-10-01 21:31:45 av Morpheus]

Link to comment
Share on other sites

Men dåså. Då är det bara att plocka bort fnuttarna:

 

SELECT TOP 5 * FROM Test WHERE Medlem=58 ORDER BY Datum DESC

 

/Niklas

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...