[VB 6.0] String converteren naar Date

Pagina: 1
Acties:

  • Joeroenho
  • Registratie: Augustus 2001
  • Niet online
Ik heb een klein probleempje met het converteren van het datatype 'String' dat ik inlees vanuit een tekstveld, naar het datatype 'Date'.
Het werkt in principe prima met de volgende code:
code:
1
2
3
4
Dim myDate As Date
Dim myDateString As String
myDateString = Me.datumVeld.Text
myDate = CDate(myDateString)

Maar,

Deze code is afhankelijk van je inputLocale op je machine. Dat moet dus niet.
Ik heb zelf al even zitten spitten in de MSDN library van VStudio, en heb een stukje gevonden waar volgens mij de oplossing in kan zitten. Ik krijg het echter niet aan de praat. Het stukje:
In Visual Basic, never type dates as strings in your code. Entering dates in code in the format #month/day/year# ensures that the date will be interpreted correctly in any system locale. Because Visual Basic allows only English/U.S. as a programming locale, the date will be the same to a user wherever your application is run.

For example, if a user enters 8/2/97 in an input dialog box,
CDate ("8/2/97")
returns the following results, based on the system locale:

Operating system Output:
French/France 08/02/97 (= February 8, 1997)
English/U.S. 8/2/97 (= August 2, 1997)

Conversely, if you enter 8/2/97 in code,
CDate (#8/2/97#)
returns the results in the following table, based on the code locale:

Operating system Output
French/France 02/08/97 (= August 2, 1997)
English/U.S. 8/2/97 (= August 2, 1997)

[..]
Ik zou dus met het toevoegen van #-tekentjes klaar moeten zijn.
Alleen, als ik nu de volgende code gebruik:
code:
1
2
3
4
Dim myDate As Date
Dim myDateString As String
myDateString = "#" & Me.datumVeld.Text & "#"
myDate = CDate(myDateString)

...krijg ik een Type Mismatch Error.
Pas ik de code aan zodat hij de datum niet uit het tekstveld leest:
code:
1
2
3
4
Dim myDate As Date
Dim myDateString As String
myDateString = "#3/14/2003#"
myDate = CDate(myDateString)

...dan werkt het prima!

Wat doe ik fout / zie ik over het hoofd?

Amateurcoureur en fervent banktukker


  • sandergar
  • Registratie: Juni 2002
  • Laatst online: 07:07
#-jes dien je alleen om data's te plaatsen, niet om variablen !!!

Om data in het juiste formaat te krijgen kan je gebruiken maken van de format functie.

FF googlen (eerste hit is gelijk raak)

2.730 Wp Enphase Zuid 30°, 4.450 Wp Enphase Noord 30° | Smart EVSE laadpaal | Victron Multiplus II 48/5000/70 3 Fase | 45kWh PylonTech Pelio accu


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Je zou ook de Date/Time picker kunnen gebruiken, die zit in de windows commoncontrols2.

Exact expert nodig?