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

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
SQL med 2 variabler
Fra : Ole J. Hansen


Dato : 05-02-03 21:36

Hej Alle
Jeg forsøger at spørge alle i der ved det hele.

nuÅr = Now()
nuÅr = Mid$(Now, 7, 4)

sogeÅr = Now()
sogeÅr = Mid$(Now, 7, 4)
sogeÅr = sogeÅr - 50
Unload DataEnvironment1

SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1 BETWEEN 'nuÅr'
AND 'sogeÅr' "

Je har en database, hvor jeg via ovenstående SQL linie forsøger at udtrække
medlemmer der "her" er
under 50 år, sætningen giver ingen record.
Det skal bemærkes, at begge variablerne er erklæret som double.


Hvis jeg ændre linien til:
SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1 BETWEEN 'nuÅr'
AND '1953' "
så kører søgningen fint, men jeg ville nu gerne have, at den kunne køre med
begge variabler.
Er der en eller anden, der har en god forklaring modtages dette med stor
taknemmelighed.

m.v.h.
Ole J. Hansen



 
 
Krabsen (05-02-2003)
Kommentar
Fra : Krabsen


Dato : 05-02-03 21:53

Jeg ville nu skrive where-sætningen lidt anderledes:

WHERE (udtryk1 < nuår) AND (udtryk1 > sogeÅr)

muligvis vender <> forkert i forhold til dit behov

Du skal osse være opmærksom på forskellen mellem

udtryk >1953

og
udtryk >= 1953

alle med 1953 kommer kun med i sidste tilfælde.

mvh

Krabsen


"Ole J. Hansen" <ojh@hansen.mail.dk> skrev i en meddelelse
news:3e4175c2$0$71695$edfadb0f@dread11.news.tele.dk...
> Hej Alle
> Jeg forsøger at spørge alle i der ved det hele.
>
> nuÅr = Now()
> nuÅr = Mid$(Now, 7, 4)
>
> sogeÅr = Now()
> sogeÅr = Mid$(Now, 7, 4)
> sogeÅr = sogeÅr - 50
> Unload DataEnvironment1
>
> SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1 BETWEEN 'nuÅr'
> AND 'sogeÅr' "
>



Tomas Christiansen (05-02-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 05-02-03 22:45

Ole J. Hansen skrev:
> nuÅr = Now()
> nuÅr = Mid$(Now, 7, 4)
>
> sogeÅr = Now()
> sogeÅr = Mid$(Now, 7, 4)
> sogeÅr = sogeÅr - 50
> Unload DataEnvironment1
>
> SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1 BETWEEN
'nuÅr'
> AND 'sogeÅr' "

Hvordan kommer væriden af nuÅr og sogeÅr ind i teksten i SqlKode???

Mon ikke i stedet at du skal bruge:
SqlKode = "SELECT * FROM formedlemmer" & _
" WHERE Udtryk1 BETWEEN '" & nuÅr & "' AND '" & sogeÅr & "' "

En lille sidebemærkning: Hvorfor tildeler du nuÅr og sogeÅr først
værdien af Now() for derefter straks at smide denne værdi væk?

-------
Tomas


Ole J. Hansen (06-02-2003)
Kommentar
Fra : Ole J. Hansen


Dato : 06-02-03 10:53

Hej Krabsen og Thomas Christiansen
Tak for de gode svar, og til Thomas det virker meget fint det du skrev.
Du spørger hvorfor jeg straks smider værdierne væk igen, det er fordi
jeg mener, at dette kan virke, også når vi kommer til at skrive året som
2004 - 2005 m.v.
Mange tak.
Ole J. Hansen

"Ole J. Hansen" <ojh@hansen.mail.dk> skrev i en meddelelse
news:3e4175c2$0$71695$edfadb0f@dread11.news.tele.dk...
> Hej Alle
Snip -----
> SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1 BETWEEN 'nuÅr'
> AND 'sogeÅr' "
Snip ----
> m.v.h.
> Ole J. Hansen
>
>



preben nielsen (06-02-2003)
Kommentar
Fra : preben nielsen


Dato : 06-02-03 17:21


"Ole J. Hansen" <ojh@hansen.mail.dk> skrev i en meddelelse
news:3e42308b$0$71714$edfadb0f@dread11.news.tele.dk...
> Hej Krabsen og Thomas Christiansen
> Tak for de gode svar, og til Thomas det virker meget fint det du
skrev.
> Du spørger hvorfor jeg straks smider værdierne væk igen, det er
fordi
> jeg mener, at dette kan virke, også når vi kommer til at skrive
året som
> 2004 - 2005 m.v.

Det er ikke det han mener

> nuÅr = Now()

Denne linie bruger du ikke idet du gør det helt om i næste linie.

> nuÅr = Mid$(Now, 7, 4)


> sogeÅr = Now()

Samme igen her Du bruger jo ikke søgeÅr til noget idet du
overskriver den i næste linie

> sogeÅr = Mid$(Now, 7, 4)

Wow, nøj hvor du er afhængig af det pågælde lands datoformat her
!!! År er ikke nødvendigvis de sidste 4 tegn ! Bare så du ved det.

søgeÅr = Year(Now())

> sogeÅr = sogeÅr - 50

Hvorfor så ikke bare sådan her:

søgeÅr = Year(Now()) - 50

Desuden er rækkefølgen dog af nuÅr og søgeÅr sikkert også vigtig
når du bruger BETWEEN !


> > SqlKode = "SELECT * FROM formedlemmer WHERE Udtryk1
BETWEEN 'nuÅr'
> > AND 'sogeÅr' "

Det undrer mig forresten at du ikke selv finder fejlen inden du
skriver her. Har du ikke kigget på hvad SqlKode indeholdt efter
ovenstående statement?

> Mange tak.
> Ole J. Hansen

<hygge>




Ole J. Hansen (06-02-2003)
Kommentar
Fra : Ole J. Hansen


Dato : 06-02-03 23:58


"Ole J. Hansen" <ojh@hansen.mail.dk> skrev i en meddelelse
news:3e4175c2$0$71695$edfadb0f@dread11.news.tele.dk...
> Hej Alle
> Jeg forsøger at spørge alle i der ved det hele.
>
>
SNIP ----
Hej Thomas og Preben.
Først Thomas efterfølgende har jeg selv bemærket, at jeg straks smider
værdien i nuÅr=Now() væk, så den har jeg fjernet nu.

Og til Preben du har så evigt ret i det du skriver, og du undrer dig over,
at jeg ikke selv har fundet fejlen, det har jeg en helt klar forklaring på,
idet jeg ikke er så dygtig til det her som så mange andre.
Men jeg syndtes det er sjovt, og takke være mange i denne gruppe,
har jeg efterhånden fået banket et "lille" godt program sammen.

Tak til hele gruppen.

m.v.h.
Ole J. Hansen



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

Månedens bedste
Årets bedste
Sidste års bedste