Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

[ACCESS 2003] Passare parametri ad una query nel campo origine controllo combobox

  1. #1
    sanfinix non è in linea Scolaretto
    Buongiorno a tutti,
    ho cercato nel forum e consultato vari help online ma non riesco a trovare , o non mi è chiaro una volta trovato, quello che mi serve.

    Prologo:
    Sto creando tramite access una piccola applicazione per la gestione di un piccolo magazzino vendita ricambi che verrà usata per generare dei listini verso i clienti.

    In virtù del fatto che si lavorerà con l'estero i listini dovranno essere multilingua. Ho deciso così di splittare in due tabelle l'archivio Articoli separando i valori univoci (giacenze, codici fornitori, file datasheet, etc...) dalle descrizioni testuali.

    Nella tabella Articoli ho quindi un campo LINGUA che mi serve in una relazione 1 a n con la tablla Descrizioni che contiente Lingua-CodiceArticolo (parti della chiave primaria) e il resto dei campi testuali (DescrizioneBreve, DescrizioneEstesa) etc...

    Gli articoli sono parti di un impianto diviso in sezioni, esiste quindi un'altra tabella separata che contiene l'elenco delle Sezioni, con il relativo CodiceDescrizione (Nella forma CodiceSezione(Primarykey), CodiceDescrizione)

    Il CodiceDescrizione associato alla Lingua mi consente di prelevare dalla tabella Descrizioni la nomenclatura corretta della sezione nella lingua scelta.

    Ho creato una query sulla tabella Sezioni che mi estrae, data in input la Lingua, l'elenco delle Sezioni disponibili con la relativa descrizione

    ecco la query:
    SELECT Sezioni.CodSezione, Descrizioni.DescrizioneBreve, Descrizioni.Lingua
    FROM Sezioni, Descrizioni
    WHERE ((Sezioni!CodiceDescrizioneSezione Like Descrizioni!Codice) And ((Descrizioni.Lingua) Like [iLingua]));
    
    Eseguendo la quale mi appare la dialogbox con la richiesta del parametro iLingua passato il quale funziona tutto correttamente.

    Ora ho necessità di utilizzare questa query richiamandola da una combo box denomintata Sezioni, per popolarne la lista.

    Preferisco mantenerla generica perché può tornarmi utile in futuro in altre maschere che ho in previsione di creare.

    Nella proprietà del controllo ComboBox c'è un campo - origine controllo - dove posso inserire la query per ottenere l'elenco.

    Ebbene, la domanda è : come passo il parametro iLingua alla query nella stringa di comando ?

    Il valore corretto da passare è contenuto in un'altra comboBox della stessa maschera che contiene le lingue.

    Origine Controllo=QR_Elenco_Sezioni_xLingua!CodSezione
    
    ecco, qui sopra c'è il contenuto del campo della combobox... non so come e/o dove inserire la valorizzazione di iLingua

    @iLingua=[Lingua].text
    
    Spero di essere stato chiaro, se servono altri dati sara mia premura fornirli.

    Grazie
    Enzo

  2. #2
    fcarboni non è in linea Scolaretto
    Ciao,
    iLingua così come utilizzata non è definita, quindi o definisci la variabile e richiami questa come condizione della query o richiami il valore univoco della combobox come di seguito ti riporto:

    SELECT Sezioni.CodSezione, Descrizioni.DescrizioneBreve, Descrizioni.Lingua
    FROM Sezioni, Descrizioni
    WHERE ((Sezioni!CodiceDescrizioneSezione Like Descrizioni!Codice) And ((Descrizioni.Lingua) Like [forms]![nome form/maschera]![nomeCombobox] ));

  3. #3
    sanfinix non è in linea Scolaretto
    @fcarboni, grazie mille per la dritta, non sapevo che la variabile iLingua dovesse essere "vista" al momento dell'esecuzione della query come presente e valorizzata dal motore della query stessa. Pensavo fosse "locale" alla query, per cui cercavo una sintassi per passare la variabile...

    Preferisco parametrizzare la query con una variabile, che modificarla per andare a pescare il dato per il filtro dall'oggetto della maschera in cui sarà contenuta...

    In questo modo posso crearmi una query parametrica che mi tornerà utile per molte maschere. Se ad esempio "iLingua" la dichiaro GLOBAL e la valorizzo all'apertura dell'applicazione, dovrei poterla leggere da ogni maschera/report che farò... (o sbaglio ?)

    Adesso ho modificato il codice e mi sembra che a livello embrionale funzioni... devo solo capire come ri-eseguire la query sul comboBox al cambio lingua.

    Mi spiego, ho la casella Combo con le lingue, scelgo ITA ---> iLingua="ITA"

    clicco sul combo Sezioni, mi esegue la Query e mi visualizza correttamente il risultato nella lingua scelta.

    Ri-clicco sul combo lingue, scelgo "ENG" ---> iLingua="ENG"

    cliccando sul combo Sezioni, non mi esegue la Query, ma legge i dati in cache... e mi visualizza il contenuto errato.

    Adesso cerco un po' sul forum. Per il momento ti ringrazio per il tuo prezioso aiuto.

    Enzo.

    ------------------------------------
    Update: trovato requery.

    Ho cercato su questo preziosissimo forum ed ho trovato che esiste la possibilità di effettuare una requery.
    quindi nella combo della lingua, al cambiamento ho invocato la requery della combo delle sezioni...

    tutto ok.

    Grazie mille ancora per l'aiuto.
    Enzo
    Ultima modifica di sanfinix; 08-03-2012 23:45  Motivo: Trovata soluzione ultimo quesito.

  4. #4
    fcarboni non è in linea Scolaretto
    Ciao Enzo,
    ti stavo scrivendo ed in coda al tuo post ho visto: Ultima modifica di sanfinix; Ieri 23:45 Motivo: Trovata soluzione ultimo quesito.
    Mi fa piacere che ci sei arrivato, è buona norma inserire nel post quale soluzione hai adottato, principalmente per 2 motivi.
    Un altro utente potrebbe darti dei consigli, inoltre chi si ritrova nel tuo problema, scorrendo il post trova la soluzione, la applica ed impara.
    Grazie

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Query con 4 parametri come origine controllo casella di testo
    Da Diego1966 nel forum Microsoft Access
    Risposte: 29
    Ultimo Post: 01-10-2016, 10:25
  2. Risposte: 4
    Ultimo Post: 29-09-2016, 21:27
  3. Risposte: 8
    Ultimo Post: 22-11-2010, 18:53
  4. Risposte: 5
    Ultimo Post: 11-09-2008, 10:31
  5. [Access] Come passare parametri alle query da vba
    Da matnet2007 nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 31-07-2007, 16:03