Moro.
Mitenköhän saisin muutettua päivämäärän muotoa? Tarkoitus olisi muuttaa "dd/mm/yyyy" -muodosta "yyyy/mm/dd"-muotoon.
Olen yrittänyt tälläisellä(+lukuisilla muilla) virityksillä:
Dim pvm As Date ' muutetaan tekstiboksin teksi päivämääräksi pvm = CDate(pvm1.Text) pvm = FORMAT(pvm, "yyyy/mm/dd")' tämä ei edes käänny
Mutta kuten olettaa saattaa, niin ei.
Sam76 kirjoitti:
pvm = FORMAT(pvm, "yyyy/mm/dd")' tämä ei edes käänny
Format palauttaa String tyyppisen tiedon, mutta pvm on määritelty Date-tyyppiseksi. Eli luonnollisesti tuollainen ei käänny.
Heippa Sam76!
kokeile vaikka näin...
Dim pvm As Date label1.Text = now.ToString pvm = CDate(label1.Text) label1.Text = Format(pvm, "yyyy/MM/dd").Replace(".","/") 'pvm = CDate(label1.Text)
Miksi tehdä tuurilla toimiva?
label1.Text = Format(pvm, "yyyy/MM/dd").Replace(".","/")
Kun voi tehdä varmasti toimivankin:
label1.Text = Format(pvm, "yyyy\/MM\/dd")
Kiitokset molemmille nopeasta vastauksesta.
Päivämäärä kääntyy nyt kyllä haluttuun muotoon tekstiboksissa mutta minun ongelmani ei ratkennut vieläkään.
Nolottaa myöntää mutta olen paininut tämän ongelman kanssa varmaan monta kuukautta(ja käynyt monta keskustelua) ja ikinä ei tunnu tulevan täysin valmista. :O
Yritän selittää nyt koko tilanteen. Elikkä minulla on seuraavanlaiset systeemit:
dim alku,loppu as date alku = cdate(pvm.text) loppu = cdate(pvm2.text) (pyydän tähän käyttäjältä päivämäärän)
Access2007 kanta jossa ks. sarakkeet muotoa pvm/klo
SQL-lause, johon tämä päivämäärä pitää sijoittaa:
"SELECT nimi, Sum(IIF(loma.loppu<='" & loppu & "' ,loma.loppu)-IIF(loma.alku>='" & alku & "',loma.alku)) as päivät FROM jne...
SQL-lause on tuossa epätäydellisenä mutta se toimii, jos
a) kirjoitan alku ja loppu muuttujat muotoon FORMAT('" & alku & "', 'yyyy-mm-dd')
b) kirjoitan päivämäärän kiinteästi SQL:ään muodossa #2009/01/01#
Haluaisin siis päästä tuosta SQL:n sisällä olevasta FORMAT()-funktiosta eroon ja muuttaa päivämäärän tuohon "yyyy/mm/dd"-muotoon jo koodissa. Mitenköhän sen tekis, kun edellä mainittut muokkaamisetkaan eivät auttaneet.
Auttakee ihmeessä, tää alakaa käyvä hermoon..:)
Dim alku, loppu As Date alku = CDate(pvm.Text) loppu = CDate(pvm2.Text) Dim AlkuSQL, LoppuSQL, Kysely As String AlkuSQL = Format(alku, "\#yyyy\-MM\-dd\#") LoppuSQL = Format(loppu, "\#yyyy\-MM\-dd\#") Kysely = "SELECT nimi, Sum(IIF(loma.loppu<=" & LoppuSQL & ",loma.loppu)-IIF(loma.alku>=" & AlkuSQL & ",loma.alku))"
Jippey, nyt toimii:D Kokeilin kyllä monenlaista muotoilua mutta näitä risuaitoja en kyllä olisi IKINÄ osannut laittaa mukaan.
Kiitos Grez (ja neau33 myös) kärsivällisestä ja hyvästä opastamisesta. Täytyy vaan ihmetellä, että miten jollain on näin laaja tietämys aiheesta...
ps. onko näin, että kun SQL:ään sijoitetaan muuttuja niin String-tyyppinen sijoitetaan tyyliin: '" & muuttuja1 & "' ja muut: " & muuttuja2 & "? Vai mikä noitten hipsujen(') funktio on?
Sam76 kirjoitti:
ps. onko näin, että kun SQL:ään sijoitetaan muuttuja niin String-tyyppinen sijoitetaan tyyliin: '" & muuttuja1 & "' ja muut: " & muuttuja2 & "? Vai mikä noitten hipsujen(') funktio on?
Tuo on VB.Net:iä, ei SQL:ää. Siitähän tulee siis seuraavan näköinen SQL-lause:
SELECT nimi, Sum(IIF(loma.loppu<=#2009-05-01#,loma.loppu)-IIF(loma.alku=>#2009-04-10#,loma.alku))
'-merkkejä käytetään SQL:ssä ei-numeerisen tiedon ilmaisemiseen. Useimmissa SQL-variaatioissa '-merkkejä käytetään myös päivämäärille ja kellonajoille, mutta Accessissa on omanlaisensa tapa käyttää #-merkkejä.
Ja VB:ssä & tarkoittaa merkkijonojen yhdistämistä ja + numeroiden yhdistämistä. Olen tässä nyt macilla niin en ala tutkimaan miten tuo VB.Netissä menee, mutta ainakin VB6:ssa "7"+"3" tuottaa 10, kun "7"&"3" tuottaa "73"
Kiitos ohjeistuksesta.
Grez kirjoitti:
Ja VB:ssä & tarkoittaa merkkijonojen yhdistämistä ja + numeroiden yhdistämistä. Olen tässä nyt macilla niin en ala tutkimaan miten tuo VB.Netissä menee, mutta ainakin VB6:ssa "7"+"3" tuottaa 10, kun "7"&"3" tuottaa "73"
Kokeilin ks. asiaa ja se on juuri kuten sanoit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.