16. januar 2002 - 13:16Der er
13 kommentarer og 3 løsninger
Finde det laveste ledige nummer
Hejsa :)
Jeg har lavet et login system, der går på at administratoren i en virksomhed opretter brugere med et 4-cifret idnummer. F.eks. kan han oprette en bruger med ID \"0001\" og en bruger med \"7616\".
Disse data bliver så lagret i en database og lagt sammen med virksomhedens id som f.eks. kunne være \"100250\" dvs.
Bruger1 ID: 1002500001 Bruger2 ID: 1002507616
Nu skal adminstratoren så oprette endnu en bruger. Og for at undgå at han skal huske de andre brugeres 4-cifrede ID - skal jeg have lavet en funktion(knap) der ved klik, automatisk skriver det første ledige 4-cifrede ID i input feltet, dvs. i dette tilfælde skal den skrive \"0002\" når jeg klikker på knappen.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
nej det er ikke en autonummering. administratoren skal selv bestemme deres id. f.eks. kan der være en bruger der insisterer (hvis det er ledigt) på at få et id der er let at huske, f.eks. 9999.
Det er desværre ikke muligt, da man skal logge sig ind med f.eks. 1002500001 :/
Er det ikke muligt på en måde at lave en Right(*,4) og så gå videre derfra? Kunne forestille mig den så kunne loope igennem kolonnen (+1) indtil den ikke finder en record - hvilket vil sige det nummer er ledigt?
dvs. hele 3 sql sætningen til det? først select min(brugerid) - så den nye sql der tjekker om NytBRugerID findes...og så den sidste oprettelses-SQL? wow...prøver lige
sone, bliver lidt for meget arbejde for jeg har mange sider hvor det 10-cifrede id bliver brugt i en Session - alle de sider skal jeg så til at udskifte adskillelses kode på :/
strFirma = \"10025\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & \"data.mdb\" Set RS = Conn.Execute(\"SELECT Right(Nummer, 5) FROM test WHERE Left(Nummer, 5) = \'\" & strFirma & \"\' order by Right(Nummer, 5)\") \' Vis listen \' Do While Not RS.EOF \' Response.Write(\"Nr:\" & RS(0) & \"<br>\") \' RS.MoveNext \' Loop
intCnt = 1 RS.MoveFirst Do While Not RS.EOF and (CInt(RS(0)) = intCnt) intCnt = intCnt + 1 RS.MoveNext Loop
Response.Write(\"Nyt: \" & CStr(intCnt))
intCnt indeholder herefter det næste ledige nummer for det firma. De foranstillede nuller skal blot tilføjes. Hvis du skal bruge koden i flere ASP-filer kan du jo lave en funktion og includere den.
Har mere eller mindre opgivet funktionen, så jeg fordeler pointene ligeligt mellem de 3 der kom med svarforslag :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.