[asp / access] Where x between datum

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
Ok

ik heb een database met access hierin staan de velden geldig_van en geldig_tot dit zijn datum velden.
Nu wordt vanuit een tekst veld de datum ingvevuld vanuit een formulier.
Deze zijn dd-mm-yyyy
(andersom in vullen dus mm-dd kan niet dan komt die terug met een fout van dat niet kan)


Nu wil ik alle resultaten op het scherm waar de datum van vandaag tussen geldig_van en geldig_tot vallen.

Ben hier nu bijna de hele dag me bezig maar ik geef het op.
Database inhoud
(zo is het dus weggeschreven)

geldig_van geldig_tot
5-3-2007 17-3-2007
2-3-2007 21-3-2007
2-3-2007 21-1-2007


Ik haal de gegevens op (dacht ik )met deze query
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%



Dim datum


datum = (date())

response.write ""& datum


    SQL = "SELECT * FROM data where "& datum &"  BETWEEN geldig_van AND geldig_tot"

    set objRec = objCon.execute(SQL)

%>

datum geeft op het scherm 9-3-2007 dus die heeft dezelfde notering als de database.

Maar ik kan niet vergelijken op deze manier.
Het ergste is hij geeft geen foutmelding en laat nu alleen de datum zien (die echo ik )

Ik heb ook google gezocht naar datums en asp en access hier kom ik veel tegen over # maar ik doe vast iets stom fouts want ik kom er niet uit.

geprobeerde querys
code:
1
2
3
4
5
6
7
SQL = "SELECT * FROM data where "& datum &"  BETWEEN geldig_van AND geldig_tot"

SQL = "SELECT * FROM data where "# datum #"  BETWEEN geldig_van AND geldig_tot"

SQL = "SELECT * FROM data where "# datum #"  BETWEEN "#geldig_van#" AND "#geldig_tot#""

SQL = "SELECT * FROM data where "& datum &"  BETWEEN "#geldig_van#" AND "#geldig_tot#""


etc.. etc.. etc..

Echter dit alleemaal zonder enig resultaat, terwijl in mogen ogen die er niet zo moeilijk uit ziet.


// edit

heb ook de waarde als string weg laten schrijven notatie ddmmyyyy dus dan krijg je 932007 maar dit was ook geen succes om dat ik date() niet kan verlijken met een string.
en om van de date eerst een string te maken vind te slordig


Ook het wegschrijven in een numeriek veld had geen succes.

van het formulier type text maken ipv datum mocht ook niet baten

