الدالة InStr

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

تقوم بإرجاع متغير‏ (طويل) يحدد موضع التواجد الأول لسلسلة موجودة داخل سلسلة أخرى.

الاطلاع على بعض الأمثلة

بناء الجملة

InStr([start, ] string1, string2 [, compare ] )

يحتوي بناء جملة الدالة InStr على هذه الوسيطات:

الوسيطة الوصف
بدء اختيارية. تعبير رقمي يعين موضع البداية لكل بحث. إذا تم حذفه، يبدأ البحث في موضع الحرف الأول. إذا كانت البداية تحتوي على Null، يحدث خطأ. وسيطة البدء مطلوبة إذا تم تحديد المقارنة .
string1 مطلوبة. يتم البحث في تعبير السلسلة.
string2 مطلوبة. تم البحث عن تعبير السلسلة.
مقارنه اختيارية. يحدد نوع مقارنة السلسلة. إذا كانت المقارنة فارغة، يحدث خطأ. إذا تم حذف المقارنة ، يحدد إعداد OptionCompare نوع المقارنة. حدد LCID صالحا (LocaleID) لاستخدام قواعد خاصة باللغة المحلية في المقارنة.

تلميح

يحتوي Expression Builder على IntelliSense، بحيث يمكنك معرفة الوسيطات التي يتطلبها التعبير.

الإعدادات

إعدادات وسيطة المقارنة هي:

ثابت Value الوصف
vbUseCompareOption ‎-1 إجراء مقارنة باستخدام إعداد عبارة Option Compare .
vbBinaryCompare 0 إجراء مقارنة ثنائية.
vbTextCompare 1 إجراء مقارنة نصية.

إرجاع القيم

إذا إرجاع InStr
string1 هو طول صفري 0
string1 هو Null فارغ
السلسلة 2 عبارة عن طول صفري بدء
string2 هو Null فارغ
لم يتم العثور على string2 0
تم العثور على string2 داخل string1 الموضع الذي تم العثور على المطابقة فيه
سلسلة البدء > 2 0

ملاحظات

يتم استخدام الدالة InStrB مع بيانات البايت المضمنة في سلسلة. بدلا من إرجاع موضع الحرف للحدوث الأول لسلسلة واحدة داخل سلسلة أخرى، يقوم InStrB بإرجاع موضع البايت.

أمثلة

استخدام الدالة InStr في تعبير يمكنك استخدام InStr أينما يمكنك استخدام التعبيرات. على سبيل المثال، إذا كنت تريد العثور على موضع الفترة الأولى (.) في حقل يحتوي على عناوين IP (المسماة IPAddress)، يمكنك استخدام InStr للعثور عليه، مثل:

InStr(1,[IPAddress],".")

تفحص الدالة InStr كل قيمة في حقل IPAddress وترجع موضع الفترة الأولى. ومن ثم، إذا كان الجزء الأول من عنوان IP هو 10.، ترجع الدالة القيمة 3.

يمكنك بعد ذلك استخدام دالات أخرى، تعمل على إخراج الدالة InStr ، لاستخراج جزء عنوان IP الذي يسبق الفترة الأولى، مثل ذلك:

Left([IPAddress],(InStr(1,[IPAddress],".")-1))

في هذا المثال، InStr(1,[IPAddress],".") إرجاع موضع الفترة الأولى. يحدد طرح 1 عدد الأحرف التي تسبق الفترة الأولى، في هذه الحالة، 2. ثم تستخرج الدالة Left العديد من الأحرف من الجزء الأيسر من حقل IPAddress، مع إرجاع القيمة 10.

استخدام InStr في التعليمات البرمجية ل VBA 

ملاحظة

توضح الأمثلة التالية استخدام هذه الدالة في وحدة Visual Basic for Applications (VBA).

يستخدم هذا المثال الدالة InStr لإرجاع موضع التكرار الأول لسلسلة واحدة داخل سلسلة أخرى.


Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' String to search in.
SearchChar = "P"    ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar)    ' Returns 9.
MyPos = Instr(1, SearchString, "W")    ' Returns 0.

اطلع أيضاً على

دالات السلاسل وكيفية استخدامها