Access - Editar un Registro

 
Vista:

Editar un Registro

Publicado por EZE (31 intervenciones) el 21/09/2006 17:16:56
Hola, tengo que editar un registro pero trabajando en un formulario.

Exactamente lo que tengo es un cuadro de lista que me trae varios registros.
Luego, yo debo seleccionar uno de ellos y cambiar el nombre de algunos de sus campos.
Mi problema es como decirle a access el que yo realemente quiero editar, o sea, el que selecciono del cuadro de lista.

para borrar un registro seleccionado yo escribo:
....
....
es.Index = "orig_pres_id"
es.AddNew
es.Seek "=", Me.Lista3.Column(0, fila) 'fila es una variable que lleva el valor listindex
es.Delete
es.Close

Aqui me borra el que yo selecciono de la lista. Esto funciona,
--------------------------------------------------------------------------------------------

... pero para editar no se como se hace referencia al registro que yo quiero editar, siempre me edita el primero de la tabla. Traté de hacer algo parecido como lo hice para borrar pero no me funciona.

¿Cómo se hace?

Gracias.
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

Cómo editar el registro seleccionado desde un cuadro de lista en un formulario

Publicado por Alejandro (4142 intervenciones) el 25/07/2023 22:21:06
Para editar un registro específico que seleccionas en un cuadro de lista en Access, debes usar el método `FindFirst` del objeto `Recordset`. Aquí te muestro cómo puedes hacerlo:

Supongamos que tienes un formulario llamado "frmEditor" con un cuadro de lista llamado "Lista3" que muestra varios registros y algunos campos de esos registros se pueden editar. También supongamos que tienes una tabla llamada "TablaDatos" que contiene los registros que se muestran en el cuadro de lista.

En el evento que ejecutas para editar el registro seleccionado (por ejemplo, al hacer clic en un botón de "Editar"), puedes utilizar el siguiente código VBA:

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
31
32
33
Private Sub btnEditar_Click()
    Dim es As DAO.Recordset
    Dim fila As Long
 
    ' Obtener el valor de la fila seleccionada en el cuadro de lista
    fila = Me.Lista3.ListIndex
 
    If fila >= 0 Then ' Verificar que se ha seleccionado una fila
        ' Obtener el valor del campo clave del registro seleccionado
        Dim claveRegistro As Variant
        claveRegistro = Me.Lista3.Column(0, fila) ' Suponiendo que el campo clave está en la primera columna del cuadro de lista
 
        ' Abrir el recordset filtrando por el campo clave para editar el registro seleccionado
        Set es = CurrentDb.OpenRecordset("SELECT * FROM TablaDatos WHERE CampoClave = " & claveRegistro)
 
        If Not es.EOF Then
            ' Editar los campos necesarios
            es.Edit
            es![CampoEditable1] = "Nuevo valor 1"
            es![CampoEditable2] = "Nuevo valor 2"
            ' Agregar más campos que necesites editar
            es.Update
 
            ' Cerrar el recordset
            es.Close
 
            ' Actualizar el cuadro de lista para reflejar los cambios
            Me.Lista3.Requery
        End If
    Else
        MsgBox "Selecciona un registro para editar.", vbExclamation
    End If
End Sub

En este código, "CampoClave" es el nombre del campo clave en la tabla "TablaDatos", que se utiliza para identificar de manera única cada registro. Asegúrate de reemplazar "CampoClave" con el nombre real del campo clave en tu tabla.

Con este código, podrás editar el registro que seleccionas en el cuadro de lista, siempre y cuando la columna 0 de la lista contenga el valor del campo clave de cada registro.

Espero que esta solución te ayude a editar el registro seleccionado desde un cuadro de lista en un formulario de Access. ¡Buena suerte!
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