[ Voor 9% gewijzigd door wd200 op 09-03-2007 16:25 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-09 14:03
Je slaat je datum wel op als een datetime ?
code:
1
select  * from bla where datum geldig_van >= theDate and geldig_tot < theDatePlusOneDay

Zorg er wel voor je geen tijdsinfo met je datum meestuurt in je query.
Je tot-datum moet je datum zijn plus een dag (als je bovenstaande query gebruikt).

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Nu online
code:
1
SQL = "SELECT * FROM data where '" & datum & "'  BETWEEN geldig_van AND geldig_tot"


of misschien moeten het wel # zijn, iig moeten de datum delimiters in de query string terecht komen en niet erbuiten.

Heb ik nog wel een paar vragen:
- Hoe doe jij de check of ze niet maand en dag hebben omgedraaid als de gebruiker bijv: 12-01-1999 invult?
- Zorg je ervoor dat je datum string niet dingen kan bevatten als
code:
1
datum = " 1 = 1; DELETE * FROM data; SELECT * FROM data WHERE '1970-1-1' "

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
farlane schreef op vrijdag 09 maart 2007 @ 16:59:
code:
1
SQL = "SELECT * FROM data where '" & datum & "'  BETWEEN geldig_van AND geldig_tot"



Soort fout:
Microsoft JET Database Engine (0x80040E07)
Gegevenstypen komen niet overeen in criteriumexpressie.


of misschien moeten het wel # zijn, iig moeten de datum delimiters in de query string terecht komen en niet erbuiten.

Heb ik nog wel een paar vragen:
- Hoe doe jij de check of ze niet maand en dag hebben omgedraaid als de gebruiker bijv: 12-01-1999 invult?
- Zorg je ervoor dat je datum string niet dingen kan bevatten als
code:
1
datum = " 1 = 1; DELETE * FROM data; SELECT * FROM data WHERE '1970-1-1' "


Nog niet over nagedacht ik wil dit eerst werekend hebben
SQL = "SELECT * FROM data where #" & datum & "# BETWEEN geldig_van AND geldig_tot"

blanko page

SQL = "SELECT * FROM data where "# & datum & #" BETWEEN geldig_van AND geldig_tot"

Soort fout:
Compilatiefout Microsoft VBScript (0x800A0401)
Einde van de instructie wordt verwacht
/wesley/doeland/promo2.asp, line 24, column 33
SQL = "SELECT * FROM data where "# & datum & #" BETWEEN geldig_van AND geldig_tot"
--------------------------------^


Denk dat het bijna weekend is maandag weer een dag

[ Voor 10% gewijzigd door wd200 op 09-03-2007 17:34 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-09 14:03
Weet je wat je doet; kijk eens hoe je parametrized queries implementeert in ASP / Access.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 18-09 08:20
whoami schreef op vrijdag 09 maart 2007 @ 20:22:
Weet je wat je doet; kijk eens hoe je parametrized queries implementeert in ASP / Access.
Eeeh volgens mij lukt je dat niet eens in ASP / Access.

Ik zou meer eens naar de aanhalingstekens kijken trouwens. De '#' hoort gewoon daar niet buiten te staan :)

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Phenomenon schreef op zaterdag 10 maart 2007 @ 06:31:
Eeeh volgens mij lukt je dat niet eens in ASP / Access.
Hoe kom je daar bij?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Phenomenon schreef op zaterdag 10 maart 2007 @ 06:31:
[...]


Eeeh volgens mij lukt je dat niet eens in ASP / Access.

Ik zou meer eens naar de aanhalingstekens kijken trouwens. De '#' hoort gewoon daar niet buiten te staan :)
SQL:
1
Select * FROM TabelNaam WHERE MyId = ?

Werkt goed; named parameters werkt alleen niet, je moet ze in de goede volgorde toevoegen :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
gorgi_19 schreef op zaterdag 10 maart 2007 @ 09:43:
[...]

SQL:
1
Select * FROM TabelNaam WHERE MyId = ?

Werkt goed; named parameters werkt alleen niet, je moet ze in de goede volgorde toevoegen :)
ja dat idee snap ik maar dat gaat niet op met datums..

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Sinds wanneer niet? Kan je dan 'n stukje code laten zien? Ik doe het namelijk al jaren met datums ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
kenneth schreef op maandag 12 maart 2007 @ 09:24:
Sinds wanneer niet? Kan je dan 'n stukje code laten zien? Ik doe het namelijk al jaren met datums ...
ok misschien dat ik iets fout doe, ik heb me verdiept in datums maar als beginner is er teveel informatie in een keer.
Vooral dit met datums snap ik niet..
mij leek logisch

select * from data where datum_vandaag between geldig_van and geldig_tot.

De geldig_van en geldig_tot waarde zijn datum/tijd waarde in access (NLD)
de datums worden weg geschreven vanuit een tekstvak.

database zeg ook 4 maart 2007 is 4-3-2007 dus de notatie is goed.
(acces maakt er auto dd-mm-yyyy van ook als ik yyyy-mm-dd notatie invoer).


hieronder de volledige code die gebruikt wordt

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<%


dim datum
datum = (date())



    ' De SQL query om de gegevens uit de database te halen.
SQL = "SELECT * FROM data where #"&datum&"# between geldig_van and geldig_tot"
    ' Plaats de gegevens van de SQL Query in de recordset objRec.
    set objRec = objCon.execute(SQL)

%>

<table border="1"  width="60%">

<%

    ' Herhaal het onderstaande totdat het einde van de recordset is bereikt.
    ' Zet de waarde van de recordset van alle velden tussen de <td></td> tags.
    ' Bij elke loop word er een rij van de tabel neergezet.
    Do While Not objRec.EOF

