Access - VBYES/NO MSGBOX

 
Vista:
sin imagen de perfil

VBYES/NO MSGBOX

Publicado por cesar (8 intervenciones) el 30/01/2012 16:32:58
Buen dia amigos,

veran tengo un pequeño sistema donde registro algunas consultas de la escuela, cada alumno tiene un ID, pero hay veces en los que se duplican, con ayuda de un web amigo se realizo un buscador que encuentra los folios identicos y los muestra en un msgbox con el FOLIO Y el nombre del ALUMNO.
Codigo:

Private Sub cmdbusca_Click()
Dim DB As Database
Dim Rs As Recordset
Dim sSQL As String
Dim sPalabraABuscar As String
sPalabraABuscar = txtpalabra
Set DB = CurrentDb
sSQL = "SELECT D_name,ID_fol FROM Idea_Desc WHERE D_name LIKE '*" & sPalabraABuscar & "*'"



Set Rs = DB.OpenRecordset(sSQL)

If Not Rs.EOF And Not Rs.BOF Then
While Not Rs.EOF
MsgBox Rs.Fields("ID_fol") & "-" & Rs.Fields("D_name")


Rs.GetRows

Wend
Else
MsgBox "La palabra clave que ingreso no se encontro. Su folio no se encuentra duplicado. Pulse OK para seguir el proceso de registro", vbInformation, ":::Atencion!"
DoCmd.OpenForm "Form_IU_Idea"
Cancel = True
End If
Rs.Close

PERO QUIERO QUE SALGA UN MSGBOX CON LAS OPCIONES DE YES / NO, SI ESCOGE YES QUE SIGA EL BUCLE Y SI ESCOGE NO, QUE SE CIERRE EL MENSAJE, YA QUE SOLAMENTE APARECE EL BOTON ACEPTAR Y NO SE PUEDE CERRAR EL MENSAJE EL BULCLE SIGUE.

AGRADEZCO SU AYUDA
GRACIAS!!!
End SubPrivate Sub cmdbusca_Click()
Dim DB As Database
Dim Rs As Recordset
Dim sSQL As String
Dim sPalabraABuscar As String
sPalabraABuscar = txtpalabra
Set DB = CurrentDb
sSQL = "SELECT D_CondA,ID_Idea FROM Idea_Desc WHERE D_CondA LIKE '*" & sPalabraABuscar & "*'"



Set Rs = DB.OpenRecordset(sSQL)

If Not Rs.EOF And Not Rs.BOF Then
While Not Rs.EOF
MsgBox Rs.Fields("ID_Idea") & "-" & Rs.Fields("D_CondA")


Rs.GetRows

Wend
Else
MsgBox "La palabra clave que ingreso no se encontro. Su idea no se encuentra registrada aun. Pulse OK para seguir el proceso de registro", vbInformation, ":::Atencion!"
DoCmd.OpenForm "Form_IU_Idea"
Cancel = True
End If
Rs.Close


End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

VBYES/NO MSGBOX

Publicado por angelessebas (208 intervenciones) el 30/01/2012 17:26:55
Hola,

If MsgBox("Mensaje que quieras poner", vbYesNo) = vbYes Then

Si pulsas Si haz....

else

Si pulsas No haz...

End If

Saludos, Angeles

Página supuestos y soluciones en access: http://angelessebas.es/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VBYES/NO MSGBOX

Publicado por cesar (8 intervenciones) el 31/01/2012 14:15:24
Primero muchas gracias por contestar mi pregunta amigo,

pero tengo duda en donde poner el if msgbox en la linea del mensaje que avienta:

MsgBox Rs.Fields("ID_fol") & "-" & Rs.Fields("D_name")


if msgbox ("espera a que el sistema revise el folio", vbYesNo) =vbTes then

msgbox Rs.Fields ("ID_fol")&"-"& Rs.Fields("D_name")

else

end if

