/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
SQL
Fra : Flemming Jensen


Dato : 27-11-02 20:48

Hejsa

Jeg er løbet ind i et problem med min SQL sætning, tror jeg. Starter lige
med noget kode:

strSQL = "SELECT * FROM Annoncer INNER JOIN Brugere ON
Annoncer.BrugernavnID=Brugere.BrugerID WHERE Dyrerubrik = '"&strValgtDyr&"'
AND Underrubrik = '"&strValgtRubrik&"' ORDER BY Dato Desc"
SET rs = Conn.Execute(strSQL)

Jeg kører så posterne igennem med:

DO WHILE NOT rs.EOF

Skriver posten

rs.MoveNext
LOOP

Mit problem er, at jeg skal have telefonnr og mobilnr som står i brugere
tabellen kædet sammen med posterne som er i Annoncer tabellen. Med følgende
kode kan jeg godt udskrive telefonnr og mobilnr ved følgende:

Response.Write(rs("Telefonnr"))
Response.Write(rs("Mobilnr"))

Men det er sådan, at folk ikke behøver at opgive hverken telefonnr eller
mobilnr. Deri ligger også muligheden for at en bruger _kun_ opgiver
telefonnr og omvendt. Der altså flere muligheder, hvor posterne nemlig
skrives forskelligt alt efter hvad brugeren har tilføjet af telefonnr eller
mobilnr.

Mit problem går på, at jeg ikke kan gøre følgende:

IF rs("Telefonnr") = "" AND rs("Mobilnr") = "" THEN
Response.Write("Telefonnr. ikke opgivet")
ELSE
de forskellige muligheder...
END IF

Selvom jeg har et par poster hvor begge felter Telefonnr og Mobilnr er tomme
skriver den det ikke.

Håber jeg har forklaret mit problem ordentligt, selvom det er gået lidt
hurtigt, ellers må jeg forklare mig lidt bedre.

1000-tak

--
Flemming Jensen



 
 
Peter Lykkegaard (27-11-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 27-11-02 21:02

Som svar på skriblerier forfattet af Flemming Jensen

> Mit problem går på, at jeg ikke kan gøre følgende:
>
> IF rs("Telefonnr") = "" AND rs("Mobilnr") = "" THEN

Prøv den her
IF rs("Telefonnr") & "" = "" AND rs("Mobilnr") & "" = "" THEN

Eller bedre
IF Len(rs("Telefonnr") & "") = 0 AND Len(rs("Mobilnr") & "") = 0 THEN

Jeg vil gætte på at du har nogle null values i dine kolonner?

mvh/Peter Lykkegaard






Flemming Jensen (27-11-2002)
Kommentar
Fra : Flemming Jensen


Dato : 27-11-02 21:44

Peter Lykkegaard skrev:

> Prøv den her
> IF rs("Telefonnr") & "" = "" AND rs("Mobilnr") & "" = "" THEN

> Eller bedre
> IF Len(rs("Telefonnr") & "") = 0 AND Len(rs("Mobilnr") & "") = 0 THEN

Tænkte også på den med Len og prøvede det også, men ikke sådan der, så det
vil jeg lige gøre :)

> Jeg vil gætte på at du har nogle null values i dine kolonner?

Nope, det er tekst felter faktisk, anden en speciel grund, men de er bare
tomme.

--
Flemming Jensen



Flemming Jensen (27-11-2002)
Kommentar
Fra : Flemming Jensen


Dato : 27-11-02 21:48

Peter Lykkegaard skrev:

> IF Len(rs("Telefonnr") & "") = 0 AND Len(rs("Mobilnr") & "") = 0 THEN

Virker da. Tak for det =)

Men hvorfor er det i grunden, at jeg ikke kan gøre følgende:

IF rs("Telefonnr") = "" AND rs("Mobilnr") = "" THEN

--
Flemming Jensen



Peter Lykkegaard (27-11-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 27-11-02 21:53

Som svar på skriblerier forfattet af Flemming Jensen

> Men hvorfor er det i grunden, at jeg ikke kan gøre følgende:
> IF rs("Telefonnr") = "" AND rs("Mobilnr") = "" THEN

I din database kan du tillade Null som "værdi" i dine tekstfelter
Null er ikke det samme som 0

Null betyder at der ikke er taget stilling til indholdet i feltet

(Null = "") = False

IsNull(Null) = True
(Null Is Null) = True
(Null & "" = "") = True
(Len(Null & "") = 0) = True

(Len(Null) = 0) = Error: Type Mismatch

Kører du med en Access database
Hvis du kikker i table design så har du en property der hedder Required, den
er sikkert sat til No
Required er fjerde property fra bunden, kan ikke huske hvad den hedder på
dansk

mvh/Peter Lykkegaard



Jens Gyldenkærne Cla~ (27-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-11-02 23:29

Peter Lykkegaard skrev:

> Kører du med en Access database
> Hvis du kikker i table design så har du en property der hedder
> Required, den er sikkert sat til No
> Required er fjerde property fra bunden, kan ikke huske hvad
> den hedder på dansk

Obligatorisk. I samme vindue er der (ved tekstfelter) den let
misforståelige egenskab TilladNullængde - der _ikke_ har noget med
null-værdier at gøre men afgør om et felt tillader værdien "" (den
tomme streng).

Mange problemer ville være væk hvis ordene null og nul ikke var så
tæt på hinanden i dansk sprog.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (27-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-11-02 23:36

Flemming Jensen skrev:

>> Jeg vil gætte på at du har nogle null values i dine kolonner?
>
> Nope, det er tekst felter faktisk, anden en speciel grund, men
> de er bare tomme.

Tekstfelter kan skam godt indeholde nullværdier.

Null betyder "ikke defineret" og er en værdi der kan eksistere i
alle felttyper. Alle felter er enten obligatoriske (tillader _ikke_
nullværdier) eller ikke-obligatoriske (tillader nullværdier).

Nul (tallet 0) er en veldefineret værdi der kan eksistere i alle
talfelter

Den tomme streng - "" - kaldes også (desværre) en nullængdestreng
(bemærk at der kun er to l'er). Alle tekstfelter i Access 2000 og
nyere har en egenskab kaldet "TilladNullængde". Den afgør om feltet
tillader værdien "" - altså den tomme streng.

Bemærk at de to egenskaber - obligatorisk og TilladNullængde er
fuldstændig uafhængige.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste