Przejdź do głównej zawartości

Funkcje konwersji typów

Każda funkcja wymusza wyrażenie do konkretnego typ danych.

Składnia

CBool ( wyrażenie )

CByte ( wyrażenie )

CCur ( wyrażenie )

CDate ( wyrażenie )

CDbl ( wyrażenie )

CDec ( wyrażenie )

CInt ( wyrażenie )

CLng ( wyrażenie )

CSng ( wyrażenie )

CStr ( wyrażenie )

Cvar ( wyrażenie )

Wymaganym wyrażeniemargument jest dowolny wyrażenie tekstowe lub wyrażenie numeryczne.

Typy zwracane

Nazwa funkcji określa typ zwracany, jak pokazano w poniższej tabeli:

Funkcja

Typ zwracany

Zakres dla wyrażenie argument

CBool

wartość logiczna

Dowolny prawidłowy ciąg lub wyrażenie liczbowe.

CByte

Bajt

0 do 255.

CCur

Waluta

-922 337 203 685 477,5808 do 922 337 203 685 477,5807.

CDate

Data

Dowolne prawidłowe wyrażenie daty.

CDbl

Double

-1.79769313486231 79769313486232E308
-94065645841247E e-324 dla wartości ujemnych; 94065645841247E e-324 do 1 79769313486232E308 79769313486232E308 dla wartości dodatnich.

CDec

Decimal

+/-79228162514264337593543950335 dla liczb o skali zero, czyli liczb bez miejsc dziesiętnych. W przypadku liczb z 28 miejscami dziesiętnymi zakresem jest
+/-7.9228162514264337593543950335. Najmniejsza możliwa liczba niezerowa jest równa 0,0000000000000000000000000001.

CInt

Liczba całkowita

-32 768 do 32 767; Ułamki są zaokrąglane.

CLng

Jakim

-2 147 483 648 do 2 147 483 647; Ułamki są zaokrąglane.

CSng

Single

-3 402823E38 402823E38-401298E E-45 dla wartości ujemnych; 401298E e-45 do 3 402823E38 402823E38 dla wartości dodatnich.

CStr

Ciąg

Zwraca wartość dla CStr zależną od argumentu wyrażenie .

CVar

Elementu

Ten sam zakres co w przypadku podwójnej precyzji dla liczb. Ten sam zakres co w przypadku ciągu dla danych nieliczbowych.

Spostrzeżenia

Jeśli wyrażenie przekazane do funkcji znajduje się poza zakresem typu danych, do którego jest konwertowany, wystąpi błąd.

Ogólnie rzecz biorąc, możesz udokumentować kod za pomocą funkcji konwersji typu danych, aby pokazać, że wynik działania niektórych operacji powinien być określony jako typ danych, a nie jako domyślny typ danych. Na przykład za pomocą CCur można wymusić walutę arytmetyczną w przypadkach, gdy wystąpi błąd jednoprecyzji, Podwójna precyzja lub liczba całkowita arytmetyczna.

Funkcji konwersji typu danych należy używać zamiast Val , aby zapewnić możliwość konwersji z jednego typu danych na międzynarodowy. Jeśli na przykład używasz funkcji CCur, różne Separatory dziesiętne, różne separatory tysięcy i różne opcje walutowe są rozpoznawane prawidłowo w zależności od ustawień regionalnych komputera.

Gdy część ułamkowa jest dokładnie 0,5, funkcja CInt i CLng zawsze zaokrąglamy ją do najbliższej liczby parzystej. Na przykład 0,5 zaokrągla liczbę do 0, a 1,5 zaokrągla do 2. Funkcja CInt i CLng różni się od funkcji Fix i int , które obcinają częoć ułamkową liczby. Ponadto poprawka i int zawsze zwracają wartość tego samego typu jak przekazano.

Użyj funkcji ISDATE , aby określić, czy Data może być konwertowana na datę lub godzinę. W polu CDate są rozpoznawane literały dat i literały czasu oraz liczby mieszczące się w zakresie dopuszczalnych dat. Podczas konwertowania liczby na datę jest ona konwertowana na datę. Częoć ułamkowa liczby jest konwertowana na godzinę, począwszy od północy.

CDate rozpoznaje formaty dat zgodnie z ustawieniami ustawienia regionalne systemu. Właściwa kolejność dni, miesięcy i lat nie może zostać określona, jeśli jest podana w formacie innym niż jedno z rozpoznanych ustawień daty. Ponadto nie jest rozpoznawany format daty długiej, jeśli zawiera również ciąg dni tygodnia.

Funkcja CVDate jest również dostępna w celu zachowania zgodności z poprzednimi wersjami języka Visual Basic. Składnia funkcji CVDate jest identyczna z funkcją CDate , jednak CVDate zwraca wartość typu Variant , której podtyp jest datą , a nie rzeczywistym typem daty . Ponieważ obecnie jest to wewnętrzny typ daty , nie trzeba jeszcze CVDate. Ten sam efekt można osiągnąć, konwertując wyrażenie na datę, a następnie przypisując je do wariantu. Ta technika jest zgodna z konwersją wszystkich innych typów wewnętrznych na ich równoważne podtypy wariantów .

