Ayuda en la gestión de una base de datos sobre eventos

Hola, necesito saber como puedo sacar mensajes de error al ejecutar un evento si no existe la empresa que busco por ejemplo. O cualquier otro evento.
Gracias.

1 respuesta

Respuesta
1
Los mensajes de error se pueden crear utilizando cajas de mensaje y colocando la expresión que tu desees que aparezca, así como el contexto de la caja (Error, Información, Preguntas de Si/No, Si, no, Cancel etc.). Ahora yo te presento un ejemplo de cuando no exista un registro en una tabla, esto desde el ambiente de desarrollo de visual basic en access.
DoCmd.SetWarnings False
Con esto deshbilitas todos los mensajes de error de el motor de base de datos. Seguido realizas una condición, para este caso yo presento un recorset que busca un registro en una tabla y este no existe.
Dim base as Database
Dim rs as Recordset
Set base = CurrentDB
Set rs = base.OpenRecordset("Select * From Empresas WHERE Empresa= " & "'" & me.empresa & "'" & "")
If rs.EOF Or rs.BOF Then
msgbox "No existe la Empresa", vbCritical, "Error"
End If
DoCmd.SetWarnings True
Como te darás cuenta voy hacia una tabla la cual llamo "Empresas" y busco un registro por el campo empresa mediante un Recorset que contiene una consulta a la cual le doy el parámetro empresa desde el formulario, claro que este código puede vivir en algún evento del Form, ya se al abrir el form, al presionar un botón, etc, de no haber puesto la instrucción que deshabilita los mensajes de error del motor de bases de datos te enviaría el propio motor su error, cosa que no queremos, por eso es que el msgbox que pongo es el mensaje que el usuario ver y tu decidirás las opciones que quieras darle, otro mensaje de error que pudieras porner si el código que te presento lo tuvieras en un botón seria como el de hacer click cuando la caja esta en blanco.
Al final del código vuelvo a activar los mensajes de error del motor por que de nos ser así quedarían desactivados para todo el proyecto en cualquier circunstancia. Espero esto te sirva si tienes alguna duda no dudes en decírmelo.
Hola, mira esto es lo que tengo:
Private Sub Identificador_Click()
DoCmd.SetWarnings False
Dim rs As Recordset
DoCmd.OpenForm "Seleccionar Empresa", , , "[Identificador]=[Escribe el identificador]"
Set rs = CurrentDb.OpenRecordset
("SELECT * FROM [Datos legales] WHERE [Datos legales].[Identificador]=" & "'" & Me.[Identificador] & "'" & "")
If rs.EOF Or rs.BOF Then
MsgBox "No existe la Empresa", vbCritical, "Error"
End If
DoCmd.SetWarnings True
End Sub
Ahora tengo esto que no funciona y al principio tenia lo siguiente, que lo que hacia es al pulsar sobre la caja de texto del identificador me salia un mensaje que me pedía que escribiese el identificador, lo escribo y me abre el mismo formulario pero con los datos referentes a ese identificador.
Private Sub Identificador_Click()
DoCmd.OpenForm "Seleccionar Empresa", , , "[Identificador]=[Escribe el identificador]"
End Sub
Lo que quiero es que si no existe el identificador que escribo en la caja que me de el error de que no existe la empresa que busco. Supongo que lo que he escrito arriba debe ser un error garrafal porque no le encuentro ni pies ni cabeza... ayudame por favor.
Por cierto que [Datos legales] es la tabla donde tengo esa información y [Identificador] es el campo que busco. El Formulario donde hago todo esto se llama "Seleccionar Empresa"
Gracias.
Disculpa la tardanza en contestarte pero es que estaba atiborrado de trabajo y no tuve tiempo para nada más. Mira te recomiendo que pruebes con este código, seguro esto que te dará resultado y de no ser lo que necesitas házmelo saber.
El botón que abre el formulario dejalo como lo tenias:
Private Sub Identificador_Click()
DoCmd.OpenForm "Seleccionar Empresa", , , "[Identificador]=[Escribe el identificador]"
End Sub
Ahora en el evento load de tu formulario "Seleccionar empresa" tecleate este codigo
Private Sub Form_Load()
If Me.Recordset.EOF And Me.Recordset.BOF Then
MsgBox "No existe ningún registro para ese criterio", vbCritical
DoCmd.Close
End if
End Sub
Con este código tu personalizas la comparación de el motor de base de datos y de no encontrar el registro en la tabla manda el menja y lo cierra. Pero esto ya desde el formulario que debiera contener los datos.
By...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas