Moi!
Osaako kukaan kertoa, että miksi Visual Basic ei tunnista tietokannasta haettua kellonaikaa?
Tietokantaan on tallennettu kellonaika muodossa hh:mm:ss. Kun kellonaikaa yrittää sijoittaa muuttujaan saadaan virheilmoitus "Invalid use of Null". SQL-lause on toimiva ja muut tiedot tietokannasta voidaan tallentaa muuttujiin normaalisti. Missäköhän mahdollisesti on vika?
Kiitos!
laitatko koodin pätkän jolla sijoitat kellon ajan muuttujaan.
Select lause on seuraavanlainen:
Set adTietue=Yhteys.Execute("SELECT nimi, paivamaara, kellonaika FROM taulu")
Muuttujaan sijoitus:
MuuttujaKello=adTietue("kellonaika")
Kaikki muut tiedot menevät muuttujiin samallaisilla sijoituslauseilla.
Kokeile castata se: MuuttujaKello=CDate(adTietue("kellonaika"))
Olettaen että versio oli VB6?
Joo, kyllä on VB6, mutta ei toiminut. Antaa edelleen saman ilmoituksen.
"Invalid Use of null" - tarkoittaa että kannasta luettu arvo on tyhjä. vältät sen kirjoittamalla:
If Not isNull(adTietue("kellonaika")) Then MuuttujaKello=CDate(adTietue("kellonaika")) End If ' Tai If isDate(adTietue("kellonaika")) Then MuuttujaKello=CDate(adTietue("kellonaika")) End If
Tuo poistaa virheilmoituksen, mutta ei silti näytä kannassa olevia tietoja. Jostain syystä VB ei tunnista kannassa olevia kellonaikoja, joiden tyyppi on TIME, vaikka esimerkiksi DATE-tyyppiset päivämäärät tunnistaa.
Kokeilehan laittaa se kellonaika stringiin ja katso lukeeko siinä mitään. Jos lukee, niin sitten se kellonajaksi muuttaminen bugaa, jos ei lue, niin sitten joku bugaa vähän pahemmin (siinä tapauksessa haet tietokannasta tyhjää, eli kannattaa tarkistaa esim. muuttujien oikeinkirjoitus)
Aihe on jo aika vanha, joten et voi enää vastata siihen.