/ 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
Fotoalbum med klassifikation
Fra : Christian Kragh


Dato : 10-10-08 07:43

Hej.

Jeg er igang med at lave et fotoalbum, men jeg er stødt ind i et
problem.

Jeg vil godt klassificere billederne (eller de besøgende skal)

Derfor har jeg 2 felter i min database.
Den ene hedder star og indeholder summen af alle stjernerne der
er givet fra brugerne.
Det andet hedder starcount og indeholder antallet af "stemmer".

Jeg bruger følgende sætning til at finde billederne inden for de
enkelte stjerner:

strSQL = "select * from tblbilleder where ((" & qTempStarAfter &
">([tblbilleder].[star] / [tblbilleder].[starcount])) AND ((" &
qTempStarBefore & "<=([tblbilleder].[star] /
[tblbilleder].[starcount])))) order by ([tblbilleder].[star] /
[tblbilleder].[starcount])"

Det virker som det skal.

Jeg har nu problemer med at få vist alle billeder hvor der ikke
er nogen klassifikation på.

Jeg har prøvet med denne sætning men der er 0 poster.
strSQL = "select * from tblbilleder where star = Null or star =
'' order by uid"
Her får jeg en fejl som siger at feltet er forkert og det skyldes
disse '' da feltet er et talfelt.

Hvordan kan man ellers kontrollere om et talfelt indeholder en
værdi?

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Christian Kragh (11-10-2008)
Kommentar
Fra : Christian Kragh


Dato : 11-10-08 07:18

> Jeg har prøvet med denne sætning men der er 0 poster.
> strSQL = "select * from tblbilleder where star = Null or star =
> '' order by uid"
> Her får jeg en fejl som siger at feltet er forkert og det skyldes
> disse '' da feltet er et talfelt.

Da det er et talfelt må man åbenbart ikke kontrollere for om værdien
er '' men det ser ud til at virke hvis man kun bruger star = null i
modsætning til tekstfelter.

Med tekstfelter virker det nemlig som det skal med ovenstående sql
streng.

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (11-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 11-10-08 22:36

On 11 Oct 2008 06:18:06 GMT, Christian Kragh <tursoe@gmail.com> wrote:


>Da det er et talfelt må man åbenbart ikke kontrollere for om værdien
>er ''

Nej, talværdier kan ikke være en tekst-streng.

>men det ser ud til at virke hvis man kun bruger star = null i
>modsætning til tekstfelter.

Det rigtige er at bruge fx:
.... WHERE NOT (feltnavn IS NULL)

Et udsagn:
a = b
vil returnere Null (og ikke Sand eller Falsk), hvis én af værdierne er
Null (og det er den ene jo *altid* i star = Null).
Så jeg ville checke din betingelse en ekstra gang - og rette

>Med tekstfelter virker det nemlig som det skal med ovenstående sql
>streng.

Tekst-felter kan sagtens indeholde enten Null eller "" - som ikke er det
samme. Så det sikre er at checke for såvel IS NULL som "".

Good luck!

--
Jørn Andersen,
Brønshøj

Ukendt (12-10-2008)
Kommentar
Fra : Ukendt


Dato : 12-10-08 10:57


"Christian Kragh" <tursoe@gmail.com> skrev i en meddelelse
news:48eef96e$0$90273$14726298@news.sunsite.dk...
> Hej.
>>
> Hvordan kan man ellers kontrollere om et talfelt indeholder en
> værdi?
>
Hvis du anvender Ms Access kan du i designvisning sætte Tal feltets
standardværdi til 0.

/Henning



Jørn Andersen (12-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 12-10-08 15:58

On Sun, 12 Oct 2008 11:57:26 +0200, "Henning Smed" <henning snabela
smeds dot dk> wrote:

>Hvis du anvender Ms Access kan du i designvisning sætte Tal feltets
>standardværdi til 0.

Det synes jeg sagtens kan være en god idé - men det er ikke i sig selv
en garanti for, at det aldrig kan blive fx Null.


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Christian Kragh (17-10-2008)
Kommentar
Fra : Christian Kragh


Dato : 17-10-08 21:15

>> Hvis du anvender Ms Access kan du i designvisning sætte Tal
>> feltets standardværdi til 0.

> Det synes jeg sagtens kan være en god idé - men det er ikke i sig
> selv en garanti for, at det aldrig kan blive fx Null.

Det er jeg så også kommet frem til men det leder mig så videre til mit
næste problem.

Hvordan kan jeg lave en SQL streng der henter de to felter ud, Star og
StarCount.

Star indeholder den værdi jeg har.
StarCount indeholder antallet af afgivne stjerner.

Jeg vil gerne hente værdier ud imellem 1 og 2.

Men når jeg laver en sql sætning der ser sådan ud får jeg en fejl med
overløb. (0/0 er jo klart falsk...)

SELECT tblBilleder.*
FROM tblBilleder
WHERE ((2>tblbilleder.starcount/tblbilleder.star)) Or
((3<tblbilleder.starcount/tblbilleder.star));

Hvis jeg laver denne sætning får jeg alle felter ud men skal selv til
at sortere i dem efterfølgende.

SELECT tblBilleder.*, tblBilleder.star, tblBilleder.starcount
FROM tblBilleder
WHERE (((tblBilleder.star)<>0) AND ((tblBilleder.starcount)<>0))

Hvordan kan man ellers komme ud om dette problem?

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (18-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-08 07:12

On 17 Oct 2008 20:14:36 GMT, Christian Kragh <tursoe@gmail.com> wrote:

>Star indeholder den værdi jeg har.
>StarCount indeholder antallet af afgivne stjerner.
>
>Jeg vil gerne hente værdier ud imellem 1 og 2.

Altså billeder, der har fået gennemsnits-bedømmelser mellem 1 og 2?
(Eller 2 og 3, som i eksemplet)

>Men når jeg laver en sql sætning der ser sådan ud får jeg en fejl med
>overløb. (0/0 er jo klart falsk...)
>
>SELECT tblBilleder.*
>FROM tblBilleder
>WHERE ((2>tblbilleder.starcount/tblbilleder.star)) Or
>((3<tblbilleder.starcount/tblbilleder.star));

Skal brøken og < >-tegnene ikke vendes om?
Og så skal det være AND i stedet for OR + at du skal sortere dem fra,
hvor der ikke er afgivet stemmer, så du ikke får en x/0-fejl.

Hvad med:
.... WHERE starcount > 0
AND star / starcount > 2
AND star / starcount < 3

-?

- hvis altså starcount er antal "stemmesedler" og star er antal stjerner
- ellers må du lige bytte rundt til:
.... WHERE star > 0
AND starcount / star > 2
AND starcount / star < 3

Ellers er det jo et database-sprøgsmål, og her sidder alle nørderne i:
dk.edb.database
- og hvis det er MS Access:
dk.edb.database.ms-access

Good luck!

--
Jørn Andersen,
Brønshøj

Christian Kragh (20-10-2008)
Kommentar
Fra : Christian Kragh


Dato : 20-10-08 12:26

> .... WHERE star > 0
> AND starcount / star > 2
> AND starcount / star < 3

Præcis som jeg skulle bruge...

> Ellers er det jo et database-sprøgsmål, og her sidder alle nørderne i:
> dk.edb.database
> - og hvis det er MS Access:
> dk.edb.database.ms-access
>
> Good luck!

Det vil jeg huske på, men jeg kan ikke komme på usenet af en eller anden
grunde så jeg prøver så godt jeg kan via HTML.dk :( .
Selvom det er en dejlig side.

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177511
Tips : 31968
Nyheder : 719565
Indlæg : 6408596
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste