Access - Abrir formulario

 
Vista:

Abrir formulario

Publicado por Eduardo (6 intervenciones) el 05/04/2007 15:20:35
hola tengo un formulario de facturas y otro de lineas de factura, el primero tiene un boton que me abre el segundo para dar de alta registros contenidos en el codigo de factura que paso del primer formulario al segundo. El segundo formulario tiene un boton que me cierra este formulario y me abre el primero. El problema que tengo es que cuando cierro el formulario me almacena un registro en blanco en la tabla de lineas de factura. Alguien me podria decir como solucionarlo, gracias.
El codigo del boton es el siguiente

Private Sub Close1Button_Click()
On Error GoTo Err_Close1Button_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "facturas"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Close acForm, "Lineasfactura"
Exit_Close1Button_Click:
Exit Sub
Err_Close1Button_Click:
opcion = MsgBox("No se puede cerrar el formulario.", vbCritical, "")
Resume Exit_Close1Button_Click
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
Imágen de perfil de Alejandro

Evitar crear registro en blanco al cerrar formulario de líneas de factura

Publicado por Alejandro (4142 intervenciones) el 07/08/2023 21:55:51
El problema que estás experimentando con la creación de un registro en blanco en la tabla de líneas de factura se debe a que al cerrar el formulario, Access intenta guardar el registro actual y, como el registro aún no ha sido completado con todos los datos necesarios, se crea un registro en blanco. Para evitar esto, puedes realizar algunas modificaciones en el código del botón "Close1Button_Click". A continuación, te muestro cómo hacerlo:

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
Private Sub Close1Button_Click()
    On Error GoTo Err_Close1Button_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "facturas"
 
    ' Verificar si se ha ingresado algún dato en el formulario de líneas de factura antes de cerrarlo
    If Me.NewRecord Then
        opcion = MsgBox("Debe completar los datos en el formulario de líneas de factura antes de cerrarlo.", vbExclamation, "Datos incompletos")
        Exit Sub
    End If
 
    DoCmd.OpenForm stDocName, , , stLinkCriteria
 
    ' Cerrar el formulario de líneas de factura solo si no hay datos en el subformulario
    If Me.RecordsetClone.RecordCount = 0 Then
        DoCmd.Close acForm, "Lineasfactura"
    End If
 
    Exit_Close1Button_Click:
    Exit Sub
 
Err_Close1Button_Click:
    opcion = MsgBox("No se puede cerrar el formulario.", vbCritical, "")
    Resume Exit_Close1Button_Click
End Sub

El código anterior verifica si se ha ingresado algún dato en el formulario de líneas de factura antes de cerrarlo. Si hay datos en el subformulario (es decir, si el formulario de líneas de factura tiene registros), entonces no se cerrará el formulario, evitando así que se cree un registro en blanco en la tabla.

Espero que esta solución te sea útil. ¡Buena suerte con tu base de datos, Eduardo!
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