Access y VBA
Blog de Access y VBA del Buho


Inicio


Acerca de
Suscríbete al blog

Categorías
General [3] Sindicar categoría
Access con Codigo VBA [15] Sindicar categoría

Archivos
Septiembre 2005 [11]
Agosto 2005 [5]
Junio 2005 [2]

Sindicación (RSS)
Artículos
Comentarios

 


Msgbox especiales

El objeto Msgbox de VBA (Y de VB) es MODAL (Significa que mientras no se cierre, el código que va detrás de él se detiene y también impide manipular o abrir cualquier otro objeto de la ventana Base de datos). Algunas veces este comportamiento puede ser un incoveniente,ya que simplemente deseamos poner un aviso en pantalla, pero que el programa siga su marcha. Otras veces, un Msgbox colocado en cierta parte del codigo, puede bloquear un registro, si el usuario se va a tomar el bocata y se olvida de presionar cualquiera de los botones del Msgbox de VBA

Hay posibilidades de que esto no sea así, teniendo objetos Msgbox alternativos (De igual estética y funcionalidad que el nativo VBA y sin la utilización de formularios «simuladores» de Msgbox) que bien no sean modales o que simplemente estén temporizados y se cierren al X tiempo que nosotros deseemos.

Su implmentación es muy simple y para muestra dos «botónes»:

Ejemplo de Msgbox NO modal

Option Explicit

Private Declare Function MsgboxNoModal Lib "user32" Alias _     "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, _

 ByVal lpCaption As String, ByVal wType As Long) As Long

Const MB_ICONASTERISK = &H40&

'Y luego ya se llama asi desde cualquier sitio

Sub EjemploMsgboxNoModal()

  Call MsgboxNoModal(100, "Esto es NO modal.", _ 

      "Ejemplo Msgbox No Modal ", MB_ICONASTERISK)

End Sub

Las otras constantes de los botones e iconos son:

Las otras constantes de los botones e iconos son:

Const MB_DEFBOTON1 = &H0&

Const MB_DEFBOTON1 = &H0&

Const MB_DEFBOTON2 = &H100&

Const MB_DEFBOTON3 = &H200&

Const MB_ICONOASTERISCO = &H40&

Const MB_ICONOEXCLAMACION = &H30&

Const MB_ICONOHAND = &H10&

Const MB_ICONOINFORMACION = MB_ICONOASTERISCO

Const MB_ICONOPREGUNTA = &H20&

Const MB_ICONOSTOP = MB_ICONOHAND

Const MB_OK = &H0&

Const MB_OKCANCEL = &H1&

Const MB_YESNO = &H4&

Const MB_YESNOCANCEL = &H3&

Const MB_ABORTRETRYIGNORE = &H2&

Const MB_RETRYCANCEL = &H5&

Ejemplo de Msgbox Temporizado

'Especial para los usuarios despistados

'*********** Código ***************

'

' msgboxTemporal

'

' Rutina que demuestra el uso del

' método PopUp del objeto wshShell

' Nos da la posibilidad de estable-

' cer un tiempo de duración en su

' segundo argumento. Por lo demás

' es casi igual que el MsgBox (así

' como el uso de sus constantes vb)

' Autor: Juan M. Afán de Ribera

' Fecha: Junio 2003

'

Sub msgboxTemporal() 

  Dim wShell As Object 'New wshShell 

  Dim Respuesta As Integer 

  Set wShell = CreateObject("WScript.Shell") 

  Respuesta = wShell.PopUp("Estaré abierto 5 segundos", _ 

      5, "Método wshShell.Popup", vbYesNo + vbInformation) 

  Select Case Respuesta

    Case -1: MsgBox "No has apretado ningún botón"

    Case vbYes: MsgBox "Has apretado el botón ""Sí"" "

    Case vbNo: MsgBox "Has apretado el botón ""No"" "

  End Select 

  Set wShell = Nothing 

End Sub

'********* Fin código *************

Y me falta uno muy chulo. Pruebale:

Y me falta uno muy chulo. Pruebale:

EJEMPLO MSGBOX ESPECIAL

Dim Respuesta As Integer

Respuesta = Eval("MsgBox('Atención: Este registro no existe' " & _ 

    "& chr(13) & chr(10) & " & _ 

    "'Confirme su decisión de dar de alta este nuevo registro@" & _ 

    "¿Desea crear este nuevo registro?@',4,'Aviso')")

If Respuesta = 6 Then 

  'Codigo para crear

End If

Este último Msgbox que acabas de ver es un tanto especial, pues pone en negrita parte del texto. Chulo...¿Verdad?

Juan Amador tambien ha realizado una aplicacion MDE que podrás referenciar en tus aplicaciones de Access para poner Msgbox personalizados. Puedes decargarte el fichero (Y leer sus instrucciones de uso) en esta dirección:
http://www.geocities.com/famaads/jmmsgbox/index.html
O bien, desde este propio foro, en elsiguiente enlace:
www.mvp-access.com/buho/ficheros/jmmsgbox.zip
! Gracias Juan !

Y ya para rizar el rizo e interaccionar con el objeto nativo Msgbox de Visual Basic y de VBA para access, deberías visitar este enlace. Podrás poner iconos a los Msgbos,cambiar el texto de los botones etc etc. No estoy hablando de crearte un formulario que simule un Msgbox, te estoy hablando del propio MSGBOX....
Pulsa AQUI

Por ErBuho - 31 de Agosto, 2005, 12:50, Categoría: Access con Codigo VBA
Enlace Permanente | Referencias (0)




<<   Agosto 2005  >>
LMMiJVSD
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31     

Enlaces
eGrupos
ZoomBlog

 

Blog alojado en ZoomBlog.com