Access - formulario

 
Vista:

formulario

Publicado por ute1 (69 intervenciones) el 12/09/2006 00:13:19
tengo dos bases de datos

1) flota donde cargo los autos con un campo fecha de baja

2) seguros donde cargo las polizas con un campo desde y otro hasta y unol concepto (alta , baja , modificaic on)

yo lo que quiero hacer es cuando estoy cargando en el formulario de polizas una poliza cvon el concepto baja ( campo desde = fecha de baja) , me coloque en la base flota por la patente en el campo fecha de baja la misma fecha

alguien me puede indicar como hacerlo con visual o de otra manera

muchas gracias

ute
buenos aires
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

Actualizar fecha de baja en tabla flota desde formulario de pólizas

Publicado por Alejandro (4142 intervenciones) el 25/07/2023 17:20:51
Para lograr la funcionalidad que deseas, puedes utilizar el evento AfterUpdate del formulario de pólizas para buscar y actualizar el campo "Fecha de baja" en la tabla "Flota" cuando se registra una póliza con el concepto "baja". Aquí te muestro cómo hacerlo con Visual Basic for Applications (VBA) en Access:

1. Abre el formulario de pólizas en modo de diseño.

2. Haz clic con el botón derecho del ratón en el encabezado del formulario y selecciona "Ver código".

3. En el editor de VBA, asegúrate de que estás en el evento "AfterUpdate" del formulario.

4. A continuación, escribe el código VBA para buscar y actualizar el campo "Fecha de baja" en la tabla "Flota":

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
27
28
29
30
Private Sub Concepto_AfterUpdate()
    ' Verificar si el concepto es "baja"
    If Me.Concepto = "baja" Then
        Dim db As DAO.Database
        Dim rsFlota As DAO.Recordset
        Dim fechaBaja As Date
 
        ' Obtener la fecha de baja del campo "Desde" en el formulario de pólizas
        fechaBaja = Me.Desde
 
        ' Abrir la base de datos actual
        Set db = CurrentDb
 
        ' Abrir un recordset basado en la tabla "Flota"
        Set rsFlota = db.OpenRecordset("Flota", dbOpenDynaset)
 
        ' Buscar la patente correspondiente y actualizar el campo "Fecha de baja"
        rsFlota.FindFirst "Patente = '" & Me.Patente & "'"
        If Not rsFlota.NoMatch Then
            rsFlota.Edit
            rsFlota!FechaBaja = fechaBaja
            rsFlota.Update
        End If
 
        ' Cerrar el recordset y la base de datos
        rsFlota.Close
        Set rsFlota = Nothing
        Set db = Nothing
    End If
End Sub

Asegúrate de que los nombres de los campos y tablas en el código (Concepto, Desde, Patente, FechaBaja, Flota) coincidan con los nombres reales que tienes en tu base de datos.

Este código verifica si el concepto de la póliza es "baja", y si es así, busca la patente correspondiente en la tabla "Flota" y actualiza el campo "Fecha de baja" con la misma fecha que se ingresó en el campo "Desde" de la póliza.

Guarda el formulario después de agregar el código y luego prueba el funcionamiento ingresando una nueva póliza con el concepto "baja". De esta manera, el campo "Fecha de baja" en la tabla "Flota" debería actualizarse automáticamente con la misma fecha.

Recuerda siempre hacer una copia de respaldo de tu base de datos antes de realizar cambios significativos en el código o la estructura de la base de datos.
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