[VC++] Date/Time Picker

Pagina: 1
Acties:

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
het volgende probleem:
Hoe stel ik zo'n Date/Time Picker op een bepaalde datum in?

Ik lees uit een database een datum, en die moet in het venster weer worden weergegeven, nu heb ik wel geprobeerd om de control hierop te zetten, maar als ik de waarde op de nieuwe datum zet gebeurd er niks.
Hoe kan ik ervoor zorgen dat de gebruiker de juiste datum ziet, en niet de huidige?

Overigens moet het tijdens de loop van het programma te veranderen zijn, en niet alleen tijdens de initialisatie van de controls (aangezien het uit een database komt en er dus soms een ander record geselecteerd wordt.

(Extra vraagje: Hoe zorg ik ervoor dat zo'n Date/Time picker alleen de datum in mijn database zet (En die accepteerd ook alleen datum volgens access))

  • The End
  • Registratie: Maart 2000
  • Laatst online: 11:50

The End

!Beginning

Hoe heb je dat geprobeerd? Volgens de MSDN kan het met de functie SetTime()
Dat kan gewoon als het programma draait.

Om de waarde in de database te zetten moet je zelf code schrijven. Dat kan de date/time picker niet...

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Uit de database komt zo'n leuke COleDateTime gevalleke, en die wil ik gewoon direct koppelen (== kopieren/toewijzen) aan het veld, want anders wordt het ontzettend omslachtig.
(Alles eerst weer vertalen naar int's en dan in dat veld pleuren die er dan doodleuk weer een ColeDateTime van maakt)

daarnaast kun je zo'n ColeDateTime direct in je database zetten, maar dan neemt hij automatisch de tijd mee, en die tijd wil ik het liefst kwijt, want op deze manier krijg je bv. de datum van morgen plus de tijd van nu.
Zelfs als ik in Access EN VC aangeef dat ze de korte datumnotatie moeten gebruiken geeft hij toch de complete notatie met tijd. :?
(Dat is in Access als ik de inhoud van de database bekijk)

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Op dinsdag 23 juli 2002 10:42 schreef TheGhostInc het volgende:
Uit de database komt zo'n leuke COleDateTime gevalleke, en die wil ik gewoon direct koppelen (== kopieren/toewijzen) aan het veld, want anders wordt het ontzettend omslachtig.
(Alles eerst weer vertalen naar int's en dan in dat veld pleuren die er dan doodleuk weer een ColeDateTime van maakt)
Okiz, dit probleem is idd. opgelost, SetTime pakt idd gewoon een COledateTime gevalleke, had gewoon niet goed in de MSDN gekeken, kan nu zelfs het andere weer niet meer vinden, maar goed dat werkt 8-)
daarnaast kun je zo'n ColeDateTime direct in je database zetten, maar dan neemt hij automatisch de tijd mee, en die tijd wil ik het liefst kwijt, want op deze manier krijg je bv. de datum van morgen plus de tijd van nu.
Zelfs als ik in Access EN VC aangeef dat ze de korte datumnotatie moeten gebruiken geeft hij toch de complete notatie met tijd. :?
(Dat is in Access als ik de inhoud van de database bekijk)
Alleen hier volg ik dus niet waarom de tijd automagisch wordt meegestuurd, terwijl mijn database en C++ toch braaf zijn afgesteld op DATUM, en dat is volgens mij niet DATUM + TIJD.

  • The End
  • Registratie: Maart 2000
  • Laatst online: 11:50

The End

!Beginning

En dit:
code:
1
SetFormat(_T("dd-MMM-yy"));

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Op dinsdag 23 juli 2002 11:01 schreef The End het volgende:
En dit:
code:
1
SetFormat(_T("dd-MMM-yy"));
Ansich kan het wel, maar dan betekent het dus dat ik de gegevens uit de Date/Time Picker eerst converteer naar int's en dan daarna weer terug zet, dat vind ik zelf zonde van de rekentijd.
(Zeker met een database erachter wordt het allemaal al niet bijzonder snel, dan is het wel de moeite waarde om niet alles super omslachtig te doen :) )

daarnaast betwijfel ik of het werkt, ik heb namelijk al het volgende geselecteerd:
DTS_SHORTDATEFORMAT Displays the date in short format, producing output like "1/3/98".
En dan nog komt er in mijn database leuk de tijd mee.
Pagina: 1