دالات تحويل أنواع البيانات

ينطبق على
Access لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

تحول كل دالة تعبيرا إلى نوع بيانات معين.

بناء الجملة

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