Avatar billede kapoou Nybegynder
19. oktober 2004 - 11:20 Der er 12 kommentarer og
1 løsning

SELECT if

Jeg har en tabel med følgende kolonner
------------------------
overskrift
tekst
publicering fra
publicering til
------------------------

Der bliver kun sat noget ind i publicering fra og publicering til hvis man ønsker at styre dette.

Men ude på selve siden skal de poster uden noget i publicering fra og publicering til jo også vises sammen med dem som opfylder datovisningen. Men hvis man skriver følgende sommer de ikke med fordi de jo åbentlyst ikke opfylder kravene.

publiFrom <= #"& date() &"# and publiTo >= #"& date() &"#

Hvordan kommer man uden om det så koden læser at hvis der ikke står noget i feltet så skal de også med?
Avatar billede Jman Praktikant
19. oktober 2004 - 11:33 #1
Jeg er ikke sikker på at jeg har forstået din SQL:
publiFrom <= #"& DAGS-DATO &"# and publiTo >= #"& DAGS-DATO &"# (det er jo kun idag, så)

men hvis ud over det kan du eksempelvis lave den sådan her (hvis jeg altså har forstået dit spørgsmå rigtigt *hæhæ*):
publiFrom (<= #"& date() &"# and publiTo >= #"& date() &"#) or (publiFrom = Null AND publiTO = Null)
Avatar billede kapoou Nybegynder
19. oktober 2004 - 11:42 #2
Det er stadig kun den ene som er defineret der kommer med. Alle dem hvor der ikke står noget i kommer ikke med!
Avatar billede Jman Praktikant
19. oktober 2004 - 12:14 #3
Det kan være det ikke er en null-værdi... prøv at medtage ""

publiFrom (<= #"& date() &"# and publiTo >= #"& date() &"#) or ((publiFrom = Null or publiFrom = "") AND (publiTO = Null OR publiTo = ""))
Avatar billede kapoou Nybegynder
19. oktober 2004 - 13:26 #4
Så siger den

Too few parameters. Expected 1.
Avatar billede Jman Praktikant
19. oktober 2004 - 13:33 #5
hvordan ser din kode ud ?
Avatar billede kapoou Nybegynder
19. oktober 2004 - 13:36 #6
SQLstmt = "SELECT * FROM admin WHERE publiceret='yes' and overid =" &nyid& " and (publiFrom <= #"& date() &"# and publiTo >= #"& date() &"#) or ((publiFrom = NULL or publiFrom = "") and (publiTo = NULL or publiTo = "")) ORDER by id DESC"
Avatar billede Jman Praktikant
19. oktober 2004 - 13:43 #7
d.v.s. du har flere variabler med inde.. så skal du vist have isoleret datokriterierne yderligere..

SQLstmt = "SELECT * FROM admin WHERE publiceret='yes' and overid =" &nyid& " and ((publiFrom <= #"& date() &"# and publiTo >= #"& date() &"#) or ((publiFrom = NULL or publiFrom = "") and (publiTo = NULL or publiTo = ""))) ORDER by id DESC"
Avatar billede Jman Praktikant
19. oktober 2004 - 13:45 #8
hvis det ikke er en voldsom stor database, kan man snyde sig rundt en anden vej:

SQLstmt = "SELECT * FROM admin WHERE publiceret='yes' and overid =" &nyid& " & ORDER by id DESC"

Og så kan du spørge på datoen efterfølgende .. Så får du også den fordel at de angivne datokriterier kan vises først og derefter dem uden dato

if dato
if
Avatar billede kapoou Nybegynder
19. oktober 2004 - 13:47 #9
Problemet med den anden fejl var jo bare at jeg brugte " igen så den endte jo stregne. Stupid!

Men nu når jeg så bruger ' så sigen den

Data type mismatch in criteria expression
Avatar billede Jman Praktikant
19. oktober 2004 - 13:47 #10
sorry..

If rs("publiFrom") <= #"& date() &"# and rs("publiTo") >= #"& date() &"# then
visning
elseif (rs("publiFrom") = null or rs("publiFrom") = "") and (rs("publiTo") = null or rs("publiTo") = "") then
visning
end if
Avatar billede Jman Praktikant
19. oktober 2004 - 13:49 #11
Hvis du får datatyp mismatc, så er det typisk null-værdi..
Så er det jo spørgsmålet om den først angivende er korrekt, men at der ikke er felter i din DB, der opfylder kravene
Avatar billede kapoou Nybegynder
19. oktober 2004 - 15:21 #12
Nå men jeg fik vist løst problemet ved at skrive publiTo is NULL osv. i stedet for publiTo = NULL
Avatar billede kapoou Nybegynder
19. oktober 2004 - 15:21 #13
Men ellers tak for hjælpen superior!!
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