Uwaga:  Funkcja CDec nie zwraca dyskretnego typu danych; Zamiast tego funkcja zawsze zwraca wartość typu Variant , której wartość została przekonwertowana na podtyp dziesiętny .

Przykłady zapytań

Wyrażenie

Wyniki

Wybierz SalePrice, FinalPrice, CBool (SalePrice>FinalPrice) jako Wyr1 z productSales;

Zwraca wartość "SalePrice", "FinalPrice" i ocenia, czy SalePrice jest wyższa od ceny końcowej. Zwraca wartość "-1", jeśli prawda, a "0", Jeśli FAŁSZ.

Wybierz ProductID, CByte (ilość) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", konwertuje wartości w polu "ilość" na format Bytes i wyświetla w kolumnie Wyr1 zwraca wartość "ProductID", konwertuje wartości w polu "ilość" na format walutowy i wyświetla w kolumnie Wyr1.

Wybierz pozycję ProductID, CDate (DateofSale) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", konwertuje wartości w polu "DateofSale" na format daty i wyświetla w kolumnie Wyr1.

Wybierz ProductID, CDbl (dyskonto) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", konwertuje wartości w polu "rabat" na format podwójny i wyświetla w kolumnie Wyr1.

Wybierz ProductID, CInt (dyskonto) jako Wyr1 z productSales;

Zwraca ciąg "IDProduktu", konwertuje wartości w polu "Discount" na format liczby całkowitej i wyświetla w kolumnie Wyr1.

Wybierz ProductID, CLng (dyskonto) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", konwertuje wartości w polu "rabat" na format długi, a następnie wyświetla w kolumnie Wyr1.

Wybierz ProductID, CSng (dyskonto) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", przelicza wartości w polu "rabat" na jeden format i wyświetla w kolumnie Wyr1.

Wybierz ProductID, CStr (dyskonto) jako Wyr1 z productSales;

Zwraca ciąg "ProductID", konwertuje wartości w polu "rabat" na format ciągu i wyświetla w kolumnie Wyr1.

Wybierz ProductID, CVar (dyskonto) jako Wyr1 z productSales;

Zwraca wartość "ProductID". konwertuje wartości w polu "rabat" na wartość podwójna w przypadku wartości liczbowych i ciągu dla wartości nieliczbowych.

Przykłady języka 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.

Funkcja CBool

Porada:  Konstruktor wyrażeń z funkcją IntelliSense zaczynającą się od programu Access 2010 ułatwia uzyskiwanie wyrażeń z prawej strony.

W tym przykładzie użyto funkcji CBool . Jeżeli w celu przekonwertowania wyrażenia na wartość logiczną. Jeśli wynikiem wyrażenia jest wartość niezerowa, CBool zwraca wartość prawda; w przeciwnym razie zwraca wartość FAŁSZ.

Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.

Funkcja CByte

W tym przykładzie użyto funkcji CByte w celu przekonwertowania wyrażenia na bajt.

Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.

CCur, funkcja

W tym przykładzie użyto funkcji CCur w celu przekonwertowania wyrażenia na walutę.

Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).

Funkcja CDate

W tym przykładzie użyto funkcji CDate w celu przekonwertowania ciągu na datę. Ogólnie, daty i godziny w postaci ciągów znaków (jak pokazano w tym przykładzie) nie są zalecane. Użyj literałów dat i literałów czasu, takich jak #2/12/1969 # i #4:45:23 PM #.

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)

Funkcja CDbl

W tym przykładzie użyto funkcji CDbl . Jeżeli w celu przekonwertowania wyrażenia na wartość typu Podwójna precyzja.

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

Funkcja CDec

W tym przykładzie użyto funkcji CDec w celu przekonwertowania wartości liczbowej na liczbę dziesiętną.

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.

Funkcja CInt

W tym przykładzie użyto funkcji CInt w celu przekonwertowania wartości na liczbę całkowitą.

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.

Funkcja CLng

W tym przykładzie użyto funkcji CLng w celu przekonwertowania wartości na wartość typu Long.

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

Funkcja CSng

W tym przykładzie użyto funkcji CSng w celu przekonwertowania wartości na wartość typu Single.

Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

Funkcja CStr

W tym przykładzie użyto funkcji CStr w celu przekonwertowania wartości liczbowej na ciąg.

Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

Funkcja CVar

W tym przykładzie użyto funkcji cvar . Jeżeli w celu przekonwertowania wyrażenia na wartość typu Variant.

Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.

Uwaga:  Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Czy możesz dać nam znać, czy te informacje były pomocne? Oto angielskojęzyczny artykuł do wglądu.

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×