Error de actualización de registro en access desde VB

Espero que puedas ayudarme en mi problema.
Resulta que quiero actualizar un registro "X" (más específicamente datos de una persona) desde vb pero a la hora de intentar guardar los cambios me salta el siguiente mensaje:
Error 3022 en tiempo de ejecusion:
Los cambios solicitados en la tabla no se realizaron correctamente porque crearían valores duplicados en el índice, clave principal o relación. Cambie los datos en el campo o los campos que contienen datos duplicados, quite el índice o vuelva a definir el índice para permitir entradas duplicadas e inténtelo de nuevo.
El código que tengo en vb es el siguiente:
Private Sub cmdGuardar_Click()
Set acc = DB.OpenRecordset("tblUsuario", dbOpenTable)
    acc.Edit
        acc!ApellidoNombre = txtApeNom
        acc!DNI = txtDNI
        acc!Alias = txtAlias
        acc!Password = txtPass
        acc!Telefono = txtTelefono
        acc!direccion = txtDireccion
        acc!Email = txtEmail
        acc!idCliente = Val(txtID)
    acc.Update
    acc.Close
Todo estos datos traigo desde otro formulario que es un list lo pongo por si las dudas al código:
Set acc = DB.OpenRecordset("tblUsuario", dbOpenTable)
    buscar = lstClientes.List(lstClientes.ListIndex)
        acc.Index = "iApeNom"
        acc.Seek "=", buscar
            If Not (acc.NoMatch) Then
                frmModificarDatos.txtAlias = acc!Alias
                frmModificarDatos.txtApeNom = acc!ApellidoNombre
                frmModificarDatos.txtDireccion = acc!direccion
                frmModificarDatos.txtTelefono = acc!Telefono
                frmModificarDatos.txtDNI = acc!DNI
                frmModificarDatos.txtEmail = acc!Email
                frmModificarDatos.txtPass = acc!Password
                frmModificarDatos.txtID = acc!idCliente
                frmModificarDatos.Show
            Else
                MsgBox "Nose encontro nada", vbCritical
            End If
Ahora bien, el problema creo que es el idCliente en mi base de datos es un campo numérico y clave principal.
Intente también actualizar en la otra tabla con la cual esta relacionada pero sigue saliendo el mismo error...
¿Qué esta mal? Y como podría solucionarlo, desde ya muchísimas gracias por tu tiempo
un saludo

1 Respuesta

Respuesta
1
Es obio que estas tratando de cambiar un registro y el idcliente esta duplicado
creo que es por
acc! IdCliente = Val(txtID) donde seguramente cambias el id por uno que ya existe
por cierto estas cambiando siempre el primero
no hay búsqueda ni filtro que encuentre el cliente que quieres modificar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas