Funcții de conversie a tipului de date

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Fiecare funcție efectuează conversia unei expresii într-un anumit tip de date.

Sintaxă

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Argumentul obligatoriu expression este orice șir de caractere sau expresii numerice.

Tipuri returnate

Numele funcției determină tipul returnat, așa cum se arată în tabelul următor:

Funcție Tip returnare Interval pentru expression argument
CBool Boolean Orice șir sau expresie numerică valide.
CByte Byte 0 la 255.
CCur Currency -922,337,203,685,477.5808 la 922,337,203,685,477.5807.
CDate Date Orice expresie de date validă.
CDbl Double -1.79769313486231E308 To -4.94065645841247E-324 pentru valori negative; 4.94065645841247E-324 to 1.79769313486232E308 pentru valori pozitive.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 pentru numere care nu conțin zecimale. Pentru numerele cu 28 zecimale, intervalul este +/-7.9228162514264337593543950335. Cel mai mic număr diferit de zero posibil este 0.0000000000000000000000000001.
CInt Integer -32,768 la 32,767; fracțiile sunt rotunjite.
CLng Long -2,147,483,648 la 2,147,483,647; fracțiile sunt rotunjite.
CSng Single -3.402823E38 To -1.401298E-45 pentru valori negative; 1.401298E-45 to 3.402823E38 pentru valori pozitive.
CStr String Valoarea returnată depinde de argument.expression
CVar Variant Același interval ca Double pentru valorile numerice. Același interval ca String pentru valorile non-numerice.

Observații

Dacă ceea expression ce este transmis funcției este în afara intervalului tipului de date în care efectuați conversia, se produce o eroare.

În general, puteți să documentați codul utilizând funcțiile de conversie a tipurilor de date pentru a arăta că rezultatul unei operațiuni trebuie să utilizeze un anumit tip de date în locul tipului implicit. De exemplu, utilizați CCur pentru a impune aritmetica monetară în cazurile în care în mod normal ar apărea aritmetica cu precizie simplă, cu precizie dublă sau cu numere întregi.

Utilizați funcțiile de conversie a tipurilor de date în loc de Val a furniza conversii receptive la setările regionale de la un tip de date la altul. De exemplu, atunci când utilizați CCur, Access recunoaște separatorii de zecimale, separatorii de mii și opțiunile monetare diferiți în funcție de setarea regională a computerului.

Când partea fracționară este exact 0.5, CInt și CLng rotunjind-o întotdeauna la cel mai apropiat număr par. De exemplu, 0.5 rotunjește la 0, și 1.5 rotunjește la 2. CInt și diferă CLng de Fix funcțiile AND Int , care trunchiază partea fracționară a unui număr în loc să îl rotunjească. Fix și, de asemenea, Int returnează întotdeauna o valoare de același tip cu cea pe care o transmiteți.

Utilizați IsDate funcția pentru a determina dacă date se poate efectua conversia la o dată sau oră. CDate Recunoaște valorile literale de dată și de oră, precum și unele numere care se încadrează în intervalul de date acceptabile. Când efectuați conversia unui număr într-o dată, porțiunea întreagă de număr devine o dată calendaristică. Orice parte fracționară devine o oră a zilei care începe la miezul nopții.

CDate Recunoaște formatele de dată în funcție de setarea regională a sistemului. Este posibil ca Access să nu determine ordinea corectă a zilei, lunii și anului dacă furnizați un alt format decât una dintre setările de dată recunoscute. În plus, nu recunoaște un format de dată lungă dacă conține și șirul cu ziua săptămânii.

Funcția CVDate este disponibilă și pentru compatibilitate cu versiunile anterioare de Visual Basic. Sintaxa este CVDate identică cu CDate funcția. Cu toate acestea, CVDate returnează un Variant al cărui subtip este Date în locul unui tip real Date . Deoarece Access include acum un tip intrinsec Date , nu mai aveți nevoie CVDatede . Puteți obține același efect convertind o expresie într-un și Date atribuind-o unui Variant. Această tehnică este în concordanță cu conversia altor tipuri intrinseci la subtipurile lor echivalente Variant .

Notă

CDec Funcția nu returnează un tip de date discret. În schimb, returnează întotdeauna a Variant a cărui valoare a fost transformată într-un Decimal subtip.

Exemple de interogare

Expresie Rezultatele
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Returnează SalePrice și FinalPrice, și evaluează dacă SalePrice este mai mare decât FinalPrice. Întoarce -1 dacă este adevărat și 0 dacă este fals.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Quantity câmp în Byte, și le afișează în Expr1 coloană.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din DateofSale câmp în Date, și le afișează în Expr1 coloană.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Discount câmp în Double, și le afișează în Expr1 coloană.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Discount câmp în Integer, și le afișează în Expr1 coloană.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Discount câmp în Long, și le afișează în Expr1 coloană.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Discount câmp în Single, și le afișează în Expr1 coloană.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor din Discount câmp în String, și le afișează în Expr1 coloană.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Returnează ProductID, efectuează conversia valorilor numerice Discount în Double, și efectuează conversia valorilor nenumerice în String.

Exemple VBA

Notă

Următoarele exemple vă arată cum să utilizați această funcție într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, consultați referința VBA Access.

Funcția CBool

Acest exemplu utilizează funcția pentru a converti o expresie într-un CBoolBoolean. Dacă expresia se evaluează la o valoare diferită de zero, CBool returnează True; altfel, returnează 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.

Funcția CByte

Acest exemplu utilizează funcția pentru a converti o expresie într-un CByteByte.

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

Funcția CCur

Acest exemplu utilizează funcția pentru a converti o expresie într-un CCurCurrency.

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).

Funcția CDate

Acest exemplu utilizează funcția pentru a converti un șir într-un CDateDate. În general, codificarea impusă a datelor și orelor ca șiruri, așa cum se arată în acest exemplu, nu este recomandată. Utilizați în schimb literali de dată și literali de oră, cum ar #2/12/1969# fi ș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)

Funcția CDbl

Acest exemplu utilizează funcția pentru a converti o expresie într-un CDblDouble.

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

Funcția CDec

Acest exemplu utilizează funcția pentru a converti o valoare numerică într-un CDecDecimal.

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

Funcția CInt

Acest exemplu utilizează funcția pentru a converti o valoare într-un CIntIntegerfișier .

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

Funcția CLng

Acest exemplu utilizează funcția pentru a converti o valoare într-un CLngLong.

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.

Funcția CSng

Acest exemplu utilizează funcția pentru a converti o valoare într-un CSngSingle.

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.

Funcția CStr

Acest exemplu utilizează funcția pentru a converti o valoare numerică într-un CStrString.

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

Funcția CVar

Acest exemplu utilizează funcția pentru a converti o expresie într-un CVarVariant.

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