Displays a message in a dialog box, waits for the user to choose a button, and returns a value indicating which button the user has chosen.
MsgBox(prompt[, buttons][, title][, helpfile, context])
The MsgBox function syntax has these named arguments:
Part |
Description |
prompt |
String expression displayed as the message in the dialog box. The maximum length of prompt is approximately 1024 characters, depending on the width of the characters used. If prompt consists of more than one line, you can separate the lines using either a carriage return character (Chr(13)), a linefeed character (Chr(10)), or carriage return-linefeed character combination (Chr(13) & Chr(10)) between each line. |
buttons |
Numeric expression that is the sum of values specifying the number and type of buttons to display, the icon style to use, the identity of the default button, and the modality of the message box. If omitted, the default value for buttons is 0. |
Part |
Description |
title |
String expression displayed in the title bar of the dialog box. If you omit title, the application name is placed in the title bar. |
helpfile |
String expression that identifies the Help file to use to provide context-sensitive Help for the dialog box. If helpfile is provided, context must also be provided. |
context |
Numeric expression that is the Help context number the Help author assigned to the appropriate Help topic. If context is provided, helpfile must also be provided. |
The buttons argument settings are:
Constant |
Value |
Description |
vbOKOnly |
0 |
Display OK button only. |
vbOKCancel |
1 |
Display OK and Cancel buttons. |
vbAbortRetryIgnore |
2 |
Display Abort, Retry, and Ignore buttons. |
vbYesNoCancel |
3 |
Display Yes, No, and Cancel buttons. |
vbYesNo |
4 |
Display Yes and No buttons. |
vbRetryCancel |
5 |
Display Retry and Cancel buttons. |
vbCritical |
16 |
Display Critical Message icon. |
vbQuestion |
32 |
Display Warning Query icon. |
vbExclamation |
48 |
Display Warning Message icon. |
vbInformation |
64 |
Display Information Message icon. |
vbDefaultButton1 |
0 |
First button is default. |
vbDefaultButton2 |
256 |
Second button is default. |
vbDefaultButton3 |
512 |
Third button is default. |
vbApplicationModal |
0 |
Application modal; the user must respond to the message box before continuing work in the current application. |
vbSystemModal |
4096 |
System modal; all applications are suspended until the user responds to the message box. |
The first group of values (0 – 5) describes the number and type of buttons displayed in the dialog box; the second group (16, 32, 48, 64) describes the icon style; the third group (0, 256, 512) determines which button is the default; and the fourth group (0, 4096) determines the modality of the message box. When adding numbers to create a final value for the argument buttons, use only one number from each group.
Note These constants are specified by Visual Basic for applications. As a result, the names can be used anywhere in your code in place of the actual values.
Constant |
Value |
Button chosen |
vbOK |
1 |
OK |
vbCancel |
2 |
Cancel |
vbAbort |
3 |
Abort |
vbRetry |
4 |
Retry |
vbIgnore |
5 |
Ignore |
vbYes |
6 |
Yes |
vbNo |
7 |
No |
When both helpfile and context are provided, the user can press F1 to view the Help topic corresponding to the context. Some host applications (for example Microsoft Excel) also automatically add a Help button to the dialog box.
If the dialog box displays a Cancel button, pressing the ESC key has the same effect as choosing Cancel. If the dialog box contains a Help button, context-sensitive Help is provided for the dialog box. However, no value is returned until one of the other buttons is chosen.
Note If you want to specify more than the first named argument, you must use MsgBox in an expression. If you want to omit some positional arguments, you must include the corresponding comma delimiter.
InputBox Function.
You can use the MsgBox function in Microsoft Access to create a formatted error message similar to built-in error messages displayed by Microsoft Access. This function permits you to supply a string in three sections for the prompt argument. You separate the sections with the at sign (@).
The following example displays a formatted dialog box with a sectioned string. The first section of text in the string is displayed as a bold heading. The second section is displayed as plain text beneath that heading. The third section is displayed as plain text beneath the heading “Solution”, which the function provides for you.
MsgBox "Wrong button!@This button doesn't work.@Try another.", _ vbOKOnly + vbExclamation
Note To display a message box without an icon in Microsoft Access, simply omit any constant that would denote an icon, or supply a value of zero for the buttons argument, as in the following example.
MsgBox "No icons included.", 0
This example uses the MsgBox function to display a critical-error message in a dialog box with Yes and No buttons. The No button is specified as the default response. The value returned by the MsgBox function depends on the button chosen by the user. This example assumes that DEMO.HLP is a Help file that contains a topic with a Help context number equal to 1000.
Msg = "Do you want to continue ?" ' Define message.= vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons.= "MsgBox Demonstration" ' Define title.= "DEMO.HLP" ' Define Help file.= 1000 ' Define topic' ' context. ' Display message.= MsgBox(Msg, Style, Title, Help, Ctxt)Response = vbYes Then ' User chose Yes. MyString = "Yes" ' Perform some action. ' User chose No. MyString = "No" ' Perform some action.If
The following example uses the MsgBox function to create a formatted error message in Microsoft Access. Note the use of the at sign (@) to denote the different sections of the string.
Sub CustomMessage() Dim strMsg As String, strInput As String ' Initialize string. strMsg = "Number outside range.@You entered a number that is " _ & "less than 1 or greater than 10.@Press OK to enter " _ & "the number again." ' Prompt user for input. strInput = InputBox("Enter a number between 1 and 10.") ' Test value of user input. Do While strInput < 0 or strInput > 10 If MsgBox (strMsg, vbOkCancel, "Error!") = vbOk Then strInput = InputBox("Enter a number between 1 and 10.") End If Loop ' Display user's correct input. MsgBox "You entered the number " & strInputSub