%>

  
        <tr> <td colspan="2">
        <h3><%= objRec.Fields("naam").Value  %></h3>
    <td>
    </tr>
        <td width="112px"><img src="images/<%= objRec.Fields("filename").Value %>" width="224" height="168"></td>
            
                         <td><table width="100%" border="1">
                          <TR>
                          
                          <TD height="114">
                            <%= objRec.Fields("tekst").Value  %> </TD>
                          </TR>
                           <tr>
                             <td height="26"><prijs_van><%= objRec.Fields("prijs_van").Value  %> </prijs_van></td>
                           </tr>
                           <tr>
                             <td><hactie_prijs>  <%= objRec.Fields("actie_prijs").Value  %></hactie_prijs</td>
                           </tr>
                           <tr>
                             <td><geldig><%="Deze actie is geldig tot "%> <%= objRec.Fields("geldig_tot").Value  %></geldig> </td>
                           </tr>
                         </table>                   
                        
                          
            </td>
                
                 
 
    </tr>

<%

    ' Ga naar het volgende record om de waarden in een nieuwe rij te laten zien.
    objRec.MoveNext
    Loop

%>

</table>

<%

    ' Sluit de verbinding en maak alle variabelen leeg. Dit is erg belangrijk!!
    objRec.Close
    Set objRec = Nothing
    objCon.close
    set objCon = Nothing 

%>
</div>
</body></html>

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-09 14:03
Je gebruikt nog steeds geen parametrized queries.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
whoami schreef op maandag 12 maart 2007 @ 09:51:
Je gebruikt nog steeds geen parametrized queries.
Hij vroeg de code zoals die nu was, en die post ik ik ben nu opzoek naar de werking en het gebruik van parametrized queries. omdat deze term voor mij nieuw is.

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-09 14:03
Waarom zeg je dan dat het concept van parametrized queries niet opgaat voor datums, als je het nog niet geprobeerd hebt ?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
whoami schreef op maandag 12 maart 2007 @ 10:11:
Waarom zeg je dan dat het concept van parametrized queries niet opgaat voor datums, als je het nog niet geprobeerd hebt ?
mijn excuus dan heb ik het verkeerd opgevat, dat was niet de bedoeling.
ik ga even puzzellen en laat het resultaat wel weten

(btw als iemand ergens een NL handleiding / turtorial heeft voor parametrized queries graag, leest voor mij makkelijker als engels)

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Nu online
wd200 schreef op vrijdag 09 maart 2007 @ 17:24:
code:
1
SQL = "SELECT * FROM data where #" & datum & "#  BETWEEN geldig_van AND geldig_tot"

blanko page
Mja maar de query wordt dus wel uitgevoerd. Maw access gebruikt als datum delimiters een # die in de querystring moeten staan.

Btw ik krijg het idee dat je wat basiskennis mist met betrekking tot dit soort dingen. Vragen om NL documentatie is ook een heel sterke aanwijzing in die richting ; als je geinteresseerd bent in programmeren is het zaak dat je een goede kennis van de Engelse taal hebt of krijgt. De meeste docs zijn nl alleen maar in het Engels beschikbaar.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 16-09 15:24
De basis kennis is (beperkt) aanwezig ik ben regelmatig bezig geweest met php / mysql dus asp is net weer iets anders.

Mijn vraag voor nederlandse documentatie heeft niks te maken met geen interesse maar met mijn engelse vaardigheden.
Mijn engels is gewoon slecht, het lezen en begrijpen van (technische) teksen duurt hierbij langer.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Nu online
wd200 schreef op maandag 12 maart 2007 @ 13:15:
De basis kennis is (beperkt) aanwezig ik ben regelmatig bezig geweest met php / mysql dus asp is net weer iets anders.

Mijn vraag voor nederlandse documentatie heeft niks te maken met geen interesse maar met mijn engelse vaardigheden.
Mijn engels is gewoon slecht, het lezen en begrijpen van (technische) teksen duurt hierbij langer.
Das mooi maar heb je de eerste zijn in mijn reactie ook gelezen?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1