si lo coloco en esta sintaxis me aparece un mensaje en el que si pulso si el bucle se ejecuta sin parar, si pulso no, el bucle no se ejecuta, pero a mi me gustaria que en em mensaje de la ejecucion del bucle, en el que esta mostrando los folios repetidos uno por uno apareciera un boton que al pulsarlo se acabara el bucle, ya que cierro el mensaje y me muestra otro folio tengo que recurrir al adminuitrador de tareas y finalizar la aplicacion.

GRACIAS Y ESPERO SU AYUDAA UNA VEZ MAS AMIGO!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

VBYES/NO MSGBOX

Publicado por angelessebas (208 intervenciones) el 31/01/2012 17:34:15
Hola,

Yo lo haría de la siguiente forma:

Private Sub cmdbusca_Click()
Dim DB As Database
Dim Rs As Recordset
Dim sSQL As String
Dim sPalabraABuscar As String
sPalabraABuscar = txtpalabra
Set DB = CurrentDb
sSQL = "SELECT D_name,ID_fol FROM Idea_Desc WHERE D_name LIKE '*" & sPalabraABuscar & "*'"



Set Rs = DB.OpenRecordset(sSQL)

If not rs.eof then

MsgBox Rs.Fields("ID_fol") & "-" & Rs.Fields("D_name")

Else
MsgBox "La palabra clave que ingreso no se encontro. Su folio no se encuentra duplicado. Pulse OK para seguir el proceso de registro", vbInformation, ":::Atencion!"
DoCmd.OpenForm "Form_IU_Idea"
Cancel = True
End If
Rs.Close

es decir: si NO es final de fichero (quiere decir que el recordset devuelve registros) muestrame el registro, sino ---> abre el formulario.

Al poner:

If Not Rs.EOF And Not Rs.BOF Then

le estas diciendo que NO sea final de fichero NI principio

Saludos, Angeles

*** También lo puedes hacer utilizando la función DLookup (DBúsq) y ver si te devuelve nulo o no, en mí página, en el apartado curso de Access tienes ejemplos de como hacerlo.

Página supuestos y soluciones en access: http://angelessebas.es/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VBYES/NO MSGBOX

Publicado por cesar (8 intervenciones) el 31/01/2012 18:13:03
Hola amigo, gracias por ayudarme, no tengo gran conocimiento en access, es por eso que he estado batallando con los problemas que presentan en esta herramienta.

Me gusto mucho tu aportacion, ya que se cierra el mensaje cuando lo quieres,

Al pulsar de nuevo el boton buscar te muestra el mismo registro encontrado.

Habria forma de que al pulsar nuevamente el boton buscar te muestre el siguiente registro que contenga esa palabra.
de manera que se mueva por los campos


Muchas Gracias por ayudar!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

VBYES/NO MSGBOX

Publicado por angelessebas (208 intervenciones) el 31/01/2012 18:32:19
Hola,

Tendrás que hacer un bucle en el recordset:

If not rs.eof then

do while not rs.eof

MsgBox Rs.Fields("ID_fol") & "-" & Rs.Fields("D_name")

rs.Movenext
Loop

Else

Saludos, Angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VBYES/NO MSGBOX

Publicado por cesar (8 intervenciones) el 31/01/2012 20:05:06
Hola Angeles, gracias por tu apoyo, veras al poner el bucle en el recordset surge el mismo detalle que estaba en primera estancia, se muestran los registros pero no puedo cerrar el mensaje para realizar otra accion, al intentar cerrarlo me sigue mostrando los registros.

:)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

VBYES/NO MSGBOX

Publicado por angelessebas (208 intervenciones) el 31/01/2012 20:12:32
Hola,

If not rs.eof then

do while not rs.eof

MsgBox Rs.Fields("ID_fol") & "-" & Rs.Fields("D_name")

rs.Movenext
If rs.eof then
exit do
end if
Loop

Else

Saludos, Angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VBYES/NO MSGBOX

Publicado por cesaar (8 intervenciones) el 01/02/2012 17:57:49
Hola Angeles, disculpa la molestia pero no me sigue funcionando, una vez que se muestran los registros al darle aceptar o cerrar el mensaje ya no hay marcha atras, no puedo cerrarlo o controlar registro por registro.


Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar