[ASP/Acces] Datum wordt opgeslagen als tijd

Pagina: 1
Acties:

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Ik heb een formulier gemaakt waarin twee data van een klant worden gevraagd, 1 keer de inschrijfdatum en 1 keer de geboortedatum.

Om deze in de database te stoppen gebruik ik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
<%
Dim Inschrijfdatum
Dim Geboortedatum
Dim klantRecord

Inschrijfdatum = Request.Form("Inschrijfdatum")
Geboortedatum = Request.Form("Geboortedatum")

SQL = "INSERT INTO Klant VALUES ("  & Inschrijfdatum
SQL = SQL & " , " & Geboortedatum & ")"
KlantRecord = DBConn.Execute(SQL)

Hierbij is DBConn een databaseconnectie die ik in een extern asp-bestand aanroep.

Mijn datums worden in de Access-tabel echter opgeslagen als tijden. Ik heb in access geen speciale opties aan de datumvelden gegeven.

Ik wil dat de gebruikers de velden moeten invoeren in de vorm van "05-02-2002". Op deze manier wil ik ook dat de velden op het scherm getoond worden. Weet iemand hoe ik dit moet instellen?

Verwijderd

Data type op Date/Time zetten en dan vervolgens in Format aangeven hoe dat moet worden ingevoerd.

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Ik heb het formaat van de beide velden in Acces op 00-00-0000;;_ gezet. Om dit te testen heb ik twee datums in mijn ASP-formulier ingevuld, namelijk 02-02-1979 en 28-01-2002. In mijn ASP-form krijg ik echter hiervoor de datums 30-7-1894 en 3-8-1894 voor terug. :? :? Ook krijg ik niet de gewenste vorm 03-08-1894 terug, maar slechts de verkorte versie. Wat heb ik verkeerd gedaan?

Verwijderd

Erhm...verlate Y2K-bug:?
Geen idee waardoor die data veranderen. Die verkorte notatie kan worden veroorzaakt doordat je _ergens_ in Access 'verkorte notatie' kunt aanzetten. Volgens mij in datzelfde rijtje als Format.

Verwijderd

Op donderdag 21 februari 2002 20:25 schreef TweakersOnly het volgende:
Ik wil dat de gebruikers de velden moeten invoeren in de vorm van "05-02-2002".
Geen idee hoe 't met Access zit (nauwelijks ervaring mee, en dat wil ik liefst ook zo houden :)), maar veel databases kunnen niet zo geweldig overweg met Italiaanse notatie (dd-mm-yyyy).
Op de momenten dat ik rechtstreeks een datum-string moet posten gebruik ik meestal Amerikaanse (mm/dd/yyyy) of Duitse (dd.mm.yyyy) notatie, en dat gaat meestal goed.
Of probeer anders 's de XML-notatie. Die kan nogal uitgebreid zijn, maar voor een datum is 't gewoon "yyyy-mm-dd", en voor een datum+tijd "yyyy-mm-ddThh:mm:ss:ttt".

Nogmaals, ik heb geen ervaring met Access, en heb dus geen idee hoe 'ie omgaat met de locale settings, etc. maar 't is een experimentje waard.

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Op donderdag 21 februari 2002 23:13 schreef Shivo het volgende:
Erhm...verlate Y2K-bug:?
Geen idee waardoor die data veranderen. Die verkorte notatie kan worden veroorzaakt doordat je _ergens_ in Access 'verkorte notatie' kunt aanzetten. Volgens mij in datzelfde rijtje als Format.
Ik heb bij Format inderdaad voor "verkorte datumnotatie" gekozen. Als voorbeeld werd er in Access bij die notatie de datum 19-6-1994 gegeven, dus dat zou volgens mij goed moeten zijn. :? Welke instelling zou ik dan moeten kiezen? Is er een optie om een datum binnen ASP volgens de Duitse of de Italiaanse methode te laten verschijnen?

Verwijderd

Ik meen dat Access graag #'s voor en na de datumwaarde in het SQL statement wil hebben:
code:
1
2
3
4
5
6
7
8
9
10
<%
Dim Inschrijfdatum
Dim Geboortedatum
Dim klantRecord
Inschrijfdatum = Request.Form("Inschrijfdatum")
Geboortedatum = Request.Form("Geboortedatum")

SQL = "INSERT INTO Klant VALUES (#"  & Inschrijfdatum
SQL = SQL & "# , #" & Geboortedatum & "#)"
KlantRecord = DBConn.Execute(SQL)

Waarom haal je de speciale opties niet weg uit je Access-tabel en toon je alleen het gewenste formaat?
code:
1
<%= Day(Rs("geboortedatum")) & "-" & Month(Rs("geboortedatum")) & "-" & Year(Rs("geboortedatum")) %>

Nou weet ik dat MsSQL de datums in engelse notatie (mm/dd/yyyy) wil ontvangen wil hij ze goed interpreteren, ik weet niet zeker of dit in Access ook zo is... :?

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Thankx, I-Eye. :) :) De datums worden in ieder geval nu op de juiste manier in de tabel opgeslagen. Alleen moet ik er nu nog achter komen, hoe ik ze op de juiste manier kan tonen. Ik heb jouw idee nog niet geprobeerd. Nog maar even verder zoeken op www.w3schools.com ;)

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Er gaat toch nog het e.e.a. bij het wegschrijven naar de database. In invoer zoals 29-04-2002 kan ik nu probleemloos naar de database sturen, de datum 01-04-2002 (1 april) wordt echter opgeslagen als 04-01-2002 (4 januari).
In de tabel heb ik bij beide velden als format dd-mm-yyyy gepakt, als invoernotatie heb ik 00-00-0000;;_ staan. Wat is er nu nog verkeerd aan de code? :(

  • Tommel
  • Registratie: November 2000
  • Niet online
Misschien dit bovenaan de pagina zetten ??
code:
1
Session.LCID = 1043

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Op vrijdag 22 februari 2002 11:24 schreef Tommel het volgende:
Misschien dit bovenaan de pagina zetten ??
code:
1
Session.LCID = 1043
Werkt niet. Zorgt er alleen voor dat de datum wordt weergegeven als dd-mm-jj in plaats van dd/mm/jjjj.

Verwijderd

Datums in Access inserten:

" ... #" & Format(Datum, "mm/dd/yyyy") & "# ... "

Let op de volgorde van maand en dag!!!!

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Probleem met opslaan van datums is opgelost. :) In plaats van een # heb ik een ' in de ASP-pagina gezet. Alle datums worden nu op de correcte manier, dus dd-mm-yyyy, in de database gezet. Weet iemand nog een simpele manier om een deze datum volgens dezelfde methode op een ASP-pagina te tonen? Splitsen van de datum in dag,maand en jaar vind ik nogal omslachtig en er is volgens mij geen session.lcid die deze datumnotatie gebruikt.
Pagina: 1