Avatar billede fimo Seniormester
19. maj 2023 - 16:09 Der er 9 kommentarer og
1 løsning

Dato format i access ?

Hej igen,

Kom til at tænke på hvordan jeg kan lave et dato indtastnings felt i access form
hvor man feks kan skrive denne type dato format 19052023
og så laver access det selv om til feks 19-05-2023 efter jeg har opdateret feltet,

er det muligt at gøre / og hvordan :)
Avatar billede Gustav Ekspert
19. maj 2023 - 16:25 #1
Du kan lade brugerne indtaste i en ubundet tekstboks.
Når den opdateres, så split teksten i år-måned-dato og put værdierne i DateSerial:
TextDato = "19052023"

Dim TrueDate As Date

TrueDate = DateSerial(Mid(TextDato, 5, 4), Mid(TextDato, 3, 2), Mid(TextDato, 1, 2))
' Sæt værdien af den (skjulte) tekstbox bundet til dit datofelt:
Me!DitDatoFelt.Value = TrueDate

' Debug:
? TrueDate
19-05-2023
Avatar billede Gustav Ekspert
19. maj 2023 - 16:27 #2
Avatar billede fimo Seniormester
19. maj 2023 - 18:50 #3
Tusind tak Gustav for det hurtige svar og jeg vil teste i løbet af weekenden :)
Avatar billede fimo Seniormester
22. maj 2023 - 11:10 #4
Hej igen,

Og endnu engang tak for din hjælp og undskyld at jeg er på et niveau langt langt under dit niveau og ikke er lige så dygtig til at forstå din hjælp
og jeg prøvede at downloade det eks zip fil fra dit link du gav mig men uden helt at blive klogere....

Men jeg har lavet en ubundet tekstboks i min form og kopieret din kode ind her (som jeg desværre ikke forstå, så jeg bliver bare nødt til at copy,paste)
men jeg tror ikke det er rigtigt det jeg gør,  da jeg får en fejl + jeg ved ikke helt hvordan jeg skal gøre efter jeg har lavet en ubundet tekstboks og så bagefter lave en "split teksten i år-måned-dato og put værdierne i DateSerial" ?
kan godt forstå hvis du ikke har tid til at hjælpe mig men håber :)
https://postimg.cc/145NCdvv
Avatar billede Gustav Ekspert
22. maj 2023 - 14:40 #5
Først, omdøb din textbox til noget meningsfuldt, fx: TextDato
Dernæst forsøg med denne kode:
Private Sub TextDato_AfterUpdate()

    Dim TrueDate As Date

    If Len(Nz(Me!TextDato.Value)) = 8 Then
        ' Ignorer fejlindtastninger.
        On Error Resume Next

        TrueDate = DateSerial(Mid(Me!TextDato.Value, 5, 4), Mid(Me!TextDato.Value, 3, 2), Mid(Me!TextDato.Value, 1, 2))
        ' Sæt værdien af den (skjulte) tekstbox bundet til dit datofelt:
        Me!DitDatoFelt.Value = TrueDate
    End If

End Sub
Avatar billede fimo Seniormester
25. maj 2023 - 10:07 #6
Hej igen,

Tak endnu engang for din tid, at du vil prøve at hjælpe mig men jeg har forsøgt via denne kode + kigget på youtube og kan desværre ikke få det til at virke efter hensigten og det er bare mig som endnu ikke har fattet 100% disse løsninger men må lige spørge igen for at se hvad jeg gør forkert, jeg har nu startet en ny TEST acccess database kun med dato feltet for at se om det kan hjælpe mig:
Så nu har jeg gjort dette:
https://postimg.cc/gallery/15xmgBJ
men ved ikke om jeg skal ændre noget i din kode = det med gult / hvad jeg ect skal rette der, for med ovennævnte procedure, sker der ikke noget når jeg skriver et dato felt feks 25052023....
Avatar billede Gustav Ekspert
25. maj 2023 - 10:29 #7
De gule linjer er blot kommentarlinjer. De kan ændres/slettes, som du ønsker.

Den konverterede dato skrives til din tekstboks (som jeg ikke kan få øje på).
I koden kaldes denne DitDatoFelt, men det kan ændres til noget andet. Den skal være bundet til tabellens datofelt.
Avatar billede fimo Seniormester
25. maj 2023 - 10:48 #8
Hej igen Gustav, jeg tester lige med det samme og ser hvad jeg får af nye sjove meddelser :) men tak igen for din tålmodighed med mig....
Avatar billede fimo Seniormester
25. maj 2023 - 10:54 #9
YES YES YES !!!!

Det virker - tusind tusind tak for alt din hjælp :)
Avatar billede Gustav Ekspert
25. maj 2023 - 11:04 #10
Glimrende - og 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

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