Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Päivämäärän tarkistus

Zorro [22.08.2002 18:03:31]

#

Mitenkähän voisin tarkistaa visual basicilla että onko tekstikenttään laitettu päivämäärä muotoa dd.mm.yyyy?

Vox [23.08.2002 09:39:19]

#

IsDate() - funktiolla, joka palauttaa truen jos kyseessä on päivämäärä.
Esim. If Not IsDate(text1.text) Then MsgBox("Pvm ei kelpaa!")

Antti [23.08.2002 10:14:53]

#

...edellinen koodi ei tarkista onko päivämäärä muotoa dd.mm.yyyy, vaan tarkistaa onko kyseessä mikään päivämäärä.

Päivämäärien käpistely on joka tapauksessa melkoisen hankalaa koska on erilaisia päivämäärä formaatteja:
dd.mm.yyyy, mm/dd/yyyy, dd/mm/yyyy, mm-dd-yyyy, yyyy-mm-dd jne.

IsDate tarkistaa vain onko syötetty teksti mitään noista formaateista. Jos teksti tulee tallentaa tai muuten käsitellä kannattaa käyttää isdaten jälkeen format-komentoa.
Vähän seuraavaan tyyliin:

If IsDate(Text1.Text) Then
    Text1.Text = Format(Text1.Text, "dd.mm.yyyy")
Else
    MsgBox "Päivämäärä väärin muotoiltu!"
    Text1.Text = ""
    Text1.SetFocus
End If

Tämäkään ei ratkaise ongelmaa dd/mm/yyyy ja mm/dd/yyyy päivämäärämuotojen välillä.

Voit tietysti tarkistaa onko syötetyssä arvossa kaksi pistettä ja hyväksyä vain sen muodon:

If InStr(1, Text1.Text, ".") Then
'...
end if

Seuraava koodi tarkistaa onko syötetyssä arvossa pistettä ( yksikin piste riittää).

Joudun työkseni pähkäilemään noita ongelmia ja olen tullut siihen tulokseen, että on parasta käyttää DTpicker-activeX komponenttia, joka sisältyy kokoelmaan: "Microsoft Windows Common Controls - 2 (6.0)" (Project->Components ja rasti ruutuun "Microsoft Windows Common Controls - 2 (6.0)"-kohdalla ja OK)

Tällä voit pakottaa käyttäjän syöttämään aina päivämäärän, joka on oikeaa muotoa.

Zorro [23.08.2002 15:46:13]

#

Kiitos. Taas.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta