Access - Editar registro al seleccionar de un cuadro de lista acess

 
Vista:
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Jose (10 intervenciones) el 30/06/2018 07:14:04
A ver si me explico bien, quiero editar registros, los busco en un cuadro de lista, luego con el evento click paso ese registro a unas cajas de texto, todo bien hasta hay, el problema radica cuando modifico cualquier dato de ese registro, de alguna manera access siempre interpreta que estoy en el primer registro del cuadro de lista se cual sea el registro elegido , lo modifico y guardo y es como si me creara un nuevo registro idéntico al primer registro de cuadro de lista, pero con el dato modificado. Favor su ayuda, adjunto la tabla y formulario.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub lstItems_DblClick(Cancel As Integer)
On Error Resume Next
Dim ok As String
    ok = MsgBox("¿Desea Modificar el Proveedor?", vbYesNo)
    If ok = vbYes Then
 
    Me.txtrut = Me.lstItems.Column(0)
    Me.txtNombre = Me.lstItems.Column(1)
    Me.txtGiro = Me.lstItems.Column(2)
    Me.txtDireccion = Me.lstItems.Column(3)
    Me.txtCiudad = Me.lstItems.Column(4)
    Me.txtcomuna = Me.lstItems.Column(5)
    Me.txtTelefono = Me.lstItems.Column(6)
    Me.txtCorreo = Me.lstItems.Column(7)
    Me.txtCnta_Corriente = Me.lstItems.Column(8)
    Me.txtBanco = Me.lstItems.Column(9)
    Me.txtTipo_Cuenta = Me.lstItems.Column(10)
     End If
End Sub
 
Private Sub cmdeditar_Click()
'On Error Resume Next
Dim mensaje As String
 
With rs
    .Edit
 
    .Fields(1) = txtNombre
    .Fields(2) = txtGiro
    .Fields(3) = txtDireccion
    .Fields(4) = txtCiudad
    .Fields(5) = txtcomuna
    .Fields(6) = txtTelefono
    .Fields(7) = txtCorreo
    .Fields(8) = txtCnta_Corriente
    .Fields(9) = txtBanco
    .Fields(10) = txtTipo_Cuenta
    .Update
 
    End With
    mensaje = MsgBox("Proveedor Editado correctamente", vbInformation)
    lstItems.Requery
    Call DesabilitarTexto
    cmdNuevo.Enabled = True
    cmdeditar.Enabled = False
    cmdCancelar.Enabled = False
 
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

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Anonimo (2076 intervenciones) el 30/06/2018 10:38:23
Cada objeto en Access tiene su cometido, el de un cuadro de lista NO ES el emular a un formulario.

La forma (…..) de presentar un contenido actualizado en un cuadro de lista, consiste en modificar EL ORIGEN de sus datos (sea la tabla, consulta o lista de valores) y tras ello refrescar el objeto cuadro de lista.

Los intentos de manipulación ¿directa? de un cuadro de lista (intentando emular a un formulario) no lograran alcanzar el éxito.
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Jose (10 intervenciones) el 01/07/2018 04:58:59
Parece que no me entendio, no estoy editando desde el cuadro de lista, desde el cuadro de lista pincho el registro que quiero editar y en ese momento con el evento click del cuadro de lista paso esos datos a las cajas de texto, luego desde las cajas de texto quiero editar ese registro seleccionado, pero de alguna manera access siempre piensa que estoy en el primer registro del cuadro de lista, hay una forma de hacerle saber que si elijo el registro por ejemplo el tercero al editarlos en las cajas de texto sepa que es el tercero.
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

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Anonimo (2076 intervenciones) el 01/07/2018 23:58:03
Tengo que reiterarme sobre lo anteriormente expuesto y creo que hay una fatal confusión entre lo que es un registro y lo que es un ítem.

No entrare en detalles sobre lo que se adjunto (una base con una tabla, 58 consultas, dos formularios, 11 informes y dos modulos) la tabla y uno de los dos formularios seria mas que suficiente.

El error esta en no utilizar el identificador único al abrir el recordset (que esta declarado por duplicado) aclaremos esto:

Si disponemos de este dato en el sub (lstItems_DblClick):
Me.txtrut = Me.lstItems.Column(0)

Ya disponemos de una referencia para que al abrir el recordset en el sub (cmdeditar_Click), podamos seleccionar el registro adecuado que se corresponda con el ITEM seleccionado en el cuadro de lista.

Si no se utiliza el dato antes mencionado y se abre el recordset 'a pelo' (sin filtrar o sin localizar el registro) Access (en el mejor y mas corriente de los casos) actualizara el primero que encuentre (que suele corresponderse con el primero que aparece en el cuadro de lista si no se aplico un orden especifico).

Conclusión: Dejemos tranquilo al cuadro de lista y si aun así deseamos tener una referencia con el cuadro de lista …. pues se localiza (en el cuadro de lista) cual de sus ITEMS tiene activada su propiedad SELECTED (valida únicamente si tras copiar sus datos a los cuadros de texto, no se le trasteo)
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Jose (10 intervenciones) el 02/07/2018 01:55:40
Jejej no me quedo claro tu explicación, pero = gracias por responder.
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Jose (10 intervenciones) el 02/07/2018 04:14:59
Jaja serias tan re-amable de poner el ejemplo.. :)
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

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Anonimo (2076 intervenciones) el 03/07/2018 00:27:00
¿Qué ejemplo? ….

Alternativas:
.- asignar una consulta al recordset en lugar de la actual tabla (las consultas admiten filtros)
.- en el actual recorset, aplicar un FindFirst para localizar el registro de nuestro interés y editarlo
.- utilizar una consulta de actualización (que también permite filtros) en lugar del recordset


En cualquiera de las alternativas propuestas, el filtro utilizaría como referente el valor que se le asigno al cuadro de texto 'TxRut' (que copia su valor de la columna cero del cuadro de lista)

El planteamiento mas completo, consistiría en evaluar si existe (en la tabla) el valor de/en el cuadro de texto 'TxRut'
(la función DCount seria una buena opción) y en función de ello:

.- Existe el RUT (DCount devuelve un valor diferente de cero) --> se actualiza el proveedor
.- No existe el RUT (DCount devuelve un cero) --> se crea el proveedor

Y no se ha necesitado acudir al cuadro de lista para nada.....
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Editar registro al seleccionar de un cuadro de lista acess

Publicado por Jose (10 intervenciones) el 03/07/2018 15:43:15
Excelente muchas gracias por tu ayuda, seguí tu indicación de aplicar un FindFirst para localizar el registro y después editarlo y ahora funciona perfecto.
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