تحول كل دالة تعبيرا إلى نوع بيانات معين.
بناء الجملة
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
الوسيطة المطلوبة expression هي أي سلسلة أو تعبير رقمي.
أنواع الإرجاع
يحدد اسم الدالة نوع الإرجاع، كما هو موضح في الجدول التالي:
| الدالة | نوع الإرجاع | نطاق الوسيطة expression |
|---|---|---|
CBool |
Boolean |
أي سلسلة صحيحة أو تعبير رقمي. |
CByte |
Byte |
0 إلى 255. |
CCur |
Currency |
-922,337,203,685,477.5808 إلى 922,337,203,685,477.5807. |
CDate |
Date |
أي تعبير تاريخ صحيح. |
CDbl |
Double |
-1.79769313486231E308 إلى -4.94065645841247E-324 للقيم السالبة؛ 4.94065645841247E-324 إلى 1.79769313486232E308 للقيم الموجبة. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 للأرقام ذات مقياس صفري أو الأرقام بدون منازل عشرية. بالنسبة إلى الأرقام العشرية 28 ، يكون النطاق +/-7.9228162514264337593543950335. أصغر رقم غير صفري ممكن هو 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 إلى 32,767: يتم تقريب الكسور. |
CLng |
Long |
-2,147,483,648 إلى 2,147,483,647: يتم تقريب الكسور. |
CSng |
Single |
-3.402823E38 إلى -1.401298E-45 للقيم السالبة؛ 1.401298E-45 إلى 3.402823E38 للقيم الموجبة. |
CStr |
String |
تعتمد القيمة المرجعة على الوسيطة expression . |
CVar |
Variant |
نفس النطاق الخاص بالقيم Double الرقمية. نفس النطاق لمستخدمي String القيم غير الرقمية. |
ملاحظات
إذا كان الشخص expression الذي تم تمريره إلى الدالة خارج نطاق نوع البيانات الذي تقوم بالتحويل إليه، يحدث خطأ.
بشكل عام، يمكنك توثيق تعليماتك البرمجية باستخدام دالات تحويل نوع البيانات لإظهار أن نتيجة العملية يجب أن تستخدم نوع بيانات معينا بدلا من النوع الافتراضي. على سبيل المثال، استخدم هذا CCur التخطيط لفرض حساب العملة في الحالات التي يحدث فيها عادة حساب أحادي الدقة أو الدقة المزدوجة أو عدد صحيح.
استخدم وظائف تحويل نوع البيانات بدلا من Val توفير تحويلات مدركة الإعدادات المحلية من نوع بيانات إلى آخر. على سبيل المثال، عند استخدام CCur، يتعرف Access على فواصل عشرية وفواصل آلاف وخيارات عملة مختلفة استنادا إلى الإعدادات المحلية للكمبيوتر.
عندما يكون الجزء الكسري بالضبط 0.5، CInt قم CLng دائما بتقريبه إلى أقرب رقم زوجي. على سبيل المثال، 0.5 تقرب إلى 0، وتقريب 1.5 إلى 2.
CInt وتختلف CLng عن Fix الدالات AND Int ، التي تقتطع الجزء الكسري من رقم بدلا من تقريبه.
Fix كما تقوم Int بإرجاع قيمة من النوع نفسه الذي قمت بتمريره.
استخدم الدالة IsDate لتحديد ما إذا كان date يمكن تحويله إلى تاريخ أو وقت.
CDate يتعرف على أحرف التواريخ وقيم الوقت الحرفية، بالإضافة إلى بعض الأرقام التي تقع ضمن نطاق التواريخ المقبولة. عند تحويل رقم إلى تاريخ، يصبح جزء الرقم الصحيح تاريخا. يصبح أي جزء كسر وقتا من اليوم يبدأ في منتصف الليل.
CDate يتعرف على تنسيقات التاريخ وفقا للإعدادات المحلية للنظام. قد لا يحدد Access الترتيب الصحيح لليوم والشهر والسنة إذا قمت بتوفير تنسيق آخر غير أحد إعدادات التاريخ التي تم التعرف عليها. بالإضافة إلى ذلك، لا يتعرف على تنسيق التاريخ الطويل إذا كان يحتوي أيضا على سلسلة يوم من الأسبوع.
تتوفر هذه CVDate الدالة أيضا للتوافق مع الإصدارات السابقة من Visual Basic. بناء جملة مطابق CVDate للدالة CDate . ومع ذلك، CVDate ترجع النوع Variant الفرعي Date الخاص به بدلا من النوع الفعلي Date . نظرا لأن Access يتضمن الآن نوعا جوهريا Date ، لم تعد بحاجة CVDateإليه. يمكنك الحصول على التأثير نفسه عن طريق تحويل تعبير إلى a Date ثم تعيينه إلى .Variant تتوافق هذه التقنية مع تحويل الأنواع الجوهرية الأخرى إلى أنواعها الفرعية المكافئة Variant .
ملاحظة
CDec لا تقوم الدالة بإرجاع نوع بيانات منفصل. وبدلا من ذلك، تقوم دائما بإرجاع قيمة Variant تم تحويل قيمتها إلى نوع فرعي Decimal .
أمثلة عن الاستعلام
| تعبير | النتائج |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
ترجع SalePrice الدالتين و FinalPrice، وتقيم ما إذا SalePrice كان أكبر من FinalPriceأم لا. ترجع -1 هذه الدالة إن كانت true وإذا 0 كانت false. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Quantity الحقل وتحولها إلى Byte، وتعرضها في Expr1 العمود. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في DateofSale الحقل وتحولها إلى Date، وتعرضها في Expr1 العمود. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Discount الحقل وتحولها إلى Double، وتعرضها في Expr1 العمود. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Discount الحقل وتحولها إلى Integer، وتعرضها في Expr1 العمود. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Discount الحقل وتحولها إلى Long، وتعرضها في Expr1 العمود. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Discount الحقل وتحولها إلى Single، وتعرضها في Expr1 العمود. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الموجودة في Discount الحقل وتحولها إلى String، وتعرضها في Expr1 العمود. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
ترجع ProductIDالقيم الرقمية Discount وتحولها إلى Double، وتحول القيم غير الرقمية إلى String. |
أمثلة VBA
ملاحظة
توضح الأمثلة التالية كيفية استخدام هذه الدالة في وحدة نمطية في Visual Basic for Applications (VBA). لمزيد من المعلومات حول استخدام VBA، راجع مرجع Access VBA.
الدالة CBool
يستخدم هذا المثال الدالة CBool لتحويل تعبير إلى .Boolean إذا تم تقييم التعبير إلى قيمة غير صفرية، CBool فسيتم إرجاع True؛ وخلاف ذلك، يتم إرجاع 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
يستخدم هذا المثال الدالة CByte لتحويل تعبير إلى .Byte
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
الدالة CCur
يستخدم هذا المثال الدالة CCur لتحويل تعبير إلى .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
يستخدم هذا المثال الدالة CDate لتحويل سلسلة إلى Date. بشكل عام، لا يوصى بترميز التواريخ والأوقات كسلاسل كما هو موضح في هذا المثال. استخدم أحرف التاريخ والقيم الحرفية للوقت، مثل #2/12/1969# AND #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
يستخدم هذا المثال الدالة CDbl لتحويل تعبير إلى .Double
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
الدالة CDec
يستخدم هذا المثال الدالة CDec لتحويل قيمة رقمية إلى .Decimal
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
الدالة CInt
يستخدم هذا المثال الدالة CInt لتحويل قيمة إلى Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
الدالة CLng
يستخدم هذا المثال الدالة CLng لتحويل قيمة إلى .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
يستخدم هذا المثال الدالة CSng لتحويل قيمة إلى .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
يستخدم هذا المثال الدالة CStr لتحويل قيمة رقمية إلى .String
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
الدالة CVar
يستخدم هذا المثال الدالة CVar لتحويل تعبير إلى .Variant
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.