Avatar billede cyberkox Nybegynder
28. september 2006 - 16:32 Der 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?
Avatar billede ilflue Nybegynder
28. september 2006 - 16:44 #1
Ø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
Avatar billede cyberkox Nybegynder
28. september 2006 - 16:52 #2
Det er et Long Integer, men det er måske det samme som nummeric?
Avatar billede ilflue Nybegynder
28. september 2006 - 17:20 #3
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") = 0 then
Avatar billede a1a1 Novice
28. september 2006 - 17:36 #4
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
Avatar billede ilflue Nybegynder
28. september 2006 - 17:46 #5
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
Avatar billede cyberkox Nybegynder
28. september 2006 - 21:50 #6
Aha, tak for hjælpen.

Smid et svar begge to, så deler i!
Avatar billede ilflue Nybegynder
28. september 2006 - 23:05 #7
Her :)
Avatar billede cyberkox Nybegynder
28. september 2006 - 23:30 #8
Hmm ;-)
Avatar billede ilflue Nybegynder
29. september 2006 - 00:18 #9
Ups :D
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester