Realizar búsqueda en BD Access
Hola muy buenos días,
Antes que nada perdone por molestarle y agradecerle mucho su ayuda.
Estoy realizando un programa para el archivo central de una empresa que realizará 1- Control de mediante búsqueda en la BD de carpetas por código. 2- Ingresar nuevos registros en la BD. 3- Otras tareas. La BD esta relizada en Access.
El problema que tengo es el siguiente: Yo hago la búsqueda para prestar una carpeta la cual la realizo por código y seleccionar la persona a quien se le prestará la carpeta y debe mostrarme en textbox y combobox el código de la carpeta, el nombre, la descripción, el estante, tramo y cara del archimovil en donde se encuentra guardada físicamente y, a su vez, esos datos mostrados debe almacenarlos de forma automática en una tabla llamada control de prestamos como un registro para evitar que se pierdan las carpetas e imprimir una hoja con esos mismos datos, todo de foma automática con un solo clic en el botón buscar. Ok eso lo hace perfectamente y sin problemas, pero, si realizo la búsqueda de un código que no existe igual hace lo antes descrito sin advertir al usuario que no existe el codigol en la BD. ¿Cómo hago para que con cada búsqueda revise los códigos al macenados en la BD y mustre los resultados en caso de que exista y sino existe pues que advierta al usuario y no haga el proceso antes descrito hasta que el usuario corrija?
Te dejo el código del proceso antes decrito para que te ayude a entender más mi duda:
Private Sub cmdAceptar_Click(Index As Integer)
'Verifica que selecciona la persona a prestar carpetas con un if, si ya selecciono relaiza
'la busqueda e imprime el formulario, si no, entonces arroja un mensaje y no hace nada
If cmdPersonaRecibe(3).Text = "" Then
MsgBox "Debe Debe seleccionar la persona a prestar.", vbExclamation, "Aviso Importante"
Else
'Abre el Recordset
AdoB.Recordset.AddNew
Ado.Refresh
'Realiza busqueda por codigo
Ado.Recordset.Find "codigo_carpeta ='" & txtBuscarCodigo & "'"
'Visualiza en los txt la busqueda realizad y los prepara para guardar
AdoB.Recordset.Fields!fecha_prestamo_carpeta = txtFecha(0)
AdoB.Recordset.Fields!hora_prestamo_carpeta = txtHora(1)
AdoB.Recordset.Fields!codigo_carpeta = txtCodigo(0)
AdoB.Recordset.Fields!nombre_carpeta = txtCarpeta(1)
AdoB.Recordset.Fields!estante_carpeta = cmdEstante(2)
AdoB.Recordset.Fields!estante_cara_carpeta = cmdCara(3)
AdoB.Recordset.Fields!estante_tramo_carpeta = cmdTramo(0)
AdoB.Recordset.Fields!descripcion_carpeta = txtDescripcion(4)
AdoB.Recordset.Fields!persona_recibe_carpeta = cmdPersonaRecibe(3)
'Guarda la busqueda realizada
AdoB.Recordset.Update
AdoB.Refresh
'imprime la busqueda realizada
cmdAceptar(11).Visible = False
cmdSalir(12).Visible = False
frmBuscar_Administración_general_y_organización.PrintForm
cmdAceptar(11).Visible = True
cmdSalir(12).Visible = True
End If
End Sub
Private Sub cmdSalir_Click(Index As Integer)
frmBuscar_Sistema_de_Clasificación_tablas_y_Grupos.Show
Hide
End Sub
Private Sub Form_Load()
'muestra la fecha en txt
txtFecha(0).Text = Date
End Sub
Private Sub tmrControlHora_Timer()
'Muestra la hora en txt
txtHora(1) = Format(Now, "hh:mm:ss")
End Sub
Nuevamente muchas gracias
Saludos Cordiales.
Luis.
Antes que nada perdone por molestarle y agradecerle mucho su ayuda.
Estoy realizando un programa para el archivo central de una empresa que realizará 1- Control de mediante búsqueda en la BD de carpetas por código. 2- Ingresar nuevos registros en la BD. 3- Otras tareas. La BD esta relizada en Access.
El problema que tengo es el siguiente: Yo hago la búsqueda para prestar una carpeta la cual la realizo por código y seleccionar la persona a quien se le prestará la carpeta y debe mostrarme en textbox y combobox el código de la carpeta, el nombre, la descripción, el estante, tramo y cara del archimovil en donde se encuentra guardada físicamente y, a su vez, esos datos mostrados debe almacenarlos de forma automática en una tabla llamada control de prestamos como un registro para evitar que se pierdan las carpetas e imprimir una hoja con esos mismos datos, todo de foma automática con un solo clic en el botón buscar. Ok eso lo hace perfectamente y sin problemas, pero, si realizo la búsqueda de un código que no existe igual hace lo antes descrito sin advertir al usuario que no existe el codigol en la BD. ¿Cómo hago para que con cada búsqueda revise los códigos al macenados en la BD y mustre los resultados en caso de que exista y sino existe pues que advierta al usuario y no haga el proceso antes descrito hasta que el usuario corrija?
Te dejo el código del proceso antes decrito para que te ayude a entender más mi duda:
Private Sub cmdAceptar_Click(Index As Integer)
'Verifica que selecciona la persona a prestar carpetas con un if, si ya selecciono relaiza
'la busqueda e imprime el formulario, si no, entonces arroja un mensaje y no hace nada
If cmdPersonaRecibe(3).Text = "" Then
MsgBox "Debe Debe seleccionar la persona a prestar.", vbExclamation, "Aviso Importante"
Else
'Abre el Recordset
AdoB.Recordset.AddNew
Ado.Refresh
'Realiza busqueda por codigo
Ado.Recordset.Find "codigo_carpeta ='" & txtBuscarCodigo & "'"
'Visualiza en los txt la busqueda realizad y los prepara para guardar
AdoB.Recordset.Fields!fecha_prestamo_carpeta = txtFecha(0)
AdoB.Recordset.Fields!hora_prestamo_carpeta = txtHora(1)
AdoB.Recordset.Fields!codigo_carpeta = txtCodigo(0)
AdoB.Recordset.Fields!nombre_carpeta = txtCarpeta(1)
AdoB.Recordset.Fields!estante_carpeta = cmdEstante(2)
AdoB.Recordset.Fields!estante_cara_carpeta = cmdCara(3)
AdoB.Recordset.Fields!estante_tramo_carpeta = cmdTramo(0)
AdoB.Recordset.Fields!descripcion_carpeta = txtDescripcion(4)
AdoB.Recordset.Fields!persona_recibe_carpeta = cmdPersonaRecibe(3)
'Guarda la busqueda realizada
AdoB.Recordset.Update
AdoB.Refresh
'imprime la busqueda realizada
cmdAceptar(11).Visible = False
cmdSalir(12).Visible = False
frmBuscar_Administración_general_y_organización.PrintForm
cmdAceptar(11).Visible = True
cmdSalir(12).Visible = True
End If
End Sub
Private Sub cmdSalir_Click(Index As Integer)
frmBuscar_Sistema_de_Clasificación_tablas_y_Grupos.Show
Hide
End Sub
Private Sub Form_Load()
'muestra la fecha en txt
txtFecha(0).Text = Date
End Sub
Private Sub tmrControlHora_Timer()
'Muestra la hora en txt
txtHora(1) = Format(Now, "hh:mm:ss")
End Sub
Nuevamente muchas gracias
Saludos Cordiales.
Luis.
1 Respuesta
Respuesta de Roberto Alvarado
1