none
Access XP: 35602 - Key is not unique in collection. RRS feed

  • Pregunta

  • Hola: A ver si alguien puede ayudarme a resolver este problema.

    Tengo un formulario en Access que cuando se carga se rellena un ListView Control. Pero cada vez que se a cargar me da un error (35602 - Key is not unique in collection). El código de VB que se ejecuta es:

    Private Sub rellenar_anomalias()

    lstAnomalias.ListItems.Clear
    Dim strsql As String

    strsql = "SELECT * from emcp_listadoanomalias WHERE idAccionAnomalia is Null AND idSeccion=" & idSeccionAnomalias
    conectar conn, rst, strsql, adOpenStatic, adLockReadOnly
    While Not rst.EOF
    lstAnomalias.ListItems.Add , "A" & rst.Fields("idAnomalia"), rst.Fields("Anomalia") Aquí es donde me lleva el depurador después de aceptar el error.


    Select Case rst.Fields("idTipoOrigen")


    Case 1 ' Evaluacion de un puesto


    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Eval: " & rst.Fields("Puesto") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZF" & rst.Fields("idAnomalia"), rst.Fields("FechaPuesto") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZP" & rst.Fields("idAnomalia"), rst.Fields("PrioridadPuesto") & " "


    Case 2 ' Evaluacion de un lugar

    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Eval: " & rst.Fields("Lugar") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZF" & rst.Fields("idAnomalia"), rst.Fields("fechaLugar") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZP" & rst.Fields("idAnomalia"), rst.Fields("PrioridadLugar") & " "


    Case 3 ' Inspeccion de seguridad

    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Insp: " & rst.Fields("NumeroInspeccion") & "-" & rst.Fields("yearInspeccion") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZF" & rst.Fields("idAnomalia"), rst.Fields("FechaInspeccion") & ""

    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZP" & rst.Fields("idAnomalia"), " "

    Case 4 ' Comunicación de anomalías

    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Comu: " & rst.Fields("NumeroComunicacion") & "-" & rst.Fields("yearComunicacion") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZF" & rst.Fields("idAnomalia"), rst.Fields("FechaComunicacion") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZP" & rst.Fields("idAnomalia"), " "

    Case 5 ' Evaluación de un equipo

    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Eval: " & rst.Fields("Equipo") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZF" & rst.Fields("idAnomalia"), rst.Fields("FechaEquipo") & ""
    lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZP" & rst.Fields("idAnomalia"), rst.Fields("PrioridadEquipo") & " "

    End Select
    rst.MoveNext
    Wend
    desconectar conn, rst
    End Sub

    Muchas gracias.

    miércoles, 20 de febrero de 2013 14:21

Todas las respuestas

  • Te da ese error porque no asignas claves únicas para los subitems que creas.

    Si haces lstAnomalias.ListItems("A" & rst.Fields("idAnomalia")).ListSubItems.Add , "ZO" & rst.Fields("idAnomalia"), "Eval: " & rst.Fields("Equipo") & ""

    tienes que asegurarte que no haya dos entradas con el mismo valor en rst.Fields("idAnomalia") para que no repita la clave (igual con "ZF" y "ZP").


    Saludos, Javier J

    miércoles, 20 de febrero de 2013 17:04