Avatar billede larslard Nybegynder
03. juli 2007 - 10:58 Der er 6 kommentarer og
1 løsning

Dato problemmer!

Jeg har følgende kode stykke, som tager dags dato og ligger en måned og 5 dage til datoen. Det virker egentlig fint nok, men ikke på alle datoer. Hvis vi fx har dags dato. Mit input til koden er: "030707" og det er i den samme format jeg skal have det ud i. Den laver beregningen korrekt, men den sidste linie
"xD1 = Val(Format(Dato2, "ddmmyy"))" kommer den ud som "80807" her skal jeg bruge "080807". Men det virker nu hvis datoen var den "120707", så vil jeg få "170807" men det er nullet den ikke kan håndtere. Kan nogle hjælpe med denne nok simple opgave?

Public Function DatoogenMåned(ByVal strOrdreDato As String) As String

Dim Dato1 As Date, Dato2 As Date, xD0 As String, xD1 As Variant
    xD0 = CStr(strOrdreDato)
'Rem konverter til datoformat
    Dato1 = Left(xD0, 2) + "-" + Mid(xD0, 3, 2) + "-" + Right(xD0, 2)
'Rem Forøg måned med 1
    Dato2 = DateAdd("m", 1, Dato1)
'Rem Forøg dag med 5
    Dato2 = DateAdd("d", 5, Dato2)
'Rem ren numerisk
    xD1 = Val(Format(Dato2, "ddmmyy"))
    DatoogenMåned = xD1
   
End Function
Avatar billede terry Ekspert
03. juli 2007 - 11:15 #1
Numerical fields dont start with 0. So if xD1 is datatype long (for example) you wont see leading 0's
Avatar billede larslard Nybegynder
03. juli 2007 - 11:17 #2
Which datatype should i then use?
Avatar billede terry Ekspert
03. juli 2007 - 11:46 #3
Ah! Sorry didnt see xD1 As Variant

You can try altering it to string and if that doest work try

xD1 = Format(Dato2, "ddmmyy")
Avatar billede terry Ekspert
03. juli 2007 - 11:46 #4
maybe try xD1 = Format(Dato2, "ddmmyy") first
Avatar billede terry Ekspert
03. juli 2007 - 11:58 #5
Yes Format(Dato2, "ddmmyy") works.

the Val function returns a numeric value of appropriate type!
Avatar billede larslard Nybegynder
03. juli 2007 - 12:06 #6
It works, thank you.
Avatar billede terry Ekspert
03. juli 2007 - 12:11 #7
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester