Tom, it's not actually that hard to get this kind of form going.
You create a form with a text box (txtMsg), 4 command buttons (cmd1, cmd2,
cmd3, cmd4), and possibly 4 image controls (for critical, exclamation,
information, and question.) Set the form's properties, for popup and modal.
Create a function that opens the dialog, passing the information in
OpenArgs, like this:
docmd.OpenForm "fdlgMsgBox", WindowMode:=acDialog, _
OpenArgs:="Hello message, vbOk, My caption"
Then in the Open event of the form, parse OpenArgs into an array, and handle
each component. This kind of thing:
Private Sub Form_Open(Cancel As Integer)
Dim varArray As Variant
Dim iUbound As Integer
Dim lngMsgBoxStyle As Long
varArray = Split(Me.OpenArgs, ",")
If IsArray(varArray) Then
If iUbound >= 0 Then
If varArray(0) <> vbNullString Then
Me.txtMsg = varArray(0)
End If
If iUbound >= 1 Then
If IsNumeric(varArray(1)) Then
lngMsgBoxStyle = varArray(1)
'Figure out your buttons/image
Select Case (lngMsgBoxStyle And vbOK)
Case vbOK
With Me.cmd1
.Visible = True
.Caption = Ok
End With
Case vbOKCancel
With Me.cmd1
.Visible = True
.Caption = Ok
End With
With Me.cmd2
.Visible = True
.Caption = Cancel
End With
'etc
End Select
End If
End If
If iUbound >= 2 Then
If varArray(2) <> vbNullString Then
Me.Caption = varArray(2)
End If
End If
End If
End If
End If
End Sub