none
Orden From (variable) In (lista) Select (variable) Order By (variable) RRS feed

  • Pregunta

  • Buenas,

    intento ordenar una lista por la fecha de inicio ya insertada con anterioridad y me da un problema de:

    "La variable de rango 'tpFase' oculta una variable en un bloque de inclusión o una variable de rango definida previamente en la expresión de consulta. (BC30978)."

    El código es el siguiente:

    Sub renombrarFases(tpFase As TPFase)
                    
        'en la clase TP se pone Private _listaFasesTP        
            
            Dim listaFases As List(Of TPFase) 
            
            listaFases = tp.ObtenerListaFases  'se llena la lista listaFases con todas las fases guardadas anteriormente

            listaFases = From tpFase In listaFases Select tpFase.tsIniTPPrevisto Order By tpFase.tsIniTPPrevisto 'se ordena la lista
                         
            tpFase.nombreFase="Fase" & listaFases.Count + 1 'se renombra cada elemento de la lista en función de la fecha
                            
            
        End Sub

    Donde TPFase es una clase con muchos atributos entre ellos tsIniTPPrevisto que es la fecha por la que quiero ordenar la lista y nombreFase que es lo que quiero cambiar en función de la fecha.

    Espero que me podáis ayudar.

    Gracias de antemano.

    Saludos,

    Dani

    martes, 16 de febrero de 2021 11:11

Respuestas

  • deverias poner mas codigo para darte una mejor solución. ese error te sale cuando hay más de una variable de rango con el mismo nombre y esas variables deberían tener nombres únicos no se bien que tratas de hacer con este trozo de codigo   tpFase.nombreFase="Fase" & listaFases.Count + 1  según el comentario que pones se renombra cada elemento de la lista pero no veo que estes iterando la lista para lograr lo que dices y usar .Count +1 es como si le dijeras la lista en su nombreFase se llamara fase mas la cantidad máxima de item de la lista mas uno entonces si la cantidad de ítem de la lista por ejemplo es 20 el .Count te retorna 20 por lo que NombreFase siempre se llamara Fase21 no se el comentario que tienes en esa parte del código no le va al código. espero serle de ayuda que para eso estamos feliz dia
    • Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:14
    martes, 16 de febrero de 2021 16:23

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    martes, 16 de febrero de 2021 15:27
    Moderador
  • deverias poner mas codigo para darte una mejor solución. ese error te sale cuando hay más de una variable de rango con el mismo nombre y esas variables deberían tener nombres únicos no se bien que tratas de hacer con este trozo de codigo   tpFase.nombreFase="Fase" & listaFases.Count + 1  según el comentario que pones se renombra cada elemento de la lista pero no veo que estes iterando la lista para lograr lo que dices y usar .Count +1 es como si le dijeras la lista en su nombreFase se llamara fase mas la cantidad máxima de item de la lista mas uno entonces si la cantidad de ítem de la lista por ejemplo es 20 el .Count te retorna 20 por lo que NombreFase siempre se llamara Fase21 no se el comentario que tienes en esa parte del código no le va al código. espero serle de ayuda que para eso estamos feliz dia
    • Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:14
    martes, 16 de febrero de 2021 16:23