Funcții de conversie a tipului de date
Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Fiecare funcție impune unei expresie o anumită tip de date.

Sintaxă

CBool( expresie )

CByte( expresie )

CCur( expresie )

CDate( expresie )

CDbl( expresie )

CDec( expresie )

CInt( expresie )

CLng( expresie )

CSng( expresie )

CStr( expresie )

CVar( expresie )

argument expresiei necesare este orice expresie șir sau expresie numerică.

Tipuri de retur

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

Funcție

Tip returnare

Interval pentru argumentul expresie

CBool

Boolean

Orice șir valid sau expresie numerică validă.

CByte

Octet

de la 0 la 255.

CCur

Monedă

-922.337.203.685.477.5808 la 922.337.203.685.477.5807.

CDate

Dată

Orice expresie de date validă.

CDbl

Double

-1,79769313486231E308 la -4,94065645841247E-324 pentru valori negative; 4,94065645841247E-324 la 1,79769313486232E308 pentru valori pozitive.

CDec

Decimal

+/-79.228.162.514.264.337.593.543.950.335 pentru numerele cu scalare zero, adică numere fără zecimale. Pentru numerele cu 28 de zecimale, intervalul este +/-7.9228162514264337593543950335. Cel mai mic număr posibil diferit de zero este 0.0000000000000000000000000001.

CInt

Întreg

-32.768 - 32.767; fracțiile sunt rotunjite.

CLng

Lung

-2.147.483.648 - 2.147.483.647; fracțiile sunt rotunjite.

CSng

Single

-3,402823E38 la -1,401298E-45 pentru valori negative; De la 1,401298E-45 la 3,402823E38 pentru valori pozitive.

CStr

String

Întoarcerile pentru CStr depind de argumentul expresiei .

CVar

Variantă

Același interval ca dublă precizie pentru valorile numerice. Același interval ca șir pentru valorile non-numerice.

Observații

Dacă expresia transmisă funcției se află în afara intervalului tipului de date la care se face conversia, apare o eroare.

În general, puteți să documentați codul utilizând funcțiile de conversie a tipului de date pentru a arăta că rezultatul unei anumite operațiuni trebuie exprimat ca un anumit tip de date, nu ca tip de date implicit. De exemplu, utilizați CCur pentru a forța aritmetica monedei în cazurile în care în mod normal are loc o precizie simplă, dublă precizie sau aritmetică întreagă.

Ar trebui să utilizați funcțiile de conversie a tipurilor de date în loc de Val pentru a furniza conversii la nivel internațional de la un tip de date la altul. De exemplu, atunci când utilizați CCur, separatori zecimali diferiți, separatori de mii diferite și diverse opțiuni de monedă sunt recunoscuți corect, în funcție de setarea regională a computerului.

Când partea fracționară este exact 0,5, CInt și CLng o rotunjesc î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 CLng diferă de funcțiile Fix și Int , care trunchiază, mai degrabă decât rotund, partea fracționară a unui număr. De asemenea, Fix and Int returnează întotdeauna o valoare de același tip cu cea transmisă.

Utilizați funcția IsDate pentru a determina dacă se poate efectua conversia datei la o dată sau oră. CDate recunoaște literalele de dată și oră, precum și unele numere care se încadrează în intervalul de date acceptabile. Când efectuați conversia unui număr într-o dată, întreaga porțiune de număr este transformată într-o dată. Orice parte fracționară a numărului este transformată într-o oră din zi, începând de la miezul nopții.

CDate recunoaște formatele de dată în funcție de setarea setări regionale a sistemului. Ordinea corectă a zilelor, lunilor și anilor nu poate fi determinată dacă este furnizată într-un format diferit de una dintre setările de dată recunoscute. În plus, un format de dată lungă nu este recunoscut dacă conține și șirul pentru ziua săptămânii.

O funcție CVDate este, de asemenea, furnizată pentru compatibilitate cu versiunile anterioare de Visual Basic. Sintaxa funcției CVDate este identică cu funcția CDate , însă CVDate returnează o valoare Variant al cărei subtip este Dată în loc de un tip dată real. Deoarece există acum un tip intrinsec de dată , nu mai este nevoie de CVDate. Același efect poate fi obținut prin conversia unei expresii într-o Dată, apoi atribuirea acesteia la o valoare Variant. Această tehnică este compatibilă cu conversia tuturor celorlalte tipuri intrinseci la subtipurile lor variant echivalente.

Notă: Funcția CDec nu returnează un tip de date discret; în schimb, returnează întotdeauna o valoare Variant a cărei valoare a fost convertită la un subtip zecimal .

Exemple de interogare

Expresie

Rezultatele

SELECTPrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales;

Returnează "PrețVâ vânzare", "Preț Final" și evaluează dacă PrețVâ vânzare este mai mare decât Prețul final. Returnează "-1" dacă este adevărat și "0" dacă este fals.

SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Cantitate" în format byți și afișează în coloana Expr1 Returnează "IDProdus", efectuează conversia valorilor din câmpul "Cantitate" în format Monedă și se afișează în coloana Expr1.

SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "DateofSale" în format Dată și se afișează în coloana Expr1.

SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Reducere" în format dublu și se afișează în coloana Expr1.

SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Reducere" în format întreg și se afișează în coloana Expr1.

SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Reducere" în format Lung și se afișează în coloana Expr1.

SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Reducere" în format unic și se afișează în coloana Expr1.

SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Discount" în format șir și se afișează în coloana Expr1.

SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales;

Returnează "IDProdus", efectuează conversia valorilor din câmpul "Reducere" în Dublă precizie pentru valori numerice și Șir pentru valori non-numerice.

Exemple VBA

Notă: Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, consultați Referințe VBA Access.

Funcția CBool

Acest exemplu utilizează funcția CBool pentru a efectua conversia unei expresii într-o valoare booleană. Dacă expresia se evaluează la o valoare diferită de zero, CBool returnează True; în caz contrar, 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 CByte pentru a efectua conversia unei expresii într-un octet.

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

Funcția CCur

Acest exemplu utilizează funcția CCur pentru a efectua conversia unei expresii într-o monedă.

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 CDate pentru a efectua conversia unui șir într-o Dată. În general, datele și orele cu codare hard ca șiruri (așa cum se arată în acest exemplu) nu sunt recomandate. Utilizați literale de dată și oră, cum ar fi #12/2/1969# și #4:45:23 PM#, în schimb.

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 CDbl pentru a efectua conversia unei expresii într-o expresie dublă.

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 CDec pentru a efectua conversia unei valori numerice într-o zecimală.

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 CInt pentru a efectua conversia unei valori într-un număr întreg.

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

Funcția CLng

Acest exemplu utilizează funcția CLng pentru a efectua conversia unei valori într-o valoare Lungă.

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 CSng pentru a efectua conversia unei valori într-o singură valoare.

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 CStr pentru a efectua conversia unei valori numerice într-un șir.

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 CVar pentru a efectua conversia unei expresii într-o valoare variant.

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

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.