11. august 2005 - 14:15Der er
14 kommentarer og 1 løsning
InputBox vender dato forkert
Når jeg i InputBox taster 12/8 Vender datoen forkert, det bliver til 08-12-2005 med dens taldværdi 38694 i stedet for 38576.
Jeg har brugt følgende kode
Dim Tekst As String, X As Variant X = InputBox("Indtast Start Dato") If X = "" Then Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO" MsgBox Tekst Else '[iv18].Value = Format(TempDat, "ddmmyy") = X 'JEG HAR PRØVET MED DEN HER KODE [iv18].Value = X 'Her vender dage og måned forkert If [Iv17] < [iv18] Then MsgBox "Der er ikke noget at afgrænse" Exit Sub End If End If
X = InputBox("Indtast Start Dato") If X = "" Then Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO" MsgBox Tekst Else [iv18].Value = Format(X, "ddmmyy") 'JEG HAR PRØVET MED DEN HER KODE '[iv18].Value = X 'Her vender dage og måned forkert If [Iv17] < [iv18] Then MsgBox "Der er ikke noget at afgrænse" Exit Sub End If End If
Public Sub fs() Dim Tekst As String, X As Variant X = InputBox("Indtast Start Dato") If Not IsDate(X) Then Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO" MsgBox Tekst Else [iv18].Value = Format(X, "ddmmyy") 'JEG HAR PRØVET MED DEN HER KODE If [Iv17] < [iv18] Then MsgBox "Der er ikke noget at afgrænse" Exit Sub End If End If End Sub
Inputboxen har ikke noget "format" - det eneste den kan er at hente noget tekst.
Når du Dimmer så skriv hver variabel på sin egen linie Dim Tekst As String X As Date 'eller variant
Hvorfor beder du ikke bare brugeren om at skrive datoen på det format du vil anvende?
Alternativt, brug en form, hvor du kan validere hvad der bliver tastet - så kan man fx. taste måned for sig, dag for sig og år for sig. Derefter kombinere du det på den måde du vil...
PS: Du kan helt slippe for variablen text, ved bare at skrive MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO" ... det samme princip bruger du jo selv længere nede i koden
Dim Tekst As String, X As Variant, Dato As Date X = InputBox("Indtast Start Dato") If Not IsDate(X) Then MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO" Else D = Day(X) M = Month(X) Y = Year(X) Dato = D & "-" & M & "-" & Y [iv18].Value = Dato 'JEG HAR PRØVET MED DEN HER KODE If [Iv17] < [iv18] Then MsgBox "Der er ikke noget at afgrænse" Exit Sub
Dim Tekst As String, X As Variant, Dato As Date, D As Integer, M As Integer, Y As Integer X = InputBox("Indtast Start Dato") If Not IsDate(X) Then MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO" Else D = Day(X) M = Month(X) Y = Year(X) Dato = D & "-" & M & "-" & Y [iv18].Value = Dato 'JEG HAR PRØVET MED DEN HER KODE If [Iv17] < [iv18] Then MsgBox "Der er ikke noget at afgrænse" Exit Sub End If End If
kabbak jeg får en fejlmælding ved din kode. Men det var lige det her jeg manglede x = DateValue(InputBox("indtast en dato")) så virker det tusind tak bak. Hvis du ligger et svar får du dine point. Men også tusind tak til jer andre
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.