Toon posts:

[ASP/Access] code struikelt over mei en oktober

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor het bekende probleem om de datum in een access op te slaan heb ik het volgende bedacht:

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
'Sla de datum op een correcte manier op: 01-jan-2005
Dim dayPart
Dim monthPart
Dim yearPart

If IsDate( invoerdatum ) Then

dayPart = Day( invoerdatum )
monthPart = Monthname( Month( invoerdatum ), True )
yearPart = Year( invoerdatum )

end if
invoerdatum = dayPart & "-" & monthPart & "-" & yearPart


De query ziet er nu als volgt uit:
ASP.NET Visual Basic:
1
2
3
4
5
strQuery = "INSERT INTO voorraad (invoerdatum,"&_
                                      bla
                                      bla VALUES (#"&invoerdatum&"#,"&_
                                                           bla
                                                           bla

Ik was een blij persoon tot de maanden oktober en mei kwamen, door het verschil in engelse en nederlande notatie (mai / mei oct / okt) krijg ik de volgende foutmelding:

Error Type:
Microsoft JET Database Engine (0x80040E07)
Syntaxisfout in datum. in query-expressie #9-okt-2005#.

wat kan ik hieraan doen?

[ Voor 6% gewijzigd door Verwijderd op 26-10-2005 20:26 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

De locale van je database (kan dat?) of ASP aanpassen?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 12-04 16:17
Is het voor Nederlandse locale niet zoiets: Session.LCID = 1043 ?

stp - PSN ID: stp_4


Verwijderd

Topicstarter
stp_4 schreef op woensdag 26 oktober 2005 @ 20:43:
Is het voor Nederlandse locale niet zoiets: Session.LCID = 1043 ?
Ja dat klopt, dat stond ook boven mijn code, als ik deze verander in Session.LCID = 1044
gaat het als ik offline test gaat het goed, waarschijnlijk komt dat omdat IIS (wat ik gebruik om offline te testen)

Online echter, op een server waar ik niks kan instellen, kan ik 1 keer een record toevoegen met een "oktober datum" wil ik daarna een 2e toevoegen gaat het wederom fout

Verwijderd

Je kan het als volgt doen:

ASP:
1
2
3
4
5
dayPart = Day( invoerdatum )
monthPart = Monthname( invoerdatum )
yearPart = Year( invoerdatum )

invoerdatum = dayPart & "-" & monthPart & "-" & yearPart


Zo kan je hem invoegen.

Als je hem rechtstreeks uit de db wilt halen draai je maand en dag om

ASP:
1
2
3
4
5
6
7
dayPart = Day( invoerdatum )
monthPart = Monthname( invoerdatum )
yearPart = Year( invoerdatum )

invoerdatum = monthPart & "-" & dayPart & "-" & yearPart

strSQL = "Select * from table where invoerdatum = #" & invoerdatum  & "#"

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

biksoldier: ik zie het verschil niet met wat TS al geprobeerd heeft? De volgorde is het probleem niet, de naam oktober vs. october wel. :)

andre101: waarom gebruik je trouwens maandnamen om data op te slaan in de database, terwijl maandnummers in elke locale hetzelfde zijn? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Andre heeft het volgende
ASP:
1
monthPart = Monthname( Month( invoerdatum ), True )


Ik zeg dat je allen Month() moet uitvoeren over de invoerdatum en niet nog een daarvan de Monthname() functie ;)

ASP:
1
Month(invoerdatum)

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 26 oktober 2005 @ 21:10:
Andre heeft het volgende
ASP:
1
monthPart = Monthname( Month( invoerdatum ), True )


Ik zeg dat je allen Month() moet uitvoeren over de invoerdatum en niet nog een daarvan de Monthname() functie ;)

ASP:
1
Month(invoerdatum)
Ja, het lijkt erop of dit de oplossing is.
De volledige code heb ik van
http://www.madness.nl/artikel/artikel.asp?aid=6&page=3

Bedankt!

Verwijderd

Verwijderd schreef op woensdag 26 oktober 2005 @ 20:25:
Voor het bekende probleem om de datum in een access op te slaan heb ik het volgende bedacht:
Bekend probleem met een uniforme oplossing trouwens.
ISO 8601, go figure...
Verwijderd schreef op woensdag 26 oktober 2005 @ 20:25:
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
'Sla de datum op een correcte manier op: 01-jan-2005
Dim dayPart
Dim monthPart
Dim yearPart

If IsDate( invoerdatum ) Then

dayPart = Day( invoerdatum )
monthPart = Monthname( Month( invoerdatum ), True )
yearPart = Year( invoerdatum )

end if
invoerdatum = dayPart & "-" & monthPart & "-" & yearPart


De query ziet er nu als volgt uit:
ASP.NET Visual Basic:
1
2
3
4
5
strQuery = "INSERT INTO voorraad (invoerdatum,"&_
                                      bla
                                      bla VALUES (#"&invoerdatum&"#,"&_
                                                           bla
                                                           bla


wat kan ik hieraan doen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim dayPart
Dim monthPart
Dim yearPart

' Als dit gebruikersinvoer is, dan twijfel ik of dit wel verstandig is...
' De IsDate maakt namelijk weer gebruik van de locale instellingen.
If IsDate( invoerdatum ) Then    

dayPart = Day( invoerdatum )
monthPart = Month( invoerdatum)
yearPart = Year(invoerdatum)

end if
invoerdatum = Format(yearPart,"0000") & "-" & Format(monthPart,"00") & "-" & Format(dayPart,"00")
Verwijderd schreef op woensdag 26 oktober 2005 @ 21:45:
[...]
Ja, het lijkt erop of dit de oplossing is.
De volledige code heb ik van
http://www.madness.nl/artikel/artikel.asp?aid=6&page=3
Lijkt mij meer een gare oplossing |:(

[ Voor 48% gewijzigd door Verwijderd op 26-10-2005 23:06 . Reden: typo ]

Pagina: 1