โปรเจ็กต์เดียวสามารถมีตัวระบุได้มากถึง 32,000 ตัว (คำที่ไม่สงวนไว้) รวมถึง (แต่ไม่จำกัดเพียง) แบบฟอร์ม การควบคุม โมดูล ตัวแปร ค่าคงที่ ขั้นตอน ฟังก์ชัน และอ็อบเจ็กต์ โปรดทราบว่าจำนวนตัวระบุที่แท้จริงถูกจำกัดโดยหน่วยความจำที่มีอยู่
ชื่อตัวแปรใน Visual Basic ต้องมีความยาวไม่เกิน 255 อักขระ และชื่อฟอร์ม การควบคุม โมดูล และคลาสต้องมีความยาวไม่เกิน 40 อักขระ Visual Basic ไม่จำกัดจำนวนจริงของวัตถุที่แตกต่างกันในโครงการ
◆ข้อจำกัดในการควบคุม◆
ตัวควบคุมที่ไม่ใช่กราฟิกแต่ละตัว (ตัวควบคุมทั้งหมดยกเว้นรูปร่าง เส้น รูปภาพ และป้ายชื่อ) จะใช้หน้าต่าง แต่ละหน้าต่างใช้ทรัพยากรระบบ ดังนั้นจำนวนหน้าต่างทั้งหมดที่สามารถมีอยู่พร้อมกันจึงถูกจำกัดด้วยทรัพยากรที่มีอยู่ ขีดจำกัดที่แน่นอนขึ้นอยู่กับทรัพยากรระบบที่มีอยู่และประเภทของการควบคุมที่ใช้ เพื่อลดการใช้ทรัพยากรระบบ คุณสามารถใช้ตัวควบคุมรูปร่าง เส้น ป้ายชื่อ และรูปภาพแทนตัวควบคุมกล่องรูปภาพเมื่อสร้างหรือแสดงกราฟิก
1. จำนวนการควบคุมทั้งหมด
จำนวนการควบคุมสูงสุดที่อนุญาตในแบบฟอร์มเดียวขึ้นอยู่กับประเภทของการควบคุมที่ใช้และทรัพยากรระบบที่มีอยู่ อย่างไรก็ตาม มีการจำกัดชื่อตัวควบคุมไว้เพียง 254 ชื่อต่อแบบฟอร์มเท่านั้น เนื่องจากตัวควบคุมทั้งหมดในอาร์เรย์ใช้ชื่อตัวควบคุมร่วมกัน อาร์เรย์ควบคุมจึงนับขีดจำกัดนี้เพียงครั้งเดียวเท่านั้น ในทุกเวอร์ชัน ขีดจำกัดของดัชนีอาร์เรย์ควบคุมอยู่ในช่วง 0 ถึง 32,767 ถ้าคุณวางตัวควบคุมไว้ด้านบนของตัวควบคุมแต่ละตัว เช่น ตัวควบคุมเฟรมที่ซ้อนกันในเฟรม โดยทั่วไป Visual Basic จะยอมรับเฉพาะตัวควบคุมที่ซ้อนกันไม่เกิน 25 ระดับเท่านั้น
2. ข้อจำกัดในการควบคุมพิเศษ
ตารางต่อไปนี้แสดงรายการข้อจำกัดของคุณสมบัติสำหรับการควบคุมพิเศษใน Visual Basic
ตัวควบคุมกล่องรายการและ ListCount และตัวควบคุมกล่องคำสั่งผสม: จำนวนสูงสุดของรายการคือ 32K และขีดจำกัดขนาดสำหรับแต่ละรายการคือ 1K (1024 ไบต์)
การควบคุมกล่องข้อความข้อความ: จำกัดไว้ที่ 64K;
การควบคุมป้ายกำกับคำอธิบาย: จำกัด ไว้ที่ 1,024 ไบต์;
การควบคุมปุ่มคำสั่ง การควบคุมกล่องกาเครื่องหมาย การควบคุมเฟรม และการควบคุมปุ่มตัวเลือก: จำกัดไว้ที่ 255 อักขระ และชื่อใดๆ ที่เกินขีดจำกัดเหล่านี้จะถูกตัดทอน
ชื่อของคุณสมบัติการควบคุมแบบกำหนดเอง: จำกัดที่ 32K
ส่วนควบคุมเมนู: จำกัดอักขระที่ 235 ตัว
แท็กการควบคุมทั้งหมด: จำกัดขนาดหน่วยความจำที่มีอยู่
ตั้งชื่อตัวควบคุมทั้งหมด: จำกัดไว้ที่ 40 อักขระ
โปรดทราบว่าใน Visual Basic ชื่อคุณสมบัติการควบคุมจะถูกจำกัดไว้ที่ 30 อักขระ
◆ข้อจำกัดของรหัส◆
จำนวนบรรทัดทั้งหมดของโค้ดที่สามารถโหลดลงในแบบฟอร์ม คลาส หรือโมดูลมาตรฐานถูกจำกัดไว้ที่ 65,534 บรรทัด โค้ดหนึ่งบรรทัดจำกัดไว้ที่ 1,023 ไบต์ สามารถมีช่องว่างนำหน้าได้ไม่เกิน 256 ช่องก่อนข้อความจริงในบรรทัด และอักขระต่อเนื่องไม่เกิน 25 บรรทัด (_) ในบรรทัดแบบลอจิคัล
1. ขั้นตอน ประเภท และตัวแปร
ไม่มีการจำกัดจำนวนขั้นตอนต่อโมดูล แต่ละกระบวนการสามารถมีโค้ดได้สูงสุด 64K ถ้าขั้นตอนหรือโมดูลเกินขีดจำกัดนี้ Visual Basic จะสร้างข้อผิดพลาดในเวลาคอมไพล์ หากคุณพบข้อผิดพลาดประเภทนี้ คุณสามารถหลีกเลี่ยงข้อผิดพลาดประเภทนี้ได้โดยการแบ่งขั้นตอนที่มีขนาดใหญ่เป็นพิเศษออกเป็นขั้นตอนเล็กๆ หลายๆ ขั้นตอน หรือย้ายการประกาศระดับโมดูลไปยังโมดูลอื่น Visual Basic ใช้ตารางเพื่อจัดเก็บชื่อตัวระบุ (ตัวแปร ขั้นตอน ค่าคงที่ ฯลฯ) ไว้ในโค้ด แต่ละโต๊ะจำกัดอยู่ที่ 64K
2. ตารางการประกาศไลบรารีลิงก์แบบไดนามิก
แต่ละโมดูลแบบฟอร์มและรหัสใช้ตารางที่อธิบายโครงสร้างของจุดเข้าไลบรารีลิงก์แบบไดนามิก แต่ละโครงสร้างมีขนาดประมาณ 40 ไบต์ และขนาดของตารางถูกจำกัดไว้ที่ 64K ส่งผลให้มีการประกาศประมาณ 1,500 รายการต่อโมดูล
3. รายการโครงการ
แอปพลิเคชันทั้งหมดใช้ตารางที่มีชื่อทั้งหมด ชื่อเหล่านี้ได้แก่:
·ชื่อคงที่
·ชื่อตัวแปร
·ชื่อคำจำกัดความประเภทแบบกำหนดเอง
·ชื่อโมดูล
·ชื่อการประกาศขั้นตอน DLL
ไม่มีการจำกัดขนาดรวมของตารางชื่อโปรเจ็กต์ แต่รายการที่ต้องตรงตามตัวพิมพ์ใหญ่-เล็กต้องไม่เกิน 32K หากเกินขีดจำกัด 32K ตัวระบุ PRivate จะสามารถนำมาใช้ซ้ำได้ในโมดูลอื่นเพื่อจำกัดจำนวนรายการที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ไว้ที่ 32K
4. ตารางอินพุต
แต่ละครั้งที่มีการอ้างอิงตัวระบุในโมดูลอื่น รายการจะถูกสร้างขึ้นในตารางอินพุต แต่ละรายการดังกล่าวมีขนาดอย่างน้อย 24 ไบต์ แต่จำกัดไว้ที่ 64K ดังนั้นแต่ละโมดูลจึงสามารถมีข้อมูลอ้างอิงได้ประมาณ 2,000 รายการ
5. ตารางรายการโมดูล
แต่ละโมดูลในตารางนี้มีขนาดสูงสุด 125 ไบต์ แต่มีขีดจำกัดรวมที่ 64K ดังนั้นแต่ละโปรเจ็กต์จึงสามารถสร้างโมดูลได้ประมาณ 400 โมดูล
◆ข้อจำกัดของข้อมูล◆
ข้อจำกัดต่อไปนี้ใช้กับตัวแปรในภาษา Visual Basic
1. ข้อมูลแบบฟอร์ม มาตรฐาน และคลาส
ส่วนข้อมูลโมดูล VBA (นั่นคือ ข้อมูลที่กำหนดไว้ในส่วนการประกาศ) ของฟอร์มหรือโมดูลใดๆ ใน Visual Basic มีส่วนข้อมูลมากถึง 64K ซึ่งรวมถึงข้อมูลต่อไปนี้:
·ตัวแปรท้องถิ่นประกาศด้วยคงที่
·ตัวแปรระดับโมดูลที่ไม่ใช่อาร์เรย์และสตริงที่มีความยาวผันแปรได้
·แต่ละอาร์เรย์ของโมดูลและสตริงที่มีความยาวผันแปรได้มีขนาด 4 ไบต์
2. ขั้นตอน ประเภท และตัวแปร
ถ้าขั้นตอนหรือโมดูลเกินขีดจำกัดรหัส 64K Visual Basic จะสร้างข้อผิดพลาดเวลาคอมไพล์
หากตัวแปรภายในเครื่องที่กำหนดในขั้นตอนเกิน 64K ข้อผิดพลาด "ตัวแปรไม่คงที่ภายในเครื่องมากเกินไป" จะถูกสร้างขึ้น
หากตัวแปรระดับโมดูลที่กำหนดในโมดูลเกิน 64K หรือประเภทแบบกำหนดเองที่กำหนดมีขนาดใหญ่กว่า 64K จะเกิดข้อผิดพลาด "ข้อมูลคงที่หรือคงที่ต้องไม่เกิน 64K"
หากคุณพบข้อผิดพลาดประเภทนี้ คุณสามารถหลีกเลี่ยงข้อผิดพลาดนี้ได้โดยการแบ่งขั้นตอนที่ใหญ่เกินไปออกเป็นขั้นตอนเล็กๆ หลายๆ ขั้นตอน หรือย้ายการประกาศระดับโมดูลไปยังโมดูลอื่น
อาร์เรย์ที่ประกาศเป็นตัวแปรไม่สามารถใช้พื้นที่อาร์เรย์ทั้งหมดได้ เฉพาะตัวอธิบายอาร์เรย์เท่านั้นที่สนับสนุนขีดจำกัด 64K ตัวอย่างเช่น ประกาศในขั้นตอนหรือการประกาศระดับโมดูล Dimx(1000000)AsByte อย่างไรก็ตาม ถ้าคุณประกาศอาร์เรย์ระเบียนขนาดใหญ่และขนาดคงที่ แล้วประกาศอินสแตนซ์ของระเบียนเหล่านั้นเป็นตัวแปร หน่วยความจำล้นอาจเกิดขึ้นได้
3. ประเภทที่กำหนดเอง
แม้ว่าผลรวมของสตริงที่มีความยาวผันแปรได้ของประเภทกำหนดเองจำนวนมากสามารถเกิน 64K (สตริงที่มีความยาวผันแปรได้ของประเภทกำหนดเองแต่ละรายการจะมีขนาดเพียง 4 ไบต์เท่านั้น และเนื้อหาจริงของสตริงจะถูกจัดเก็บแยกกัน) ตัวแปรประเภทกำหนดเองจะต้องไม่เกิน 64K ประเภทที่กำหนดเองสามารถกำหนดร่วมกับประเภทที่กำหนดเองอื่นๆ ได้ แต่ขนาดรวมของประเภทนี้ต้องไม่เกิน 64K
4. ซ้อนพื้นที่
พารามิเตอร์และตัวแปรท้องถิ่นระหว่างรันไทม์จะใช้พื้นที่สแต็ก ตัวแปรระดับโมดูลและตัวแปรแบบคงที่ไม่ใช้พื้นที่สแต็กเนื่องจากได้รับการจัดสรรไว้ในส่วนข้อมูลของแบบฟอร์มหรือโมดูล ขั้นตอน DLL ใด ๆ ที่เรียกว่าใช้สแต็กเมื่อดำเนินการ
Visual Basic เองใช้สแต็กเพื่อบันทึกค่ากลางขณะประเมินนิพจน์
ขนาดสแต็กรวมที่มีอยู่ใน Visual Basic คือหนึ่งเมกะไบต์ (1MB) ต่อเธรด อย่างไรก็ตาม ขนาดสแต็กสามารถเกินขีดจำกัดนี้ได้หากมีหน่วยความจำว่างที่อยู่ติดกัน
◆ข้อจำกัดทรัพยากรระบบ◆
ข้อจำกัดบางประการของ Visual Basic และแอปพลิเคชันที่สร้างขึ้นด้วยจะได้รับผลกระทบจาก Microsoft Windows ข้อจำกัดเหล่านี้แตกต่างกันไปขึ้นอยู่กับเวอร์ชันของ Microsoft Windows
แต่ละหน้าต่างที่เปิดอยู่จะใช้ทรัพยากรระบบ (พื้นที่ข้อมูลที่ใช้โดย Microsoft Windows) หากทำงานเกินขอบเขตทรัพยากรระบบ จะเกิดข้อผิดพลาดรันไทม์ "ทรัพยากรไม่เพียงพอสำหรับการทำงานของ Windows" คุณสามารถเลือก "เกี่ยวกับ" จากเมนู "วิธีใช้" ของ "ตัวจัดการโปรแกรม" หรือ "ตัวจัดการไฟล์" ใน Windows NT3.51 หรือเลือก "เกี่ยวกับ" จากเมนู "วิธีใช้ของ Windows Explorer" ใน Windows 95 และ Windows NT4.0 เพื่อตรวจจับเปอร์เซ็นต์ของทรัพยากรระบบที่เหลืออยู่ แอปพลิเคชันยังสามารถเรียกใช้ Windows API GetFreeSystemResources เพื่อเรียกคืนทรัพยากรระบบ ปิดหน้าต่าง (เช่น หน้าต่างฟอร์มที่เปิดและ "โค้ด" และหน้าต่างในแอปพลิเคชันอื่น) และออกจากแอปพลิเคชันที่กำลังทำงานอยู่
-