تحول كل دالة تعبيرا إلى نوع بيانات معين.
بناء الجملة
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 الدالتين و Int ، التي تقتطاع الجزء الكسري من رقم بدلا من تقريبه.
Fix وأيضا Int دائما إرجاع قيمة من نفس النوع الذي تمرر فيه.
استخدم الدالة IsDate لتحديد ما إذا كان date يمكن تحويلها إلى تاريخ أو وقت.
CDate يتعرف على القيم الحرفية للتاريخ والقيم الحرفية للوقت، بالإضافة إلى بعض الأرقام التي تقع ضمن نطاق التواريخ المقبولة. عند تحويل رقم إلى تاريخ، يصبح جزء الرقم بالكامل تاريخا. أي جزء كسري يصبح وقت من اليوم يبدأ في منتصف الليل.
CDate يتعرف على تنسيقات التاريخ وفقا لإعداد الإعدادات المحلية للنظام. قد لا يحدد Access الترتيب الصحيح لليوم والشهر والسنة إذا قمت بتوفير تنسيق آخر غير أحد إعدادات التاريخ التي تم التعرف عليها. بالإضافة إلى ذلك، لا يتعرف على تنسيق تاريخ طويل إذا كان يحتوي أيضا على سلسلة يوم من الأسبوع.
CVDate تتوفر الدالة أيضا للتوافق مع الإصدارات السابقة من Visual Basic. بناء جملة CVDate مطابق للدالة CDate . ومع ذلك، CVDate ترجع نوعه Date الفرعي بدلا من نوع فعلي DateVariant. نظرا لأن Access يتضمن الآن نوعا جوهريا Date ، فإنك لم تعد بحاجة إلى CVDate. يمكنك الحصول على نفس التأثير عن طريق تحويل تعبير إلى Date ثم تعيينه إلى Variant. تتوافق هذه التقنية مع تحويل الأنواع المضمنة الأخرى إلى أنواع فرعية مكافئة Variant لها.
ملاحظة
CDec لا ترجع الدالة نوع بيانات منفصلا. بدلا من ذلك، يقوم دائما بإرجاع Variant القيمة التي تم تحويل قيمتها إلى Decimal نوع فرعي.
أمثلة الاستعلام
| تعبير | النتائج |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
إرجاع SalePrice و FinalPrice، وتقييم ما إذا كان SalePrice أكبر من FinalPrice. ترجع -1 إذا كانت صحيحة وإذا 0 كانت خاطئة. |
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# و #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.