webForumDet fria alternativet

hjälp med ett script, torde inte vara svårt

ASP

9 svar · 184 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Frågan#1

Jag har ett fält, text fält, som heter Kundnr, jag vill ha en kod som letar upp värdet som har ett "W" i sig som första tal och en siffror efter, tex. w98, och sedan ta detta tal och addera till ett, så det blir w99.

Och sedan en kod som gör denna lika med kun.

Alltså "Kod" = kun

------------------
His Divine Shadow is the most despicable being ever created, short and to the point.

http://forums.planetdivine-shadow.com

Sprit löser inga problem. Men det gör inte mjölk heller.

Medlem sedan juni 20019 024 inlägg
#2

För att hämta ur databasen:

SQL = "SELECT * FROM Artiklar WHERE LEFT(Kundnr, 1) = 'W'"

Något sådant här för att öka på användarnumret med 1:

Function increaseKun(kun)
kundNummer = Mid(kun, 2)
bokstav = cInt(Left(kun, 1))
increaseKun = bokstav & (kundNummer + 1)
End Function

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 03 okt 2001]

Medlem sedan sep. 20004 079 inlägg
#3

Hmm. funkade inte riktigt här är koden som används nu, den funkar inte riktigt....

Den börjar klaga på att det skulle skapa en likadan post och det så går inte då inga dubletter är tillåtna

	    SQL="SELECT Kundnr FROM Kund Where Kundnr LIKE 'W%'"
    set rs = Conn.Execute(sql)
	   Tal=0
	    While Not RS.EOF
	      Tal=Cint(Mid(RS("kundnr"),2,10))
	      RS.MoveNext
   If Not RS.EOF Then
	       If Tal < Cint(Trim(Mid(RS("Kundnr"),2,10))) Then
	         Tal=RS("Kundnr")
			kun="W" & Mid(tal,2,len(tal)-1)+1
		End If
		End if 
	    Wend 
	End If

------------------
His Divine Shadow is the most despicable being ever created, short and to the point.

http://forums.planetdivine-shadow.com

Sprit löser inga problem. Men det gör inte mjölk heller.

[Redigerat av His Divine Shadow den 04 okt 2001]

[Redigerat av His Divine Shadow den 04 okt 2001]

Medlem sedan sep. 20004 079 inlägg
#4

hjälp? detta är väldigt viktigt att jag får det att funka, all hjälp uppskattas verkligen.

------------------
His Divine Shadow is the most despicable being ever created, short and to the point.

http://forums.planetdivine-shadow.com

Sprit löser inga problem. Men det gör inte mjölk heller.

Medlem sedan sep. 20004 079 inlägg
#5

Har kommit lite närmare men fortfarande inget.

Scriptet som inte gör som det ska:

	If IsEmpty(Session("user")) then 
  If kundnr <= w10 then
  SQL="SELECT MAX(Kundnr) FROM Kund Where Kundnr LIKE 'W%'"
	    set rs = Conn.Execute(sql)
	    If RS.EOF OR IsNull(RS(0)) Then
	    kun="W1"
	    Else
	   kun=CStr(rs(0))
   kun="W" & Mid(kun,2,len(kun)-1)+1
		
		End if

Jag tror att det generar fel nummer här, senaste W** nummret är W126 så det borde ju generera w127 men det gör visst inte det :l

EDIT: Genom lite testning fick jag reda på att scriptet genererar W100, det ska det inte.
Fattar fortfarande inte helt hur scriptet funkar för att jag ska kunna fixa det.

anybody plz help?

------------------
His Divine Shadow is the most despicable being ever created, short and to the point.

http://forums.planetdivine-shadow.com

Sprit löser inga problem. Men det gör inte mjölk heller.

[Redigerat av His Divine Shadow den 04 okt 2001]

Medlem sedan juni 20019 024 inlägg
#6

Hmmmm, kan du förklara en gång till, jag tror inte riktigt jag är med där!

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan dec. 200012 464 inlägg
#7
SQL="SELECT MAX(cint(mid(Kundnr,2))) FROM Kund Where Kundnr LIKE 'W%'"
set rs = Conn.Execute(sql)
If RS.EOF OR IsNull(RS(0)) Then
kun="W1"
Else
kun=Cint(rs(0)) + 1
kun="W" & kun
End if

Om man jämför strängar så är W99 > W126

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 20004 079 inlägg
#8

LarsG, ditt script genererar strängen "W1100" inte "W127".
Problemet kan ju vara att vänster ordningen, "W99" är ju högre än "W127" eller "W200"...
Kan man göra så att man tar alla "W" nummer och sedan tar bort W'et när scriptet letar efter den högsta siffran?
Eller finns det nån lösning alls på detta?

------------------
His Divine Shadow is the most despicable being ever created, short and to the point.

http://forums.planetdivine-shadow.com

Sprit löser inga problem. Men det gör inte mjölk heller.

Medlem sedan dec. 200012 464 inlägg
#9

Ok, vad får du för resultat om du kör dennna sql-fråga separat?

SELECT MAX(cint(mid(Kundnr,2))) FROM Kund Where Kundnr LIKE 'W[0-9]%'

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 20004 079 inlägg
#10

EDIT:
Jag bytte ut den gamla SQL satsen och gjorde ett test.
Nu funkar det, thank you very much ;)

[Redigerat av His Divine Shadow den 05 okt 2001]

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)