Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ACCESS zmiana formatu daty - obcięcie czasu

Julka M 07 Sie 2010 12:36 3997 4
  • #1 07 Sie 2010 12:36
    Julka M
    Poziom 9  

    Mam na formularzy pole niezwiązanie do którego przypisałam funkcję :
    =FileDateTime("c:\nazwa_pliku.xls")

    i jest o'k pięknie działa ale muszę tę datę porównać z datą dzisiejszą - Date() (potrzebne do warunku, od tego uzależnione są dalsze kroki użytkownika bazy) i tu mam problem gdyż funkcja FileDateTime zwraca datę z godziną czyli powinnam zmienić format, wpisałam coś takiego:

    =format(date(FileDateTime("c:\nazwa_pliku.xls")),"dd mm rrrr") - nie działa

    znalazłam w podpowiedziach cos takiego:
    =Format(Date(),"d mmmm rrrr")

    nie mam pojęcia dlaczego jest 4 razy m ale to nie ważne ja bym wstawiła "dd mm rrrr" a nie "d mmmm rrrr" - no dobra nie będe u.......a :( spróbuję też nie "łyka"

    gdzieś mam błąd - za dużo nawiasów?

    Bardzo proszę o podpowiedź
    Julka :))

    0 4
  • #2 07 Sie 2010 13:44
    Dżyszla
    Poziom 42  

    Po pierwsze, to baza danych przyjmując daty akceptuje określone jej formaty. Prawdopodobnie, jeśli dzielisz spacją, to jest szansa na dopuszczenie daty z nazwą miesiąca (stąd 4m). Jeśli chcesz się posłużyć liczbami, to oddziel je separatorem daty (będzie to albo myślnik albo kropka albo ukośnik / stosowany głównie dla zapisów amerykańskiego formatu).

    Tak przy okazji - d - dzień bez zera wiodącego, dd - dzień z zerem, ddd - skrót nazwy dnia tygodnia, dddd - nazwa dnia tygodnia. Te same zasady odnoszą się do m.

    Ale wracając do bazy - dlaczego po prostu nie zastosujesz kolumny datowej zamiast dato-czasowej? Nie jest przypadkiem tak, że format określony na datę odrzuci godzinę? (ale na Accessie nie pracuję, więc mogę się mylić).

    0
  • #3 07 Sie 2010 14:50
    Julka M
    Poziom 9  

    Hej dzięki za odpowiedź (zaraz pokombinuję). Nie stosuję żadnej kolumny - bo mi nie jest potrzebny zapis tej daty. "Pokazuję" tylko na formularzu ostatnią datę aktualizacji tego pliku xls i jeżeli jest to data dzisiejsza to użytkownik bazy przechodzi do formularza by rozpocząć rejestrację jeżeli nie jest to data dzisiejsza to powinien - przed rejestracja, zaktualizować podłączony do bazy plik xls.
    Data tego pliku jest datą systemową (datą zapisu - długą z minutami i niestety w tym przypadku zawsze będzie się różnić się od daty w momencie otwarcia bazy. Nie wiem może jakoś inaczej można rozwiązać to "sprawdzanie" czy podłączony plik xls jest plikiem dzisiejszym czyli z aktualnymi danymi :(

    0
  • Pomocny post
    #4 07 Sie 2010 15:20
    adamas_nt
    Moderator Programowanie

    Przy porównywaniu łańcucha (a taki zwraca funkcja format) z datą systemową może być różnie na różnych komputerach. Dlatego najlepiej wykorzystać funkcję zwracającą datę. Np

    Code:
    Dim a As Date, b As Date, dtPliku As Date
    
    dtPliku = FileDateTime("c:\nazwa_pliku.xls")
    a = DateSerial(Year(dtPliku), Month(dtPliku), Day(dtPliku))
    b = Date
    If a = b Then MsgBox "Daty są równe"

    0
  • #5 07 Sie 2010 18:06
    Julka M
    Poziom 9  

    Dzięki działa a co najważniejsze rozumiem to co napisałeś :) Znowu mi pomogłeś :)

    0