ในฐานข้อมูล MsgBox Access บนเดสก์ท็อป ฟังก์ชันจะแสดงข้อความในกล่องโต้ตอบ รอให้ผู้ใช้เลือกปุ่ม และส่งกลับ Integer ปุ่มที่ระบุว่าผู้ใช้เลือกปุ่มใดอยู่
ไวยากรณ์
MsgBox(prompt[, buttons][, title][, helpfile][, context])
MsgBoxไวยากรณ์ของฟังก์ชันมีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
prompt |
จำเป็น นิพจน์สตริงที่แสดงเป็นข้อความในกล่องโต้ตอบ ความยาว prompt สูงสุดประมาณ 1024 อักขระ ขึ้นอยู่กับความกว้างของอักขระที่ใช้ ถ้ามี prompt บรรทัดมากกว่าหนึ่งบรรทัด คุณสามารถแยกบรรทัดได้โดยใช้อักขระขึ้นบรรทัดใหม่ (Chr(13)) อักขระขึ้นบรรทัดใหม่ (Chr(10)) หรืออักขระขึ้นบรรทัดใหม่ (Chr(13) & Chr(10)) ระหว่างแต่ละบรรทัด |
buttons |
ไม่จำเป็น นิพจน์ตัวเลขที่เป็นผลรวมของค่าที่ระบุจํานวนและชนิดของปุ่มที่จะแสดง สไตล์ไอคอนที่จะใช้ ข้อมูลประจําตัวของปุ่มเริ่มต้น และโมดอลของกล่องข้อความ ถ้าไม่ระบุค่านี้ ค่าเริ่มต้นสําหรับ buttons คือ0 |
title |
ไม่จำเป็น นิพจน์สตริงที่แสดงในแถบชื่อเรื่องของกล่องโต้ตอบ ถ้าคุณละ titleไว้ ชื่อโปรแกรมประยุกต์จะปรากฏในแถบชื่อเรื่อง |
helpfile |
ไม่จำเป็น นิพจน์สตริงที่ระบุไฟล์วิธีใช้เพื่อใช้ในการแสดงวิธีใช้แบบตามบริบทสําหรับกล่องโต้ตอบ หากมี helpfile ให้ context ไว้ ต้องระบุด้วย |
context |
ไม่จำเป็น นิพจน์ตัวเลขที่เป็นหมายเลขบริบทวิธีใช้ที่กําหนดให้กับหัวข้อวิธีใช้ที่เหมาะสมโดยผู้เขียนวิธีใช้ หากมี context ให้ helpfile ไว้ ต้องระบุด้วย |
การตั้งค่า
การตั้งค่า buttons อาร์กิวเมนต์คือ:
| ค่าคงที่ | ค่า | คำอธิบาย |
|---|---|---|
vbOKOnly |
0 |
แสดง ตกลง เท่านั้น |
vbOKCancel |
1 |
แสดง ตกลง และ ยกเลิก |
vbAbortRetryIgnore |
2 |
แสดง Abortลองใหม่ และละเว้น |
vbYesNoCancel |
3 |
แสดงใช่ไม่ใช่ และยกเลิก |
vbYesNo |
4 |
แสดง ใช่ และ ไม่ใช่ |
vbRetryCancel |
5 |
แสดง ลองอีกครั้ง และ ยกเลิก |
vbCritical |
16 |
แสดงไอคอน ข้อความสําคัญ |
vbQuestion |
32 |
แสดงไอคอน คิวรีคําเตือน |
vbExclamation |
48 |
แสดงไอคอน ข้อความเตือน |
vbInformation |
64 |
แสดงไอคอน ข้อความข้อมูล |
vbDefaultButton1 |
0 |
ทําให้ปุ่มแรกเป็นค่าเริ่มต้น |
vbDefaultButton2 |
256 |
ทําให้ปุ่มที่สองเป็นค่าเริ่มต้น |
vbDefaultButton3 |
512 |
ทําให้ปุ่มที่สามเป็นค่าเริ่มต้น |
vbDefaultButton4 |
768 |
ทําให้ปุ่มที่สี่เป็นค่าเริ่มต้น |
vbApplicationModal |
0 |
กริยาปรับแอปพลิเคชัน ผู้ใช้ต้องตอบกลับกล่องข้อความก่อนที่จะทํางานในโปรแกรมประยุกต์ปัจจุบันต่อไป |
vbSystemModal |
4096 |
กริยาปรับระบบ แอปพลิเคชันทั้งหมดจะถูกระงับจนกว่าผู้ใช้จะตอบสนองต่อกล่องข้อความ |
vbMsgBoxHelpButton |
16384 |
เพิ่มปุ่ม วิธีใช้ ลงในกล่องข้อความ |
VbMsgBoxSetForeground |
65536 |
ระบุหน้าต่างกล่องข้อความเป็นหน้าต่างเบื้องหน้า |
vbMsgBoxRight |
524288 |
จัดข้อความชิดขวา |
vbMsgBoxRtlReading |
1048576 |
ทําให้ข้อความปรากฏพร้อมกับการอ่านจากขวาไปซ้ายบนระบบภาษาฮิบรูและอาหรับ |
กลุ่มแรกของค่า (0 ถึง 5) จะอธิบายจํานวนและชนิดของปุ่มที่แสดงในกล่องโต้ตอบ กลุ่มที่สอง (16, 32, 4864) จะอธิบายลักษณะของไอคอน กลุ่มที่สาม (0, 256, 512) จะกําหนดว่าปุ่มใดเป็นค่าเริ่มต้น กลุ่มที่สี่ (0, 4096) จะกําหนดโมดอลของกล่องข้อความ เมื่อคุณเพิ่มตัวเลขเพื่อสร้างค่าสุดท้ายสําหรับ buttons อาร์กิวเมนต์ ให้ใช้ตัวเลขจากแต่ละกลุ่มเพียงหนึ่งตัวเท่านั้น
หมายเหตุ
ค่าคงที่เหล่านี้จะถูกระบุโดย Visual Basic for Applications ดังนั้น คุณสามารถใช้ชื่อที่ใดก็ได้ในโค้ดของคุณแทนค่าจริง
ส่งกลับค่า
| ค่าคงที่ | ค่า | คำอธิบาย |
|---|---|---|
vbOK |
1 |
ตกลง |
vbCancel |
2 |
ยกเลิก |
vbAbort |
3 |
ยก เลิก |
vbRetry |
4 |
ลองใหม่ |
vbIgnore |
5 |
ละเว้น |
vbYes |
6 |
ใช่ |
vbNo |
7 |
ไม่มี |
ข้อสังเกต
เมื่อทั้งสองhelpfileและcontextมีให้ ผู้ใช้สามารถกด F1 ใน Windows หรือวิธีใช้ใน macOS เพื่อดูหัวข้อวิธีใช้ที่ตรงกับcontext แอปพลิเคชันโฮสต์บางตัว เช่น Microsoft Excel จะเพิ่มปุ่ม วิธีใช้ ลงในกล่องโต้ตอบโดยอัตโนมัติด้วย
ถ้ากล่องโต้ตอบแสดงปุ่ม ยกเลิก การกด Esc จะมีผลเหมือนกับการเลือก ยกเลิก ถ้ากล่องโต้ตอบมีปุ่ม วิธีใช้ วิธีใช้แบบตามบริบทจะมีให้สําหรับกล่องโต้ตอบนั้น อย่างไรก็ตาม จะไม่มีการส่งกลับค่าใดๆ จนกว่าผู้ใช้จะเลือกปุ่มใดปุ่มหนึ่ง
หมายเหตุ
เมื่อต้องการระบุอาร์กิวเมนต์ที่มีชื่อมากกว่าอาร์กิวเมนต์แรก คุณต้องใช้ MsgBox ในนิพจน์ เมื่อต้องการละบางอาร์กิวเมนต์ที่ใช้ระบุตําแหน่ง คุณต้องใส่ตัวคั่นจุลภาคที่สอดคล้องกัน
ตัวอย่าง
หมายเหตุ
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA)
ตัวอย่างนี้ใช้MsgBoxฟังก์ชันเพื่อแสดงข้อความแสดงข้อผิดพลาดที่ร้ายแรงในกล่องโต้ตอบที่มีปุ่ม ใช่ และ ไม่ใช่ ปุ่ม ไม่ ถูกระบุเป็นการตอบสนองเริ่มต้น ค่าที่ MsgBox ส่งกลับโดยฟังก์ชันจะขึ้นอยู่กับปุ่มที่ผู้ใช้เลือก ตัวอย่างนี้ถือว่าDEMO.HLPเป็นไฟล์วิธีใช้ที่มีหัวข้อที่มีหมายเลขบริบทวิธีใช้เท่ากับ1000
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "MsgBox Demonstration"
Help = "DEMO.HLP"
Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
Else ' User chose No.
MyString = "No" ' Perform some action.
End If