28. september 2006 - 16:32Der er
8 kommentarer og 1 løsning
Tomt tal-felt i access
Hey
Jeg står med et lille problem. Jeg ha en tabel i en access-db, hvor en kolonne hedder: umenuid. Det kan indeholde et tal eller være tomt! Det virker fint nok. Men nu vil jeg lave følgende forespørgsel:
set rs = conn.execute("SELECT * from menu where menuid = "&Request.QueryString("menuid"))
if rs("umenuid") = "" then tomt felt else ikke tomt end if
Hvorfor virker det ikke? Den siger at alle rækker indeholder "noget", selvom flere af dem er helt tomme?
Øhh. Ud fra din kode ser det ud til at det er et nummeric felt i DBen. Så vidt jeg lige husker, så vil et Nummeric felt altid indeholde værdien 0, hvis ikke andet er angivet.
Så det skulle nok mere være if rs("umenuid") > 0 then
Eller også kan du lave feltet til et tekst felt, og bruge CLng() ... Så vil ="" virke fint
Ja det er et nummeric felt. Det vil sige at den selv laver en standard værdi på 0. Og når feltet indeholder 0, er det ikke tomt.
Så enten skal du have et Text felt som du så selv laver om til nummeric med Int() eller CLng() når de skal bruges i scriptet, eller lave betingelsen om til
if rs("umenuid") = "" then tomt felt else ikke tomt end if
skal være:
if isnull(rs("umenuid")) then tomt felt else ikke tomt end if
man kan godt have NULL værdier i talfelter (på mssql i hvertfald), men det er "bedst" at sætte 0 som default værdi og så checke if rs("umenuid") = 0 then tomt felt else ikke tomt end if
Sandt nok. Har lige testet. Der skal bruges if rs("umenuid") = 0 then, eller if isnull(rs("umenuid")) then ...
Hvis du skal bruge "" metoden, skal det være omvendt rs("umenuid") <> "", det vil også virke. Da tjekker den bare om der er noget, istedet for om der ikke er noget
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.