Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
VBA
Input / Output Function
ดาวน์โหลดคู่มือ

Open Statement

VBA Statement, ทำให้สามารถนำเข้าและส่งออก (input / output -I/O) ไปที่ไฟล์ได้

ไวยากรณ์

Open pathname   For mode [access] [lock]   As [#] filenumber [Len = reclength]

ไวยากรณ์ประโยคคำสั่ง Open มีรายละเอียดส่วนดังนี้

ส่วน รายละเอียด
pathname บังคับ, เป็น string expression ที่ระบุชื่อไฟล์ อาจจะรวมถึงไดเรคทอรี หรือโฟลเดอร์ และไดร์ฟ
mode บังคับ, เป็นคีย์เวิร์ดระบุโหมดของไฟล์คือ Append, Binary, Input, output หรือ Random ถ้าไม่กำหนด ไฟล์จะเปิดสำหรับการเข้าถึงแบบ Random
access ไม่บังคับ, เป็นคีย์เวิร์ดระบุการอนุญาตทำงานบน ไฟล์ที่เปิด คือ Read, Write หรือ Read Write
lock ไม่บังคับ, เป็นคีย์เวิร์ดระบุการอนุญาตทำงานบน ไฟล์ที่เปิดโดยกระบวนการอื่น คือ Shared, Lock Read, Lock Write และ Lock Read Write
filenumber บังคับ, เป็นหมายเลขไฟล์ภายในช่วง 1 ถึง 511 ใช้ ฟังก์ชัน FreeFile สร้างหมายเลขและไฟล์ต่อไปได้
reclength ไม่บังคับ, เป็นตัวเลขน้อยกว่าหรือเท่ากับ 32,767 (ไบต์) สำหรับไฟล์ที่เปิดให้เข้าถึงแบบ Random ค่านี้คือ ความยาวเรคคอร์ด สำหรับไฟล์ Sequential ค่านี้ คือ จำนวนตัวอักษรของบัฟเฟอร์

ลักษณะการประยุกต์

ต้องมีการเปิดไฟล์ก่อนการทำงานนำเข้าและส่งออกกับไฟล์ Open จัดสรรบัฟเฟอร์สำหรับการนำเข้าและส่งออกให้กับไฟล์ และหาโหมดการเข้าถึง เพื่อใช้บัฟเฟอร์ ถ้าไฟล์ระบุโดย pathname ไม่มีจริง จะได้รับการสร้างเมื่อไฟล์ได้รับการเปิดสำหรับ โหมด Append, Binary, Output หรือ Random

ถ้าไฟล์ได้รับการเปิดโดยกระบวนการอื่น และระบุประเภทของการส่งเป็นไม่ยินยอม การเปิดไฟล์จะล้มเหลว และปรากฏความผิดพลาด Len Clause จะได้รับการละเลย ถ้าโหมด คือ Binary Important ในโหมด Binary, Input และ Random สามารถเปิดไฟล์ด้วยการใช้หมายเลขไฟล์ที่ต่างกัน โดยไม่ต้องปิดไฟล์ก่อน ในโหมด Append และ Output ต้องปิดไฟล์ก่อนการเปิดด้วยหมายเลขไฟล์ที่ต่างกัน

ดูเพิ่มเติม

Close Statement, ฟังก์ชัน FreeFile

ตัวอย่าง

' เปิดในโหมด sequential - input
Open "TESTFILE" For Input As #1
' ปิดไฟล์ก่อนเปิดโหมดอื่น
Close #1

' เปิดในโหมด binary สำหรับการเขียน
Open "TESTFILE" For Binary Access Write As #1
' ปิดไฟล์ก่อนเปิดโหมดอื่น
Close #1

' เปิดไฟล์สำหรับการเข้าถึงแบบสุ่ม (random access)

' กำหนด User - define type
Type Record
  ID As Integer
  Name As String * 20
End Type

' ประกาศตัวแปร
Dim MyRecord As Record, Position

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
' ปิดไฟล์ก่อนเปิดโหมดอื่น
Close #1

' เปิดในโหมด sequential - output และกระบวนการอื่นสามารถอ่านหรือเขียนได้
Open "TESTFILE" For Output Shared As #1
' ปิดไฟล์ก่อนเปิดโหมดอื่น
Close #1

' เปิดในโหมด binary สำหรับการอ่าน และกระบวนการอื่นไม่สามารถอ่านได้
Open "TESTFILE" For Binary Access Read Lock Read As #1
' ปิดไฟล์ก่อนเปิดโหมดอื่น
Close #1