Criteri parametri query da form

di il
5 risposte

Criteri parametri query da form

Buongiorno a tutti, chiedo un'informazione ai più esperti.
Dovendo creare un criterio per filtrare i dati da una query mi trovo in difficoltà, ho eseguito diverse prove ma non mi danno risultati provando a generare la query, probabilmente per una questione di apici o punteggiatura.

Provo ad esporre nel dettaglio:
query con diversi campi, dal nome qry_export, nella quale ho un campo che si chiami turni_stand.
il campo "turni_stand" vorrei che venisse filtrato e che i primi tre valori contenessero (ad esempio "10m") ma questi 3 valori sono parametrici e si riferiscono ad una casella di testo presente in quel form che si chiama "Testo28".

Ad esempio se io avessi fisso "10m" potrei mettere come criterio LIKE "10m*" ma siccome io non ho sempre quella stringa bensì quest'ultima dipende da un valore di una textbox all'interno del form come posso procedere?
Grazie a tutti.

5 Risposte

  • Re: Criteri parametri query da form

    Perchè devi applicare il filtro alla Query e non alla Visualizzazione nelle FORM...?

    In ogni caso non ci mostri come componi il criterio e siccome il problema è quello sicuramente è li che sbagli.

    Chiarisci cosa intendi per "CONTENGONO"... perchè la sintassi della costruzione cambia.
    Per me CONTENGONO significa in qualsiasi posizione del Testo, se invece la posizione è più rigida, ovvero INIZIA PER, o FINISCE PER...

    Le Form hanno una comodissima proprietà chiamata FILTER che è funzionale ed utile... usa quella, puoi anche passarla direttamente al Report per filtrare con lo stesso criterio, nel caso serva.
    
    Me.Filter="NomeCampo LIKE '*" & Me!Testo28 & "*'"
    Me.FilterOn=True
    
  • Re: Criteri parametri query da form

    Grazie Alex per la tua gentile risposta ma non soddisfa le mie necessità.
    Io ho un form con una textbox che mi indica un valore che può essere di tipo stringa e può avere i seguenti valori 10 m oppure 25 m oppure 50 m

    Subito sotto ho due caselle combinate, la prima delle due è popolata da tanti record ad esempio
    10 m blabla1
    10 m blabla2
    10 m blabla3
    25 m blabla1
    25 m blabla2
    50 m blabla10
    50 m blabla 10

    Siccome nella mia textbox c'è ad esempio il valore 10 m vorrei che la mia casella combinata avesse solo i primi tre valori
    10 m blabla1
    10 m blabla2
    10 m blabla3
    e non tutti gli altri che non sono di mio interesse. Per fare questo alla proprietà "origine riga" che ho legato ad una query devo intervenire e andare ad imporre sto benedetto criterio che sarà di tipo LIKE ma basato sul valore presente in questa texbox..
    Provo a fare un esempio
    LIKE '" & Me!Testo28 & "*'"
    Peccato che non funzioni.
    Grazie
  • Re: Criteri parametri query da form

    Adesso che ho capito che si tratta della Casella Combinata, concordo che sia meglio agire sulla Query.

    Ovviamente commetti un'errore concettuale abbastanza evidente e tecnico.
    Sintassi 1
    
    "NomeCampo LIKE '*" & Me!Testo28 & "*'"
    Questa sintassi indica 2 cose:
    1) Che è usata all'interno di una Maschera, o Report e non una Query in quanto l'Oggetto [Me] può essere assunto solo in VBA ed appunto riferendosi a Maschera(se stessa) o Report(Se stesso).
    2) Usata appunto in VBA in quanto la stringa risultante viene composta con Risoluzione ESPLICITA e non IMPLICITA.

    Sintassi 2 (da mettere in QBE nel Criterio)
    
    NomeCampo LIKE '* & Forms!NomeTuaForm!Testo28 & *'
    Questa sintassi invece, peraltro meno performante proprio per l'obbligo che viene trasferito al Motore del Database di risolvere il valore della textBox, richiede la sintassi COMPLETA per capire in quale Oggetto sia la TextBox, quindi il percorso completo è appunto:
    
    Forms!NomeTuaForm!NomeTuaTextBox
    [Forms] è la Collection o insieme delle Maschere del Database, [!] è il modo di Indicizzare con il Nome quella specifica form, e via dicendo...
  • Re: Criteri parametri query da form

    No, non funziona e ti spiego il perchè:
    io nella mia Testo63 ho questo valore 10m (ma potrei avere anche 25m o 50 m)

    Nella mia combo non filtrata ho (come detto prima)
    10m blabla1
    10m blabla2
    10m blabla3
    25m blabla1
    25m blabla2
    50m blabla10
    50m blabla 10

    Inserendo un criterio (quello che ho all'interno della mia Testo63) che non riesco a capire come scriverlo con apici corretti etc, dovrei vedere solo
    10m blabla1
    10m blabla2
    10m blabla3

    Per me si potrebbe anche scrivere
    LIKE '* & Forms!m_garefederali_iscritti_turno!Testo63 & *'
    ho provato a lasciarmi anche la maschera attiva e generarmi a lato una query nuova ma non mi esce alcun risultato, non riesco a capire il perchè!
  • Re: Criteri parametri query da form

    In realtà è tutto corretto, solo che quando modifichi il Criterio devi far rieseguire la Query, che è stata eseguita solo all'apertura della maschera, momento in cui il criterio non era valorizzato, quindi devi dirgli RIESEGUI LA QUERY che ho cambiato il criterio.

    Si usa il Me.NomeCombo.Requery su Evento CLICK del Button Applica Criterio.
Devi accedere o registrarti per scrivere nel forum
5 risposte