Gå til innhold

Datofelt fungerer bare på norsk regionoppsett.


Anbefalte innlegg

Har et lite problem med noen datofelt.

 

Feltene blir hentet fra date-felt i en access database. Der er de lagret med dd.mm.yyyy.

 

Dette fungerer greit så lenge maskinen er satt opp med "Norwegian" under "Standards and Formats".

 

Setter jeg denne til "English (UK)" feiler programmet når dette skjermbildet vises. (Runtime error 13.)

 

Hvordan løser jeg enklest dette?

 

Datofeltet kan også endres av brukeren av programmet, og jeg har en enkel sjekk på feltet.

 

Private Sub txtoppstart_KeyPress(KeyAscii As Integer)
   Dim strGyldig As String
   strGyldig = "0123456789./"
   If KeyAscii > 26 Then
       If InStr(strGyldig, Chr(KeyAscii)) = 0 Then
           KeyAscii = 0
           Beep
       End If
   End If
End Sub

 

Jeg har også en sjekk på om datoen er riktig.

 

Private Sub txtoppstart_validate(Cancel As Boolean)
   
   Dim blnErDato As Boolean
   Dim IntSvar As Integer
   ' Undersøker om datoen er OK.
    blnErDato = IsDate(txtoppstart)
   ' Setter inn årstall hvis dette mangler i datoen.
   If blnErDato And Len(txtoppstart) < 6 Then
        txttxtoppstart = CDate(txtoppstart.Text)
   End If
   ' Avbryter hvis datoen er feil.
   If Not blnErDato Then
       IntSvar = MsgBox("Feil dato. Vil du endre nå?", _
                 vbInformation + vbYesNo, "Test")
       If IntSvar = vbYes Then
           ' Merker dataene som er registrert feil.
           With txtoppstart
               .SelStart = 0
               .SelLength = Len(txtoppstart)
           End With
           Cancel = True
       Else
           txtoppstart = ""
       End If
   End If

End Sub

 

edit:

Ved nærmere debugging:

 

blnErDato = IsDate(txtoppstart)

 

Denne er FALSE, når txtoppstart er på formen 01.01.2006.

 

Selv om jeg skriver inn på formen 01/01/2006 blir denne gjort om til 01.01.2006 av seg selv for så å feile...

 

Strange...

 

edit igjen:

Hvar formatet i property sheeten til feltet som ikke var oppdatert. Dette sto til dd.mm.dd. Så nå fungerer det jo på engelsk, men nå vil vel ikke norske innstillinger fungere?

 

Dette løser jeg kanskje med å bruke no replace funksjon på . eller / ??

 

Enda en edit:

Faktisk løste det seg bare jeg satte formatet på datofeltene til dd/mm/yyyy.

Da blir det dd.mm.yyyy på norsk og dd/mm/yyyy på engelsk.

 

Så da har jeg vel egentlig løst det selv. :w00t:

Endret av [space]
Lenke til kommentar
  • 2 måneder senere...
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...