23. oktober 2001 - 03:44 
												Der er
									13  kommentarer													og 					3  løsninger									 
									
		 
		
			
Select top 1 
			Hej. Jeg har en tabel (tbl_nyhed) med et autonummereringsfelt kaldet (herognuid). Hvordan kan jeg nu vælge den nyeste herognuid? Jeg har prøvet med følgende: StrSQL = \"SELECT TOP 1 * FROM tbl_nyhed ORDER BY herognuid Desc\" Men den skriver fejl i linien hvor der står : set rst = con.execute(StrSQL) Hvad gør jeg forkert?
					
		
	 
                            
Annonceindlæg fra Conscia 
 
 
	
		
								
					
				23. oktober 2001 - 06:08  
				#1 
						
		 
		
			Hvilken database bruger du ? Access/MS SQL så kan jeg ingen fejl se, men hvis du bruger MySQL skal du bruge LIMIT strSQL = \"SELECT * FROM tbl_nyhed ORDER BY herognuid DESC LIMIT 0,1\" Start at record 0, return 1.
		
		
	 
	
		
								
					
				23. oktober 2001 - 08:07  
				#2 
						
		 
		
			Hvad er fejlen?
		
		
	 
	
		
								
					
				23. oktober 2001 - 08:33  
				#3 
						
		 
		
			Hvilket format har herognuid ?? (Auoformat?? tal?? notat?? tekst??)
		
		
	 
	
		
								
					
				23. oktober 2001 - 08:34  
				#4 
						
		 
		
			Hmm... Hvorfor skriver jeg Auoformat.. Jeg mente autonummering
		
		
	 
	
		
								
					
				23. oktober 2001 - 08:36  
				#5 
						
		 
		
			a-torsten, fjern lige søvnen fra øjnene *griner* \"med et autonummereringsfelt kaldet (herognuid).\" tjae .. et hurtigt slag på tasken .. et skud i tågen .. et wild guess .. måske et Auto Number felt ? *gg*
		
		
	 
	
	
	
		
								
					
				23. oktober 2001 - 09:06  
				#6 
						
		 
		
			Du kan evt. prøve følgende for at få den højeste herognuid, og den højeste vil vel være den nyeste i dit autonummereringsfelt. SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)
		
		
	 
	
		
								
					
				23. oktober 2001 - 10:21  
				#7 
						
		 
		
			Detta fungerar för mig!! strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\"
		
		
	 
	
		
								
					
				23. oktober 2001 - 11:55  
				#8 
						
		 
		
			Jeg prøver lige
		
		
	 
	
		
								
					
				23. oktober 2001 - 11:59  
				#9 
						
		 
		
			Der står følgende : <%  Dim con, rst, strSQL Set con = Server.CreateObject(\"ADODB.Connection\") Set rst = Server.CreateObject(\"ADODB.Recordset\") con.Open \"PROVIDER=MSDASQL;\" & _  \"DRIVER={Microsoft Access Driver (*.mdb)};\" & _  \"DBQ=\" & Server.MapPath(\"/database/herognu.mdb\") & \";\" & _  \"DefaultDir=\" & Server.MapPath(\".\") & \";\" & _  \"DriverId=25;\" & _  \"FIL=MS Access;\" & _  \"MaxBufferSize=512;\" & _  \"PageTimeout=5;\" strSQL= \"SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)\"  set rst = con.execute (strSQL) %> Og den siger at der er fejl i \"set rst = con.execute (strSQL)\" too few parameters, siger den....
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:08  
				#10 
						
		 
		
			ok...vad som menas är att den vill ha mer information, d.v.s attdet saknas något för att köra SQL satsen. Byt ut : strSQL= \"SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)\"  mot: strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\" så får vi se om det fungerar!!
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:12  
				#11 
						
		 
		
			Desværre, criller.. den skriver :  Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'  [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.  
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:13  
				#12 
						
		 
		
			og så skriver den linien hvor der står \"set rst = con.execute (strSQL)\" 
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:17  
				#13 
						
		 
		
			är du säker på att du stavat alla tabeller och fält helt rätt??? dubbelkolla detta.. det kan vara så enkelt att du missat ett mellanslag eller något.! du kan också pröva med att ta bort \"DESC;\" då blir SQL satsen: strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid\" 
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:25  
				#14 
						
		 
		
			Skriver det samme... 
		
		
	 
	
		
								
					
				23. oktober 2001 - 12:29  
				#15 
						
		 
		
			ok..då fortsätter vi felsökningen skriv bara: strSQL=\"select top 1 * from tbl_nyhed\" vad händer då??
		
		
	 
	
		
								
					
				23. oktober 2001 - 19:11  
				#16 
						
		 
		
			Så lykkedes det endelig. Jeg fandt ud af at jeg havde angivet et tabelnavn forkert, og ændret i nogle andre settings for at det kom til at virke. Resultatet: strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\"  set rst = con.execute (strSQL) %> <a href=\"html/herognu/herognu.asp?kode=<%=rst(\"herognuid\")%>\"><%=left(rst(\"nyhed\"),22) & \"...\" %></a> - point til alle. mvh Fastwrite
		
		
	 
	
		
	
		
		
		
			
			Kurser inden for grundlæggende programmering