Como ejecutar segundo comando VBA con un msgbox

Quisiera si me pueden ayudar con el siguiente dilema que se me presenta. En un formulario Access genere dos botones para que me ejecute lo que registre.

El 1° toma foto de Webcam y el 2° me permite buscar la imagen en la carpeta guardada

Lo que quiero hacer es que cuando ejecute el 1° botón de tomar foto, al terminar el proceso me envié un mensaje y al darle Aceptar me ejecute el comando del 2° botón automáticamente. Este es lo escrito Y lo que trate de hacer:

Pero me da este error y ahí quedo. Espero haberme explicado bien y me puedan orientar nuevamente. De antemano, gracias.

2 Respuestas

Respuesta
2

Con el mensaje de error no se ve el código que tienes, pero te comento:

1º/ Si, como creo, BuscaArchivo es una función que te abre el explorador para que selecciones un archivo y luego lo uses, no le puedes asignar un valor directamente: una función es "algo" que devuelve un valor, pero no es una variable para que le puedas asignar tú el valor directamente.

2º/ Para que un msgbox no lance solo un mensaje, sino que devuelva un valor (al pulsar un botón) que puedas capturar y trabajar con él, has de cambiar un poco la sintaxis y ponerlo con paréntesis, por ejemplo:

Dim resp As Integer
resp=Msgbox("¿Seguro que quieres continuar?",vbYesNo,"Confirmar acción")
If resp=vbYes Then
   'Aquí lo que quieras si pulsa el botón Sí
Else
   'Aquí lo que quieras si pulsa el botón NO
End If

También lo puedes hacer directamente:

If Msgbox("¿Seguro que quieres continuar?",vbYesNo,"Confirmar acción")=vbYes Then
  'Aquí lo que quieras si pulsa el botón Sí
Else
  'Aquí lo que quieras si pulsa el botón NO
End If

¡Gracias! Sveinbjorn El Rojo, la primera opción que me indico me funciono a la perfección era más sencillo de lo que yo pretendía usar. Trate de adaptar otro comando similar de otro formulario y no supe. Bueno vamos aprendiendo día a día...

Muchas gracias...

Respuesta
1

Varias cosas, por un lado estás haciendo una redundancia. Le dices que

Buscaarchivo= msgbox...

Por otro lado en la condición If es vbok no vbokonly 

If buscaarchivo=vbok then

llama a buscaarchivo

Pero buscaarchivo no es un procedimiento, es una función que has definido arriba

Vamos a suponer que los botones se llaman comando1 y comando 2. En sus eventos Al hacer clic tienes una instrucción en cada uno. En el caso de Comando1, algo como

dim buscaarchivo as integer(ya que sino no tendría razón de ser lo de)

Buscaarchivo=msgbox...

if buscaarchivo=.... then

call Comando2_Click()

Es decir, que si se cumple la condición de que buscaarchivo=vbok entonces ejecuta la instrucción que hay el el evento al hacer clic del botón 2

¡Gracias! Julián González Cabarcos, no savia que se podía hacer referencia a un botón solo con el nombre, lo puse en practica y me resulta impeque. Aquí dejo lo que hice, para quien le pueda servir, ya que le agregue al mensaje un dato adicional;

Dim BuscaArchivo As Integer, mensaje As Integer
Dim FP As String
mensaje = vbOKOnly + vbDefaultButton1 + vbInformation
FP = FichaPaciente.Value
BuscaArchivo = MsgBox("Imagen registrada OK" & vbNewLine & "Debe seleccionar imagen con el nombre" & vbNewLine & "" & FP, mensaje, "Registro Imagen Cliente")
If BuscaArchivo = vbOK Then
Call Comando111_Click
End If

Muchas gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas