Zwraca wartość typu wariant (ciąg) zawierającą wyrażenie sformatowaną zgodnie z instrukcjami zawartymi w wyrażeniu formatu.
Ostrzeżenie Występuje problem z używaniem tej funkcji. Ostatni poniedziałek w niektórych latach kalendarzowych można zwrócić jako tydzień 53, kiedy powinien to być tydzień 1. Aby uzyskać więcej informacji i obejść ten problem, zobacz Funkcje Format lub DatePart mogą zwracać nieprawidłowy numer tygodnia dla ostatniego poniedziałku w roku. |
Składnia
Format( wyrażenie [, format ] [, pierwszy_dzień tygodnia ] [, pierwszy_tydzień_roku ] )
W składni funkcji Format występują następujące argumenty:
Argument |
Opis |
wyrażenie |
Argument wymagany. Dowolne prawidłowe wyrażenie. |
format |
Argument opcjonalny. Prawidłowe nazwane lub zdefiniowane przez użytkownika wyrażenie formatu. |
Firstdayofweek |
Argument opcjonalny. stała określająca pierwszy dzień tygodnia. |
firstweekofyear |
Argument opcjonalny. Stała określająca pierwszy tydzień roku. |
Ustawienia
Argument formatu może korzystać z różnych ustawień, w zależności od typu danych argumentu wyrażenia . Aby uzyskać więcej informacji na temat prawidłowych wyrażeń formatu, zapoznaj się z artykułami wymienionymi w poniższej tabeli.
W przypadku wyrażeń używających tego typu danych... |
Zobacz artykuł |
Dowolny typ |
|
Data/godzina |
|
Liczba |
|
Tekst i nota |
|
Tak/Nie |
Argument pierwszy_dzień_tygodnia zawiera następujące ustawienia:
Stała |
Value (Wartość) |
Opis |
vbUseSystem |
0 |
Użyj ustawienia interfejsu API NLS. |
VbSunday |
1 |
Niedziela (domyślnie) |
vbMonday |
2 |
Poniedziałek |
vbTuesday |
3 |
Wtorek |
vbWednesday |
4 |
Środa |
vbThursday |
5 |
Czwartek |
vbFriday |
6 |
Piątek |
vbSaturday |
7 |
Sobota |
Argument pierwszy_tydzień_roku ma następujące ustawienia:
Stała |
Value (Wartość) |
Opis |
vbUseSystem |
0 |
Użyj ustawienia interfejsu API NLS. |
vbFirstJan1 |
1 |
Rozpocznij od tygodnia, w którym występuje 1 stycznia (domyślnie). |
vbFirstFourDays |
2 |
Zacznij od pierwszego tygodnia, który ma co najmniej cztery dni w roku. |
vbFirstFullWeek |
3 |
Zacznij od pierwszego pełnego tygodnia roku. |
Spostrzeżenia
Aby sformatować |
Czynności |
Cyfry |
Użyj wstępnie zdefiniowanych nazwanych formatów liczbowych lub utwórz zdefiniowane przez użytkownika formaty liczbowe. |
Daty i godziny |
Użyj wstępnie zdefiniowanych nazwanych formatów daty/godziny lub utwórz formaty daty/godziny zdefiniowane przez użytkownika. |
Liczba kolejna daty i godziny |
Użyj formatów daty i godziny lub formatów liczbowych. |
Ciągi |
Utwórz własne formaty ciągów zdefiniowane przez użytkownika. |
Jeśli próbujesz sformatować liczbę bez określania formatu, funkcja Format udostępnia funkcje podobne do funkcji Str , chociaż jest świadoma na arenie międzynarodowej. Liczby dodatnie sformatowane jako ciągi przy użyciu formatu nie zawierają jednak spacji wiodącej zarezerwowanej dla znaku wartości. przekonwertowane przy użyciu str zachowują wiodącą przestrzeń.
W przypadku formatowania nielokalizacji ciągu liczbowego należy użyć zdefiniowanego przez użytkownika formatu liczbowego, aby uzyskać odpowiedni wygląd.
Uwaga: Jeśli ustawieniem właściwości Kalendarz jest gregoriański, a format określa formatowanie daty, podane wyrażenie musi być gregoriańskie. Jeśli ustawieniem właściwości Kalendarz języka Visual Basic jest Hidżry, podanym wyrażeniem musi być Hidżry.
Jeśli kalendarz jest gregoriański, znaczenie symboli wyrażeń formatowania pozostaje niezmienione. Jeśli kalendarz to Hidżry, wszystkie symbole formatu daty (na przykład dddd, mmmm, rrrr) mają to samo znaczenie, ale mają zastosowanie do kalendarza Hidżry. Symbole formatu pozostają w języku angielskim; symbole powodujące wyświetlanie tekstu (na przykład AM i PM) wyświetlają ciąg (angielski lub arabski) skojarzony z tym symbolem. Zakres niektórych symboli zmienia się, gdy kalendarz to Hidżry.
Symbol |
Zakres |
d |
1-30 |
dd |
1-30 |
ww |
1-51 |
mmm |
Wyświetla nazwy pełnych miesięcy (nazwy miesięcy Hidżry nie mają skrótów). |
y |
1-355 |
rrrr |
100-9666 |
Przykłady
Używanie funkcji Format w wyrażeniu Formatuj można używać wszędzie tam, gdzie można używać wyrażeń. Można go na przykład użyć w zapytaniu jako części aliasu pola lub we właściwości Źródło kontrolki pola tekstowego w formularzu lub raporcie. W poniższych przykładach pokazano wyrażenie, którego można użyć we właściwości Filter raportu, aby ograniczyć dane wyjściowe do rekordów z poprzedniego tygodnia.
Format([Data]"ww")=Format(Now(),"ww")-1
W tym przykładzie źródło rekordów raportu zawiera pole o nazwie Data, które zawiera datę modyfikacji każdego konkretnego rekordu i używane w raporcie. Po uruchomieniu raportu jego wyniki są filtrowane w celu pokazania tylko tych rekordów, w których tydzień wartości w polu Data (Format([Data];"ww")) jest równy poprzedniemu tydzieńowi (Format(Now(),"ww")-1).
Używanie funkcji Format w kodzie VBA
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie przedstawiono różne zastosowania funkcji Format do formatowania wartości przy użyciu zarówno formatów nazwanych, jak i formatów zdefiniowanych przez użytkownika. W przypadku separatora daty (/), separatora godziny (:) i literału AM/PM rzeczywiste sformatowane dane wyjściowe wyświetlane przez system zależą od ustawień regionalnych komputera, na którym działa kod. Gdy godziny i daty są wyświetlane w środowisku deweloperskim, używany jest format krótkiego i krótkiego formatu daty ustawień regionalnych kodu. Podczas wyświetlania przez uruchomienie kodu używane są format krótkiego czasu i format daty krótkiej ustawień regionalnych systemu, które mogą różnić się od ustawień regionalnych kodu. W tym przykładzie przyjęto ustawienia regionalne języka angielskiego (Stany Zjednoczone).
MyTime i MyDate są wyświetlane w środowisku deweloperskim przy użyciu bieżącego ustawienia krótkiego czasu systemu i daty krótkiej.
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23# MyDate = #January 27, 1993# ' Returns current system time in the system-defined long time format. MyStr = Format(Time, "Long Time") ' Returns current system date in the system-defined long date format. MyStr = Format(Date, "Long Date") MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23". MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM". MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday, ' Jan 27 1993". ' If format is not supplied, a string is returned. MyStr = Format(23) ' Returns "23". ' User-defined formats. MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40". MyStr = Format(334.9, "###0.00") ' Returns "334.90". MyStr = Format(5, "0.00%") ' Returns "500.00%". MyStr = Format("HELLO", "<") ' Returns "hello". MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
Używanie formatu z ciągami znaków o zerowej długości
W programie Microsoft Access w wersji 2.0 lub starszej można użyć funkcji Format , aby zwrócić jedną wartość dla ciąg znaków o zerowej długości, a drugą dla wartości. Możesz na przykład użyć wyrażenia formatu, takiego jak poniższe z funkcją Format, aby zwrócić odpowiednią wartość ciągu z kodu:
Dim varX As Variant
Dim varStrX As Variant ' Assign some value to varStrX and pass to Format function. varX = Format(varStrX, "@;ZLS;Null")
W programie Microsoft Access w wersji 97 lub nowszej należy oddzielnie sprawdzić wielkość liter null , a następnie zwrócić odpowiednią wartość na podstawie wyniku. Funkcji IIf można na przykład użyć w wyrażeniu z funkcją Format , na przykład:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
Ta zmiana ma zastosowanie tylko wtedy, gdy za pomocą funkcji Format sformatujesz ciąg w zależności od tego, czy jest to ciąg o zerowej długości, czy wartość Null. Inne wyrażenia formatu używane z funkcją Format nadal działają tak samo jak w poprzednich wersjach.
Jeśli przekonwertujesz bazę danych z programu Microsoft Access w wersji 2.0 i wcześniejszej na program Microsoft Access 2002 lub nowszą, musisz zmienić kod, aby testować oddzielnie wielkość liter Null.