Sottomaschera Query e operatore LIKE

di
Anonimizzato14462
il
4 risposte

Sottomaschera Query e operatore LIKE

In una maschera semplice che consente di inserire prodotti ho inserito una sottomaschera che nella mia idea , mentre si digita ad esempio il nome del prodotto da inserire mostra TUTTI i record della tabella che matchano il valore che si sta inserendo.
Ad esempio:
FORM PRINCIPALE (MASCHERA)
NOME:
MARCA:
COSTO:

SOTTOMASCHERA:
NOME MARCA COSTO

Mentre scrivo "BANANE" in NOME: vorrei che nella sottomaschera apparissero tutti i record con nome simile a "BANANE"

Come devo scrivere la query che genera la sottomaschera? Ho provato cose del genere ma non so come scrivere che il nome del record deve matchare (con like) quello presente nel campo NOME della maschera. Inoltre ci sono i maledetti apici e virgolette da usare ... (nell'esempio sotto la sequenza dopo LIKE inizia con VIRGOLETTE - APICE - ASTERISCO - CHIUSE VIRGOLETTE - E COMMERCIALE ...

SELECT *
FROM [ANAGRAFICA ARTICOLI]
WHERE [ANAGRAFICA ARTICOLI].[NOME] LIKE "'*" & "[Maschere]![ANAGRAFICA ARTICOLI].[NOME]" & "*'"

4 Risposte

  • Re: Sottomaschera Query e operatore LIKE

    Prova così
    
    SELECT *
    FROM [ANAGRAFICA ARTICOLI]
    WHERE [NOME] LIKE "'*" & [Maschere]![ANAGRAFICA ARTICOLI].[NOME] & "*'"
  • Re: Sottomaschera Query e operatore LIKE

    Grazie!!! Funziona.
    L'unico problema che mi rimane è che l'espressione
    [Maschere]![ANAGRAFICA ARTICOLI].[NOME] 
    ritorna l'ultimo valore memorizzato e non quello che sto scrivendo nel campo di testo "NOME".
    Se esco dal campo di testo oppure clicco AGGIORNA TUTTO funziona. Invece vorrei prendere il valore presente nella text box nel momento in cui digito le lettere e non il valore precedente.

    Come posso fare?
  • Re: Sottomaschera Query e operatore LIKE

    Suggerirei di creare una Funzione esterna di tipo Public che vada a recuperare la proprietà TEXT del controllo, ed inserire nella Query la chiamata alla funzione...!
    
    Public Function GetTextControl(ctl As Access.Control) As String
       GetTextControl=ctl.Text
    End Function
    quindi
    
        SELECT *
        FROM [ANAGRAFICA ARTICOLI]
        WHERE [NOME] LIKE "'*" & GetTextControl([Maschere]![ANAGRAFICA ARTICOLI].[NOME]) & "*'"
  • Re: Sottomaschera Query e operatore LIKE

    Grazie,
    tuttavia quando eseguo la query ottengo

    "l'espressione è stata digitata in modo non corretto o è troppo complessa per essere valutata..."

    Devo salvare la chiamata a funzione da qualche parte (in qualche variabile) prima di poterla usare nella query?
Devi accedere o registrarti per scrivere nel forum
4 risposte