Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

ส่งกลับ ตัวแปร (ยาว) ที่ระบุตำแหน่งของการปรากฎครั้งแรกของสตริงหนึ่งภายในสตริงอื่น

ดูตัวอย่างบางส่วน

ไวยากรณ์

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

ไวยากรณ์ของฟังก์ชัน InStr มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์

คำอธิบาย

เริ่ม

ไม่จำเป็น นิพจน์ตัวเลขที่ตั้งค่าตําแหน่งเริ่มต้นสําหรับการค้นหาแต่ละครั้ง ถ้าไม่ระบุไว้ การค้นหาจะเริ่มต้นที่ตําแหน่งอักขระแรก หาก start มี Null จะเกิดข้อผิดพลาดขึ้น จําเป็นต้องมีอาร์กิวเมนต์ start ถ้ามีการระบุ compare

สตริง 1

จำเป็น นิพจน์สตริงที่กําลังค้นหา

สตริง 2

จำเป็น นิพจน์สตริงที่ค้นหา

เปรียบ เทียบ

ไม่จำเป็น ระบุชนิดของ การเปรียบเทียบสตริง หาก compare เป็น Null จะเกิดข้อผิดพลาดขึ้น ถ้าละ compare การตั้งค่า OptionCompare จะกําหนดชนิดของการเปรียบเทียบ ระบุ LCID (LocaleID) ที่ถูกต้องเพื่อใช้กฎเฉพาะตําแหน่งที่ตั้งในการเปรียบเทียบ

เคล็ดลับ: ตัวสร้างนิพจน์มี IntelliSense เพื่อให้คุณสามารถดูอาร์กิวเมนต์ที่นิพจน์ของคุณจําเป็นต้องใช้

การตั้งค่า

การตั้งค่าอาร์กิวเมนต์ เปรียบเทียบ มีดังนี้

ค่าคงที่

ค่า

คำอธิบาย

vbUseCompareOption

-1

ทําการเปรียบเทียบโดยใช้การตั้งค่าคําสั่งเปรียบเทียบตัวเลือก

vbBinaryCompare

0

ทําการเปรียบเทียบแบบไบนารี

vbTextCompare

1

ทําการเปรียบเทียบเป็นข้อความ

ส่งกลับค่า

If

InStr ส่งกลับค่า

สตริง 1 มีความยาวเป็นศูนย์

0

สตริง 1 เป็น Null

Null

สตริง 2 มีความยาวเป็นศูนย์

เริ่ม

สตริง 2 เป็น Null

Null

ไม่พบสตริง 2

0

สตริง 2 จะพบภายในสตริง 1

ตําแหน่งที่พบรายการที่ตรงกัน

เริ่มสตริง > 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.

ดูเพิ่มเติม

ฟังก์ชันสตริงและวิธีใช้

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย