الدالة InStr

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

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

بناء الجملة

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

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

الوسيطة

الوصف

بدء

اختياري. تعبير رقمي يحدد موضع البداية لكل بحث. إذا تم حذفه، يبدأ البحث عند موضع الحرف الأول. إذا احتوى البدء على Null، يحدث خطأ. تكون وسيطة البدء مطلوبة إذا تم تحديد مقارنة.

سلسلة 1

مطلوبة. تعبير سلسلة يتم البحث فيه.

سلسلة 2

مطلوبة. تعبير السلسلة الذي تم البحث عنه.

مقارنة

اختياري. يحدد نوع مقارنة بين السلاسل. إذا كانت قيمة المقارنة Null، يحدث خطأ. إذا تم حذف المقارنة، يحدد إعداد "مقارنة الخيارات" نوع المقارنة. حدد LCID (LocaleID) صالحا لاستخدام قواعد محلية معينة في المقارنة.

تلميح: في Access 2010، يكون "منشئ التعبير" به IntelliSense، حيث يمكنك معرفة الوسيطات التي يتطلبها التعبير. 

الإعدادات

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

ثابت

القيمة

الوصف

vbUseCompareOption

‎-1

تنفيذ مقارنة باستخدام إعداد العبارة "مقارنة خيارات".

vbBinaryCompare

0

تنفيذ مقارنة ثنائية.

vbTextCompare

1

تنفيذ مقارنة نصية.

vbDatabaseCompare

2

Microsoft Office Access 2007 فقط. تنفيذ مقارنة استنادا إلى المعلومات في قاعدة البيانات.


إرجاع القيم

إذا

ترجع InStr

السلسلة 1 ذات طول صفري

0

سلسلة 1 فارغة

فارغ

السلسلة 2 ذات طول صفري

بدء

string2 هي Null

فارغ

لم يتم العثور على سلسلة 2

0

تم العثور على سلسلة 2 ضمن السلسلة 1

الموضع الذي يتم العثور على المطابقة عنده

بدء > السلسلة 2

0


ملاحظات

يتم استخدام الدالة InStrB مع بيانات byte المضمنة في سلسلة. وبدلا من إرجاع موضع الحرف لأول تكرار لسلسلة داخل سلسلة أخرى، ترجع 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). لمزيد من المعلومات حول استخدام 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.

انظر أيضاً

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

هل تحتاج إلى مزيد من المساعدة؟

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

×