Toon posts:

[ASP] Dos datumnotatie naar AccesDataBase

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het maken van een ASP die zorgt dat ik een excel bestand kan uploaden, en daarna wordt deze uitgelezen en in een Acces DataBase gezet.

Maar nu heb ik een probleem met de datumnotatie.
Een paar voorbeelden:
code:
1
2
3
4
DOS DataBase:   Komt overeen met:
71627        05-02-1997
73427        10-01-2002
73425        08-01-2002

Ik ben zelf al met een rekenmachine aan het stoeien geweest, maar ik kan er ECHT GEEN logica in vinden! Wie heeft ervaring hoe ik die code om kan zetten naar en bruikbare datum veld die ik in acces kan binnenlezen!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

code:
1
2
3
4
DOS DataBase:   Komt overeen met:
71627        05-02-1997
73427        10-01-2002
73425        08-01-2002

Krijg je met die mensen die alleen maar met rekenmachine hebben leren werken :)

Kijk eens naar die onderste 2... 2 dagen verschil, en ook 2 verschil tussen de 2 dos getallen.. Hmm .. mischien is het wel een aantal dagen vanaf een bepaalde datum..

Ik ga het niet voor je uitrekenen :), maar probeer eens 7325 dagen terug te tellen vanaf 8 januari en deze datum te onthouden.. Tel nu eens 71627 dagen vooruit en kijk of je op 5 februari '97 uitkomt....

Je kunt het vervolgens in Access gebruiken mbv dateadd(D, dosdatum, startdatum) oid.......

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Het aantal dagen sinds 28-12-1800 :?

date1 = DateAdd("d", 71627, "28-12-1800")
date2 = DateAdd("d", 73427, "28-12-1800")
date3 = DateAdd("d", 73425, "28-12-1800")
:Y)

Het is me al vaker opgevallen dat er of-by-2 fouten zitten in het rekenen met dagen in vbscript. Dus het zou best kunnen zijn dat er sinds 1-1-1801 bedoeld is.

Verwijderd

Klopt ja, er zit een soort van logica in de datum/tijd notatie binnen excel. Nummer erbij is een dag omhoog.

in Excel 2000 is :
code:
1
2
3
4
5
6
1 jan 1900 = 00000
31 jan 1900 = 00031
1 feb 1900 = 00040
18 mei 1927 = 10000
3 oct 1954 = 20000
enz...

maar...
code:
1
73425 = 10 jan 2101     i.p.v.   8 jan 2002   :?

heb je misschien een andere versie.....

Verwijderd

Topicstarter
Op dinsdag 26 maart 2002 13:08 schreef Sjaaky het volgende:
Het aantal dagen sinds 28-12-1800 :?

date1 = DateAdd("d", 71627, "28-12-1800")
date2 = DateAdd("d", 73427, "28-12-1800")
date3 = DateAdd("d", 73425, "28-12-1800")
:Y)

Het is me al vaker opgevallen dat er of-by-2 fouten zitten in het rekenen met dagen in vbscript. Dus het zou best kunnen zijn dat er sinds 1-1-1801 bedoeld is.
Dit werkt perfect, bij elke datum werkt het! Ben nu bezig met alle datums om te zetten :)

Verwijderd

Topicstarter
Op dinsdag 26 maart 2002 13:25 schreef GTI_RI het volgende:

[..]

Dit werkt perfect, bij elke datum werkt het! Ben nu bezig met alle datums om te zetten :)
O, nu heb ik een probleempje, Hij pakt het niet dynamisch!
Ik zal het ff uitleggen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AanvraagDatum=CelUitlezen("E," & RijNummer)
<%=DateAdd("d", AanvraagDatum, "28-12-1800")%>
Werkt niet, hij geeft alleen 28-12-1800

AanvraagDatum=CelUitlezen("E," & RijNummer)
<%=DateAdd("d", CInt(AanvraagDatum), "28-12-1800")%>
Werkt niet, hij geeft alleen 28-12-1800

AanvraagDatum=CelUitlezen("E," & RijNummer)
<%=DateAdd("d", CLng(AanvraagDatum), "28-12-1800")%>
Werkt niet, hij geeft alleen 28-12-1800

<%=DateAdd("d", CelUitlezen("E," & RijNummer), "28-12-1800")%>
Werkt niet, hij geeft nu 7342728-12-1800

Maar <%=DateAdd("d", 73427, "28-12-1800")%> werkt WEL

In alle gevallen krijgt AanvraagDatum de waarde 73427 mee!

Hoe los ik dit probleem op :?

Verwijderd

Topicstarter
Heb het probleem al, ik had in de functie CelUitlezen een Response.Write xxx, maar die heb ik nu veranderd in CelUitlezen = xxx, en nu werkt alles

Verwijderd

Op dinsdag 26 maart 2002 13:19 schreef vanDee het volgende:
Klopt ja, er zit een soort van logica in de datum/tijd notatie binnen excel. Nummer erbij is een dag omhoog.

in Excel 2000 is :
code:
1
2
3
4
5
6
1 jan 1900 = 00000
31 jan 1900 = 00031
1 feb 1900 = 00040
18 mei 1927 = 10000
3 oct 1954 = 20000
enz...

maar...
code:
1
73425 = 10 jan 2101     i.p.v.   8 jan 2002   :?

heb je misschien een andere versie.....
Ik hoop toch niet dat je een andere Excel versie bedoeld. MS kan er een zooitje van maken maar zo erg doen ze het nou ook weer niet. ;)
Geen idee wat een "DOS database" is.
Hebben we het hier over Xbase, BTree, Paradox, flat files of een of ander zelf in elkaar gezet bestandformaat.
Terug tellen is het meest logische.

*Edit*
Ben ook weer veel te lang aan het tikken

Verwijderd

Staat boven aan: 'die zorgt dat ik een excel bestand kan uploaden' dus het lijkt me een Excel bestand...

dan nog lijkt terug tellen me het beste....dus veel plezier met Tellen
Pagina: 1