Query di ricerca con testo parziale

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Query di ricerca con testo parziale

    Rimane che uno dei concetti del forum è "non so una cosa, prima la cerco in rete, poi se non trovo nulla di confacente alle esigenze chiedo sul forum"
    se cerchi "ricerca testo parziale vba" su Google trovi mille mila cose
  • Re: Query di ricerca con testo parziale

    @Alex ha scritto:


    Spesso si EVITA di costruire una Query con parametro, perchè per ottenere tutti i Records devi fornire sempre un parametro JOLLY.
    ....
    Domanda per Alex per mia curiosita' personale perche' uso spesso query con parametri: se costruisco una query filtrante che senso avrebbe la necessita' di ottenere tutti i records?
  • Re: Query di ricerca con testo parziale

    Guarda Mailm....ho riprovato ricopiando pari pari il tuo codice e cosi funziona....probabilmente avevo commesso qualche errore io nel copiarlo.

    Quindi funziona!!

    GRAZIEEEEE
  • Re: Query di ricerca con testo parziale

    Mailman ha scritto:


    @Alex ha scritto:


    Spesso si EVITA di costruire una Query con parametro, perchè per ottenere tutti i Records devi fornire sempre un parametro JOLLY.
    ....
    Domanda per Alex per mia curiosita' personale perche' uso spesso query con parametri: se costruisco una query filtrante che senso avrebbe la necessita' di ottenere tutti i records?
    Intanto serve sempre sapere cosa si sta facendo, non esiste una soluzione che va bene per tutto.
    Tuttavia se sai che c'è la possibilità di dover visualizzare TUTTI i records, in caso di ASSENZA di criteri... potresti trovarti inquesta situazione:
    Ipotizza di avere 10 criteri di filtro, nessuno valorizzato, in questo caso vuoi vedere TUTTI, sei costretto ad avere una Query simile:
    
    SELECT * FRON T1
    WHERE fld1 LIKE '*' AND fld2 LIKE '*' AND fld3 LIKE '*' AND  .... fld10 LIKE '*' 
    Questa Query è decisamente poco prestazionale, dovresti analizzare i piani di esecuzione delle Query per vedere quante volte per ogni record viene eseguita l'applicazione del criterio.
    L'uso della proprietà Filter che opera al bisogno e, dal DRIVER in caso di RDBMS, viene eseguita ServerSide, offre qualche vantaggio in più... validare i criteri ed applicare SOLO quelli valorizzati se ci sono... es:
    
    Dim sWHR As String
    If Len(Me!CampoCriterio1 & vbNullstring)>0 Then sWHR="Campo1 LIKE '*" & Me!CampoCriterio1 & "*' AND "
    If Len(Me!CampoCriterio2 & vbNullstring)>0 Then sWHR=sWHR & "Campo1 LIKE '*" & Me!CampoCriterio2 & "*' AND "
    If Len(Me!CampoCriterio3 & vbNullstring)>0 Then sWHR=sWHR & "Campo1 LIKE '*" & Me!CampoCriterio3 & "*' AND "
    If Len(Me!CampoCriterio4 & vbNullstring)>0 Then sWHR=sWHR & "Campo1 LIKE '*" & Me!CampoCriterio4 & "*' AND "
    ....
    If Len(Me!CampoCriterio10 & vbNullstring)>0 Then sWHR=sWHR & "Campo1 LIKE '*" & Me!CampoCriterio10 & "*' AND "
    If Len(sWHR)>0 Then
       Me.Filter=sWHR
       Me.FilterOn=True
    Else
       Me.FilterOn=False
    End If
    Se serve il criterio viene applicato se non serve no... e non impatta.
    Altro vantaggio è sull'eventuale apertura di Maschere Correlate o Report, per le quali basta passare la Proprietà FILTER alla WHERECONDITION della funzione OPENFORM per filtrare i dati...
    
    DoCmd.OpenReport "NomeReport", acViewPreview, , Me.Filter
    ecc...

    Ovviamente se non serve non si usa, ma di base questo è il metodo più comodo e funzionale.
  • Re: Query di ricerca con testo parziale

    Ottimo, grazie Alex per la esauriente spiegazione.
Devi accedere o registrarti per scrivere nel forum
19 risposte