none
No funcionan formulas con < RRS feed

  • Pregunta

  • Hola alguna idea de por que

    la formulas con signo < no funcionan en visual studio

    ya lo actualize y busque las ultimas updates y reinstale

    por ejemplo

    DataGridView4.SelectAll()
            For Row As Integer = Me.DataGridView4.Rows.Count - 1 To 0 Step -1
                If Me.DataGridView4.Rows(Row).Cells(2).Value > Label33.Text Then
                   Me.DataGridView4.Rows.Item(Row).Visible = False
                End If
            Next
            DataGridView4.ClearSelection()

    funciona, pero si solo cambio signo de > por el de <  o <= no funciona y si hay valores

    que cumplen con la condicion ¡

    alguna idea, gracias .

    domingo, 28 de diciembre de 2014 16:27

Respuestas

  • ya lo resolviiiiiii

    mUCHAS GRACIAS A TODOS

    les comparto como lo solucioné,

    desactivé la opción Enable Adding, y :)) 

    Gracias a todos, saludos



    • Marcado como respuesta tonatiu2013 martes, 30 de diciembre de 2014 7:08
    • Editado tonatiu2013 martes, 30 de diciembre de 2014 7:09 1
    martes, 30 de diciembre de 2014 7:08

Todas las respuestas

  • Hola, depende que tipo de dato estés comparando en la evaluación. El tipo de dato que contiene la columna de índice 2 (Cells(2)) es object y Label33 define un tipo string. Como te darás cuenta es imposible comparar tipos de datos distintos.

    Lo que requieres es "igualar" los tipos de datos en ambos lados al tipo que tu deseas evaluar, lo que se conoce como "castear".

    En el ejemplo siguiente asumo que lo que tu deseas evaluar son tipos enteros, por ello "casteo" a (int). 

    If (int)(Me.DataGridView4.Rows(Row).Cells(2).Value) < (int)(Label33.Text) Then

    En caso sea decimal tendrás que hacerlo de la siguiente manera:

    If (decimal)(Me.DataGridView4.Rows(Row).Cells(2).Value) < (decimal)(Label33.Text) Then

    -----------------------------------------------------------------------------------------------------

    Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú






    • Editado Willams Morales domingo, 28 de diciembre de 2014 17:12
    • Propuesto como respuesta Sergio Parra domingo, 28 de diciembre de 2014 18:08
    domingo, 28 de diciembre de 2014 16:59
  • lo curioso es que con signo de > si funciona

    y con otros signos <  <>  no funciona

    domingo, 28 de diciembre de 2014 17:16
  • No es un problema del compilador, es un problema de percepción.

    Para que salga de dudas te sugiero que hagas el siguiente ejemplo.

    Dim a As Integer = 10
    Dim b As Integer = 20
    
    If (a < b) Then
      MessageBox.Show("Si Funciona")
    Else
      MessageBox.Show("Willams me está engañando :)")
    End If
    
    -----------------------------------------------------------------------------------------------------
    Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú


    domingo, 28 de diciembre de 2014 17:23
  • si funciona por si sola la formula 

    if(a<b) then

    pero  "MI"  formula o mi codigo  ,  con operadores < o <> no funciona

    por eso subi la pregunta al foro, con esa observacion,

    "MI"  formula o mi codigo  ,  con operadores < o <> no funciona..

    Agradesco las aportaciones ... Alguna idea


    • Editado tonatiu2013 domingo, 28 de diciembre de 2014 17:28 a
    domingo, 28 de diciembre de 2014 17:27
  • tonatiu2013, has realizado el "casting" que te sugerí y aún así tienes problemas? Que tipo de dato tiene la columa 2 y que valores registras en Label33.Text. Te agradeceré nos permitas más información para que podamos ayudarte a la brevedad.

    domingo, 28 de diciembre de 2014 17:35
  • lo primero que se debe saber es el tipo,de dato que tienes en

    Me.DataGridView4.Rows(Row).Cells(2)

    si dicho tipo de dato es una cadena (String) te recomiendo vea aquí cómo se comparan las cadenas con String.Compare().

    si el tipo de dato es Integer entonces debes aplicar la conversión o casteo como indica William. Lo malo del codigo de William es que hace un casteo de C#, en VB.Net deberías hacer

    If DirectCast(Me.DataGridView4.Rows(Row).Cells(2).Value, Integer) > DirectCast(Label33.Text, Integer) Then


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 28 de diciembre de 2014 17:41
  • Uffff debe ser el domingo :(... Mil disculpas tonatiu2013 por no haberme percatado que programas en VB (a pesar de que el código que nos compartes deja claro la sintaxis VB), gracias Sergio por la observación. Creo que luego de ello no quedará mas dudas de cual era el problema.
    domingo, 28 de diciembre de 2014 18:02
  • Tienes razón William... Es lo que tiene el domingo. Jejeje.

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 28 de diciembre de 2014 18:08
  • ya lo resolviiiiiii

    mUCHAS GRACIAS A TODOS

    les comparto como lo solucioné,

    desactivé la opción Enable Adding, y :)) 

    Gracias a todos, saludos



    • Marcado como respuesta tonatiu2013 martes, 30 de diciembre de 2014 7:08
    • Editado tonatiu2013 martes, 30 de diciembre de 2014 7:09 1
    martes, 30 de diciembre de 2014 7:08