Newsgroup: it.comp.appl.access
Titolo: Cambiare dinamicamente il campo di una query

Salve a tutti... ho questa necessità:
in un database di access ho una tabella chimata FOrnitori con vari
campi, tra cui Nome,città,tel, fax, ecc... e un campo ID numerico che
è la chiave primaria.
Ho poi un'altra tabella chiamata ZoneFornitori che è collegata alla
precedente tramite il campo ID,presente anche su questa. In questa
tabella i campi sono le regioni italiane, quindi ho le varie colonne
chiamate Friuli, veneto, lombardia, ecc.
Il tipo di dati è Si/no (per la cronaca, i Fornitori sono dei
trasportatori e questa tabella mi indica quali sono le zone che
servono).
Ora... io avrei la necessità di fare una ricerca x zona,ovvero tramite
una query vedere quali sono i fornitori che servono una regione
piuttosto che un'altra.
Il metodo "for dummies" era creare 20 query e 20 maschere ad esse
collegate... e far aprire la marschera Friuli o Veneto, ecc ecc a
seconda della necessità. Ma son sicuro che ci sia un modo + logico...
tipo creare una sola query e una sola maschera e passare il parametro
della regione che mi interessa.
Mi chiedo come però sia possibile far cambiare dinamicamente un campo
della query...visto che la mia query prendeva i dati dalle 2 tbl, e
sotto al campo "Friuli" avevo come criterio YES, in modo che mi
visualizzasse solo i record della tbl Fornitori che nella tbl collegata
ZOneFornitori avevano il segno di spunta sulla colonna Friuli.
Forse è un po' arzigogolato... ma i + esperti forse mi avranno capito.
Mi piacerebbe infine che l'apertura della maschera avvenisse dopo aver
selezionato in una casella combinata di una maschera appositamente
creata, la regione che interessa.
Chi di voi mi può dare qualche consiglio???
Vi ringrazio in anticipo...





 ha scritto nel messaggio
news:1168417944.1...@i56g2000hsf.googlegroups.com...

Cavoli tre volte lo stesso messaggio! Abbiamo capito.
eheh!
Allora visto che tutto quello che hai detto è fattibilissimo ed hai espresso
la teoria molto bene, devi solo mettere in pratica!
Crea una maschera non associata (che  chiamerai pe form_ricerca ) in cui
crei una combobox basata su una query sulla tabella delle regioni.
(che chiamerai p.e. ricerca_regioni)
poi metti un bel pulsante che esegue la query:
vedi docmd.openquery "tua query", ...
Nella query su cui basi le tue ricerche metti come criterio il seguente
riferimento al controllo della form non associata:
Forms!form_ricerca!ricerca_regioni
Quando eseguirai la query gli passerai il parametro e lei filtrerà i dati
sul criterio da te impostato.

 eheh!
Errore: con quello che hai riportato tu siamo a 4!!!
;-)
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

krissm...@yahoo.it
 ha scritto:

Non mi è ben chiaro se hai un Campo per ogni regione nella Tabella
ZoneFornitori ...?
Se è così purtroppo hai sbagliato la struttura e fare quello che
chiedi come hai già visto è assurdo..., va contro qualsiasi regola di
normalizzazione e di buon uso dei Database...!
Sarebbe servita una struttura Molti---Molti fatta così:
FOrnitori(1)-----(oo)TblAppoggio(oo)-----(1)ZoneFornitori
In pratica ogni fornitore può servire MolteRegioni, ma a sua volta le
regioni possono essere servite da più fornitori, questo è realizzato
dalla struttura sopracitata.
Nella tabella appoggio salvi le Regioni Coperte dal singolo fornitore,
e con il sistema corretto che ti ho suggerito semplifica il tuo
problema con una Semplicissima Query...!
Io non ti dò suggerimenti di come accrocchiare il tuo applicativo, a
mio avviso devi ristrutturare questa parte.
Saluti.
@Alex

 @Alex
Alex...
come hai ben capito, la tblZoneFornitori è composta da un campo ID
(numerico) e poi da altri 20 campi chiamati relativamente Friuli,
Veneto, Lombardia, ecc ecc (Sì/No).
In effetti non sapevo se era il modo migliore di operare,sto andando un
po' a tentativi.
Saresti così gentile da rispiegarmi come devo riorganizzare le tbl? Ho
letto e riletto il tuo post ma non ne son venuto a capo. A quanto
sembra tblFornitori va bene com'è... tblZoneFornitori, invece??? E la
tbl appoggio cosa deve contenere?
Grazie 1000

 Grazie 1000
tblFornitori(1)-----(oo)TblAppoggioFornitoriRegione(oo)-----(1)tblZoneFornitori
tblFornitori
IdFornitore(ChiavePrimaria)
...Altri campi
tblZoneFornitori(io userei solo NomeRegione sono già Univoche)
NomeRegione(ChiavePrimaria)
TblAppoggioFornitoriRegione
IdFornitore
NomeRegione
La chiave primaria in questo caso è doppia e composta dai 2 campi
Ora dovrai fare una Maschera con Origine dati la tblFornitori, con una
Sottomaschera
avente come origine dati la TblAppoggioFornitoriRegione, nella quale
legerai il CampoMaster=IdFornotore con il CampoChild=IdFornitore.
Nella SubForm, il Controllo associato al Campo NomeRegione potrebbe
essere una ComboBox con OrigineDati la tblZoneFornitori(escludendo
quelli già presenti se vogliamo pignolare, ma serve, e lo ottieni
impostando correttamente la Query di origine in modo da escludere i
campi uguali alla TblAppoggioFornitoriRegione)
In questo modo nella TblAppoggioFornitoriRegione sai quali regioni sono
servite dal fornitore.
Ciao
@Alex