Miten saisin tarkistettu että käyttäjän syöttämät päivämäärä ja kellonaika ovat "käyttökelpoisia"? Tietokanta on toteutettu MySQL:llä. Ongelmana on että jos käyttäjä syöttää vahingossa päivämäärän tai kellonajan sellaisessa muodossa jota "ei ole olemassa" esim. päivämäärä 12.13.2004, tietokantaan tallentuu tyhjä päivämäärä (00.00.0000). Päivämäärä kenttä on pakollinen, ja tiedot tallentuvat ilman virheilmoituksia. Haettaessa tietoja tulee virhe, joka kaataa koko ohjelman. Tälläista ei saisi missään nimessä tapahtua, eli onko mitään keinoa jolla nuo muodot saisi testattua että ne ovat muodoltaan oikeanlaisia?
Tulipa hieman epäselvästi selitettyä, mielelläni tarkennan jos tarvitsee. Kiitos jo etukäteen! =)
Helpoiten menee tarkistuksella IsDate(päivämäärä) ennen kuin viet arvoa tietokantaan.
suosittelen lämpimästi valmiin kalenterin käyttöä jolloin ei voi mennä väärin...
Hoida asia vaikeimman kautta:
hae vaikka vb:n left ja mid funktioita käyttäen ensin päivämäärä muuttujaan ja sitten kuukausi.
Jos päivämäärä on isompi kuin 31 tai kuukauden arvo on suurempi kuin 12 niin annetaan virheilmoitus ja estetään tietokantaan kirjoitus.
linkit ko. funktioiden käyttöön:
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=Mid
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=Left
Parempi käyttää valmista funktiota, jos tuollainen IsDate kerran löytyy, niin varmasti ainakin toimii oikein. Sitten voi tietysti ruveta koodamaan merkkijonofunktioilla, jos ei tarvittavaa funktiota ole valmiina.
Valmiit funktiot eivät välttämättä tue haluttua tai useampia eri muotoja. Joskus on tarvetta sallia erilaisia tapoja syöttää päiväys, esim päivämäärä parissa eri muodossa ja lisäksi vaikka +/- X päivää.
Valmiin kalenterin käyttö on tehokas tapa estää virhesyötöt, mutta pidemmän päälle sen käyttö voi olla liian hankalaa.
Hmmm... onko Format-komento tuttu?
Aihe on jo aika vanha, joten et voi enää vastata siihen.