13. december 2004 - 14:32
Der er
21 kommentarer og 1 løsning
select top 3
Hvad er der lige galt her? Jeg får ingen fejl, men til gengæld trækker den heller ikke noget ud af min databasen - selvom den burde! Set Conn = Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "d:\home\region21.net\database\nyheder.mdb" SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk=1 ORDER BY nyhed.dato DESC , nyhed.ID DESC;" Conn.Execute (SQLstmt) Set rs = conn.Execute(SQLstmt)
Annonceindlæg tema
13. december 2004 - 14:36
#1
du har en Conn.Execute (SQLstmt) for meget... ved ikke om det kan være det ... prøv: SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk=1 ORDER BY nyhed.dato, nyhed.ID DESC;" Set rs = conn.Execute(SQLstmt)
13. december 2004 - 14:36
#2
fjernede lige det ene DESC dem var der nemlig også 2 af :)
13. december 2004 - 14:41
#3
Hjalp ikke :(
13. december 2004 - 14:41
#4
WHERE dansk='1' :)
13. december 2004 - 14:42
#5
hvordan ser det ud der hvor du udskriver dine data ?
13. december 2004 - 14:44
#6
legende.dk> Det virkede heller ikke. tjaz> her er hele min kode: Set Conn = Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "d:\home\region21.net\database\nyheder.mdb" SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk=1 ORDER BY nyhed.dato DESC, nyhed.ID DESC;" Conn.Execute (SQLstmt) Set rs = conn.Execute(SQLstmt) DO WHILE NOT rs.EOF overskrift = rs("overskrift") manchet = Replace(rs("manchet"), vbcrlf, "<BR>" & vbcrlf) dato = rs("dato") id = rs("id") %> <A HREF="nyhed.asp?id=<%=id%>"><B><%=overskrift%></B></A><BR> <FONT SIZE="1" COLOR="#999999"><%=dato%></FONT><BR> <%=manchet%><BR> <BR> <% rs.MoveNext LOOP RS.Close Conn.Close
13. december 2004 - 14:45
#7
"SELECT TOP 3 Tabel1.nr, Tabel1.felt1, Tabel1.tid FROM Tabel1 ORDER BY Tabel1.nr DESC" Denne bruger jeg i en ren Access database. M.h.t. internettet er jeg helt blank.
13. december 2004 - 14:45
#8
Nogen gange skriver du conn med lille og andre gange med stort C. Det er et problem.
13. december 2004 - 14:47
#9
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open "d:\home\region21.net\database\nyheder.mdb" SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk='1' ORDER BY nyhed.dato DESC, nyhed.ID DESC;" Set rs = Conn.Execute(SQLstmt) DO WHILE NOT rs.EOF overskrift = rs("overskrift") manchet = Replace(rs("manchet"), vbcrlf, "<BR>" & vbcrlf) dato = rs("dato") id = rs("id") %> <A HREF="nyhed.asp?id=<%=id%>"><B><%=overskrift%></B></A><BR> <FONT SIZE="1" COLOR="#999999"><%=dato%></FONT><BR> <%=manchet%><BR> <BR> <% rs.MoveNext LOOP RS.Close Conn.Close
13. december 2004 - 14:49
#10
legende.dk> hvis jeg sætter din kode ind, så får jeg "Data type mismatch in criteria expression."
13. december 2004 - 14:50
#11
hmm, så skal de '' måske ikke være der i access. Men din conn/Conn skal være den samme :)
13. december 2004 - 14:51
#12
Hvis det drejer sig om et numerisk felt, skal der i Access ikke være '' omkring kriteriet.
13. december 2004 - 14:52
#13
Det meget mærkelige er at min kode HAR virket - da jeg benyttede en anden sti til db'én (vha. mappath) - men denne understøttes ikke længere af webhotellet! Jeg fatter ikke hvad der er gået galt?
13. december 2004 - 14:52
#14
mugs> det er et sandt/falsk felt (1 elle 0)!
13. december 2004 - 14:53
#15
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open "d:\home\region21.net\database\nyheder.mdb" SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk='1' ORDER BY nyhed.dato, nyhed.ID DESC" Set rs = Conn.Execute(SQLstmt) Do overskrift = rs("overskrift") manchet = Replace(rs("manchet"), vbcrlf, "<BR>" & vbcrlf) dato = rs("dato") id = rs("id") %> <A HREF="nyhed.asp?id=<%=id%>"><B><%=overskrift%></B></A><BR> <FONT SIZE="1" COLOR="#999999"><%=dato%></FONT><BR> <%=manchet%><BR> <BR> <% rs.MoveNext Loop While Not rs.EOF RS.Close Conn.Close %>
13. december 2004 - 14:53
#16
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open "d:\home\region21.net\database\nyheder.mdb" SQLstmt = "SELECT TOP 3 * FROM nyhed WHERE dansk = True ORDER BY nyhed.dato, nyhed.ID DESC" Set rs = Conn.Execute(SQLstmt) Do overskrift = rs("overskrift") manchet = Replace(rs("manchet"), vbcrlf, "<BR>" & vbcrlf) dato = rs("dato") id = rs("id") %> <A HREF="nyhed.asp?id=<%=id%>"><B><%=overskrift%></B></A><BR> <FONT SIZE="1" COLOR="#999999"><%=dato%></FONT><BR> <%=manchet%><BR> <BR> <% rs.MoveNext Loop While Not rs.EOF RS.Close Conn.Close %>
13. december 2004 - 14:55
#17
Sand / falsk = Numerisk
13. december 2004 - 14:58
#18
så er det så bare den første af de 2 jeg sendte han skal bruge
13. december 2004 - 14:58
#19
tjaz> jeg skulle bare ændre dansk=1 til dansk=true i min oprindelige kode! Me hvorfor HAR min kode virket indtil for en uge siden ??? Meget underligt!
13. december 2004 - 15:02
#20
Godt spørgsmål ... for hvis det hele tiden har været en sandt/falsk skal du bruge True/False og så kan jeg slet ikke forstå at den har virket i første omgang, medmindre at du har lavet den om til Sandt/Falsk fra Numerisk 0/1
13. december 2004 - 15:05
#21
Jeg har ikke lavet noget om - men måske er der andre der har haft deres fedtede fingre i min kode. Under alle omstændigheder virker det nu - så tak for hjælpen!
13. december 2004 - 15:07
#22
np :)
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser