Filtrare maschera Continua con Keyword in Intestazione

di il
4 risposte

Filtrare maschera Continua con Keyword in Intestazione

Ciao a tutti.
Voglio compilare una maschera continua attraverso un filtro di ricerca Keyword che cerca su 4 campi di una query.
Non riesco a capire cosa sbaglio.
se non inserisco valori va liscio ma se inserisco qualsiasi carattere mi da debug sulla Me.RecordSource= SQL

Private Sub CmdCercaPolizza_Click()

Dim SQL As String

 SQL = " SELECT tblPolizze.NPolizza, tblAziende.RagioneSociale, tblAziende.Symphony, " & _
       "tblBroker.NomeBroker, tblPolizze.PolizzaLive " & _
       " FROM tblAziende INNER JOIN (tblBroker INNER JOIN tblPolizze ON tblBroker.IDBroker = " & _
       "tblPolizze.IDBroker) ON tblAziende.IDAzienda = tblPolizze.IDAzienda " & _
              " WHERE NPolizza Like '*" & Me.txtRicerca & "*' " & _
                " WHERE RagioneSociale Like '*" & Me.txtRicerca & "*' " & _
                  " WHERE Symphony Like '*" & Me.txtRicerca & "*' " & _
                      " WHERE NomeBroker Like '*" & Me.txtRicerca & "*' " & _
        "ORDER BY tblAziende.RagioneSociale;"

Me.RecordSource = SQL
Me.Requery

End Sub
La maschera ha anche un filtro impostato su Vero per gestire un gruppo di opzioni ma ho provato a toglierlo. Nulla
Avete idea di cosa possa esseere?

Mille grazie

4 Risposte

  • Re: Filtrare maschera Continua con Keyword in Intestazione

    Abbiamo già affrontato il problema 5 minuti fa, perché ora hai cambiato metodo per fare la stessa cosa...?
    Ti sei reso conto che non cambia nulla...?

    Non è possibile che l'assenza di criteri si faccia con più criteri usando il Jolly(wildcard)... l'efficienza della query si affossa.

    Leggi questo 3D, e cerca di capirlo altrimenti alla prossima siamo da capo... , che espone il metodo corretto di gestire filtri MultiCriterio.

    forum.masterdrive.it/access-79/codice-vba-per-filtrare-maschera-n-combo-box-95223/
  • Re: Filtrare maschera Continua con Keyword in Intestazione

    Ciao, grazie dell'indicazione. Ne so ancora veramente poco e la difficoltà più grande sta nel riuscire a porre la domanda giusta. Sulla rete le risposte ci sono quasi tutte.
    La questione del precedente post serve da base poi si aggiunge questa. Non sapevo si potesse gestire tutto nello stesso modo. Tuttavia sono in alto mare.
    Ho passato la giornata ad approfondire il tuo prezioso consiglio e sono approdato qui. Ma non riesco ad andare avanti e non trovo più fonti da cui attingere. Funzionicchia se lascio attivo solo una riga di criterio e se lo aggancio ad una tabella. Con la query nemmeno a parlarne.
    Mi potresti dare qualche altro consiglio? Anche solo argomenti da approfondire purchè vada nella direzione giusta.
    
    Private Sub CmdCercaPolizza_Click()
    Dim strWH As String
    
    If Len(Me!txtRicerca.Value & vbNullString) <> "x" Then strWH = strWH & "[tblPolizze.NPolizza]=" & Me!txtRicerca.Value & "And "
    
    	'If Len(Me!txtRicerca.Value & vbNullString) <> "x"  Then strWH = strWH & "[tblAziende.Symphony]=" & Me!txtRicerca.Value & "And """  
    	'If Len(Me!txtRicerca.Value & vbNullString) <> "x"  Then strWH = strWH & "[tblBroker.NomeBroker]=" & Me!txtRicerca.Value & "And """    
    
    If Len(Me!txtRicerca.Value & vbNullString) = 0 Then strWH = "x" & "And "
    If Len(strWH) > 0 Then
    strWH = Mid$(strWH, 1, Len(strWH) - 5)
    Me.FilterOn = False
    Me.Filter = strWH
    Me.FilterOn = True	'si inchioda qui
    End If
    
    End Sub
    
    un altro elemento che non so come impostare è il like. Non ho trovato nulla da cui prendere spunto che ragioni con questo sistema di filtri.
    Non so se sono riuscito a rappresentare bene il mio obbiettivo. Vorrei un unica casella di testo di ricerca dove tutto quello che inserisco mi possa tirare fuori qualcosa che gli assomigli. (è una cosa fattibile?)


    Mille grazie
  • Re: Filtrare maschera Continua con Keyword in Intestazione

    Ci sono Riuscito!!!!!!!

    Eccolo. Ho dovuto inserire il criterio relativo a Live/chiusi/tutti nella query perchè non sono riuscito a mixare i criteri del gruppo di opzioni con il criterio della casella text. Quindi ho applicato il consiglio di Stifone
    https://www.iprogrammatori.it/forum-programmazione/access/maschera-continua-filtro-casella-controllo-nell-intestazione-t43156.html#p8650586
    
    Private Sub CmdCercaPolizza_Click()
    
    Dim Cer As String
    
        Cer = "[Npolizza] like '*" & Me.txtRicerca & "*'  Or " & _
            " [RagioneSociale] like '*" & Me.txtRicerca & "*' Or " & _
            "[Symphony] like '*" & Me.txtRicerca & "*' Or " & _
            "[NomeBroker] like '*" & Me.txtRicerca & "*'"
        Me.Filter = Cer
        Me.FilterOn = True
        Me.Requery
        
    End Sub
    

    Secondo voi è possibile mixare i due criteri (gruppo di opzioni e filtro text) senza inserire criteri nella query? Mi piacerebbe capire come perchè non riesco ad immaginarlo.

    Grazie ancora a tutti
  • Re: Filtrare maschera Continua con Keyword in Intestazione

    Se devi cercare CONTEMPORANEAMENTE su qualsiasi dei 4 Campi... è corretto come hai fatto..., se invece vuoi indicare in che campo cercare... no, ed ovviamente questo richiede 2 passaggi, selezione del Campo ed inserimento valore da cercare, ma sicuramente l'efficienza è maggiore.

    Vedi tu come devi lavorare...
Devi accedere o registrarti per scrivere nel forum
4 risposte