[RISOLTO] Problema con operatore OR su multifiltro

di il
35 risposte

35 Risposte - Pagina 3

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    30/04/2024 - oregon ha scritto:


    Forse sei confuso ma perche hai cambiato la riga

    Me.Filter = …

    E che vuoi dire con idem? LLa parte finale è ovviamente diversa.

    Poi NON postare immagini, non si vede nulla.

    Copia la stringa e copiata qui  

    Si, me ne sono accorto subito dopo. Infatti ho immediatamente modificato, ma avevi già letto.

    Postavo l'immagine per mostrare dove inserivo il debug,

    Lasciandola sulla stessa riga:

     Debug.Print Mid$(strWH, 1, Len(strWH) - 5)
      If Len(strWH) <> 0 Then strWH = Mid$(strWH, 1, Len(strWH) - 5)
       Me.Filter = strWH
       Me.FilterOn = True

    Comunque, provandola su tre anni diversi, mi da questo risultato:

    Year(Data) = 2022 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2023 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2024 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)

    ma restituendomi record diversi! ..pur appartenenti a tutti e tre gli anni.

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    30/04/2024 - surfgarden ha scritto:

    Comunque, provandola su tre anni diversi, mi da questo risultato:

    Year(Data) = 2022 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2023 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2024 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)

    ma restituendomi record diversi! ..pur appartenenti a tutti e tre gli anni.

    Finalmente sei arrivato al debug …

    Come esiste la precedenza di valutazione per le 4 operazioni (+,-,*,/) esiste anche per le operazioni booleane …

    anno AND (…) OR (…) = (anno AND (…)) OR (…)  Forse così ti è più evidente il perché …

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    …mentre inserendolo nelle righe successive (ossia tra l'If e il Me.Filter = .. , oppure tra il Me.Filter=.. e il Me.FilterOn=True), coi medesimi record (..appartenenti a tutti e tre gli anni, ma omettendone alcuni cambiando il valore dell'anno), torna a tagliarmi gli ultimi 5 caratteri: 

    Year(Data) = 2024 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibi
    Year(Data) = 2023 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibi
    Year(Data) = 2022 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibi

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    30/04/2024 - max.riservo ha scritto:


    30/04/2024 - surfgarden ha scritto:

    Comunque, provandola su tre anni diversi, mi da questo risultato:

    Year(Data) = 2022 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2023 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)
    Year(Data) = 2024 AND (detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0)

    ma restituendomi record diversi! ..pur appartenenti a tutti e tre gli anni.

    Finalmente sei arrivato al debug …

    Come esiste la precedenza di valutazione per le 4 operazioni (+,-,*,/) esiste anche per le operazioni booleane …

    anno AND (…) OR (…) = (anno AND (…)) OR (…)  Forse così ti è più evidente il perché …

    Dunque è un problema di precedenze. 

    Sono piuttosto confuso. Devo metterlo a fuoco e ragionarci su per trovare il rimedio. Ma il concetto l'ho capito.

    Grazie

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    30/04/2024 - surfgarden ha scritto:

    Dunque è un problema di precedenze. 

    Sono piuttosto confuso. Devo metterlo a fuoco e ragionarci su per trovare il rimedio. Ma il concetto l'ho capito.

    Grazie

    In questo caso è un problema di ordine di esecuzione, comunque la soluzione credo che sia banale : basta posizionare correttamente le parentesi.

    anno AND ((…) OR (…))

  • Re: [RISOLTO] Problema con operatore OR su multifiltro

    30/04/2024 - max.riservo ha scritto:


    30/04/2024 - surfgarden ha scritto:

    Dunque è un problema di precedenze. 

    Sono piuttosto confuso. Devo metterlo a fuoco e ragionarci su per trovare il rimedio. Ma il concetto l'ho capito.

    Grazie

    In questo caso è un problema di ordine di esecuzione, comunque la soluzione credo che sia banale : basta posizionare correttamente le parentesi.

    anno AND ((…) OR (…))

    Si infatti:

       If Me!cboDR.Value = "entrambiMinus" Then strWH = strWH & "((detraibili=-1 AND rimborsabili=0)" & _
           " OR (rimborsabili=-1 AND detraibili=0)) AND "

    in finestra immediata:

    Year(Data) = 2022 AND ((detraibili=-1 AND rimborsabili=0) OR (rimborsabili=-1 AND detraibili=0))

    .. e mi scuso con Stifone che l'aveva azzeccata e postata subito con codice completo.

    Nella confusione di tanti messaggi giunti assieme, avevo notato solo l' End If  finale (che in altra discussione mi era stato segnalato, ma in questo multifiltro - e ancora non ho capito il perché - non ci và), senza accorgermi che aveva correttamente posto tra parentesi le 2 condizioni separate da OR. --Anche perchè mi sembrava di averlo già provato. Evidentemente non era così.

    Grazie di nuovo a tutti, anche  per la pazienza.

    Ciao

Devi accedere o registrarti per scrivere nel forum
35 risposte