Każda funkcja konwertuje wyrażenie na określony typ danych.
Składnia
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
Wymaganym expression argumentem jest dowolny ciąg lub wyrażenie liczbowe.
Zwracane typy
Nazwa funkcji określa zwracany typ, jak pokazano w poniższej tabeli:
| Funkcja | Zwracany typ | Zakres argumentu expression |
|---|---|---|
CBool |
Boolean |
Dowolne prawidłowe wyrażenie ciągu lub wyrażenie liczbowe. |
CByte |
Byte |
0 do 255. |
CCur |
Currency |
-922,337,203,685,477.5808 do 922,337,203,685,477.5807. |
CDate |
Date |
Dowolne prawidłowe wyrażenie daty. |
CDbl |
Double |
-1.79769313486231E308 To (Do -4.94065645841247E-324 w przypadku wartości ujemnych) i 4.94065645841247E-324 To (Do 1.79769313486232E308 ) w przypadku wartości dodatnich. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 W przypadku liczb o zerowej skali lub liczb bez miejsc dziesiętnych. W przypadku liczb z 28 miejscami dziesiętnymi zakres jest następujący +/-7.9228162514264337593543950335: . Najmniejsza możliwa liczba niezerowa to 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 do 32,767; ułamki są zaokrąglane. |
CLng |
Long |
-2,147,483,648 do 2,147,483,647; ułamki są zaokrąglane. |
CSng |
Single |
-3.402823E38 To (Do -1.401298E-45 w przypadku wartości ujemnych) i 1.401298E-45 To (Do 3.402823E38 ) w przypadku wartości dodatnich. |
CStr |
String |
Zwracana wartość zależy od argumentu expression . |
CVar |
Variant |
Ten sam zakres co Double w przypadku wartości liczbowych. Ten sam zakres, co String w przypadku wartości nieliczbowych. |
Spostrzeżenia
Jeśli wartość przekazana expression do funkcji znajduje się poza zakresem typu danych, na który jest konwertowany, wystąpi błąd.
Ogólnie rzecz biorąc, kod można udokumentować przy użyciu funkcji konwersji typów danych, aby pokazać, że w wyniku operacji należy użyć określonego typu danych, a nie typu domyślnego. Można na przykład CCur wymusić arytmetykę walutową w przypadkach, gdy normalnie wystąpiłaby arytmetyka o pojedynczej, podwójnej dokładności lub liczbie całkowitej.
Funkcji konwersji typów danych należy Val używać zamiast zapewniania konwersji z uwzględnieniem ustawień regionalnych z jednego typu danych do innego. Na przykład program Access rozpoznaje różne separatory dziesiętne, separatory tysięcy i opcje walutowe w przypadku użycia CCurprogramu , na podstawie ustawień regionalnych komputera.
Gdy część ułamkowa jest dokładnie 0.5, CInt i CLng zawsze zaokrąglaj ją do najbliższej liczby parzystej. Na przykład zaokrągla 0.5 do i 1.5 zaokrągla do 02.
CInt i CLng różnią się od Fix funkcji ORAZ Int , które obcinają część ułamkową liczby zamiast ją zaokrąglać.
Fix a Int także zawsze zwracać wartość tego samego typu co wartość, którą przekazujesz.
Użyj tej IsDate funkcji, aby określić, czy date można je przekonwertować na datę lub godzinę.
CDate Rozpoznaje literały dat i godzin, a także niektóre liczby należące do zakresu dopuszczalnych dat. Po przekonwertowaniu liczby na datę część całkowitą liczby staje się datą. Każdy ułamek staje się porą dnia, która zaczyna się o północy.
CDate Rozpoznaje formaty daty zgodnie z ustawieniami regionalnymi systemu. Program Access może nie określić prawidłowej kolejności dnia, miesiąca i roku, jeśli zostanie podany format inny niż jedno z rozpoznawanych ustawień daty. Ponadto format daty długiej nie jest rozpoznawany, jeśli zawiera również ciąg dni tygodnia.
Funkcja CVDate ta jest również dostępna w celu zapewnienia zgodności ze starszymi wersjami języka Visual Basic. Składnia tego skrótu CVDate jest identyczna jak w przypadku CDate funkcji. Jednak CVDate zwraca podtyp, Variant którego podtypem jest Date , a nie rzeczywistym Date typem. Ponieważ program Access zawiera teraz typ wewnętrzny Date , nie potrzebujesz CVDatejuż plików . Ten sam efekt można uzyskać, konwertując wyrażenie na a Date i przypisując je do Variant. Technika ta jest zgodna z konwersją innych typów wewnętrznych na równoważne Variant podtypy.
Uwaga
Ta CDec funkcja nie zwraca dyskretnego typu danych. Zamiast tego zawsze zwraca a, Variant którego wartość została przekonwertowana na Decimal podtyp.
Przykłady kwerend
| Expression | Wyniki |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Zwraca SalePrice and FinalPricei i ustala, czy SalePrice jest większe niż FinalPrice. Zwraca wartość -1 , jeśli jest to prawda i 0 jeśli jest fałszywa. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Quantity polu na Bytewartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w DateofSale polu na Datewartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Discount polu na Doublewartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Discount polu na Integerwartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Discount polu na Longwartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Discount polu na Singlewartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości w Discount polu na Stringwartości i wyświetla je w kolumnie Expr1 . |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Zwraca ProductIDwartość , konwertuje wartości liczbowe Discount na Double, a wartości nieliczbowe na String. |
Przykłady kodu VBA
Uwaga
W poniższych przykładach pokazano, jak używać tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać więcej informacji na temat pracy z językiem VBA, zobacz dokumentację języka VBA w programie Access.
CBool
W tym przykładzie użyto tej CBool funkcji do przekonwertowania wyrażenia na wyrażenie Boolean Jeśli wynikiem wyrażenia jest wartość CBool różna od zera, zwraca True; w przeciwnym razie zwraca False.
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.
CByte
W tym przykładzie użyto tej CByte funkcji do przekonwertowania wyrażenia na wyrażenie Byte
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Funkcja CCur
W tym przykładzie użyto tej CCur funkcji do przekonwertowania wyrażenia na wyrażenie Currency
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).
CDate
W tym przykładzie użyto tej CDate funkcji do przekonwertowania ciągu na Dateciąg znaków . Ogólnie rzecz biorąc, oznaczanie dat i godzin jako ciągów znaków, jak pokazano w tym przykładzie, nie jest zalecane. Zamiast tego należy używać literałów dat i godzin, 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)
CDbl
W tym przykładzie użyto tej CDbl funkcji do przekonwertowania wyrażenia na wyrażenie Double
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec
W tym przykładzie użyto tej CDec funkcji do przekonwertowania wartości liczbowej na Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt, funkcja
W tym przykładzie użyto tej CInt funkcji do przekonwertowania wartości na Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Funkcja CLng
W tym przykładzie użyto tej CLng funkcji do przekonwertowania wartości na 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.
CSng
W tym przykładzie użyto tej CSng funkcji do przekonwertowania wartości na 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.
CStr, funkcja
W tym przykładzie użyto tej CStr funkcji do przekonwertowania wartości liczbowej na String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar
W tym przykładzie użyto tej CVar funkcji do przekonwertowania wyrażenia na wyrażenie Variant
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.