Newsgroup: it.comp.appl.access
Titolo: Una soluzione elegante...per quindici piccoli indiani di testo.

Buongiorno mi scuso per l'oggetto poco chiaro, ma il richiamo al
romanzo (..e al film) è stato troppo forte.
Vorrei un consiglio su come realizzare, magari con una soluzione
elegante e con un codice molto ridotto rispetto ai chilometri di testo
che scriverei io, la mia realizzazione.
Ho una tabella DITTE dove per ogni ditta viene indicato (con formato
si/no) su quali delle 15 province opera.
Ho fatto una casella di riepilogo che, collegata ad una query, in base
alla ditta scelta mi indica su quindici colonne i si/no relativi alle
province.
Ho quindici caselle di testo che mi rappresentano le province dove, su
evento della combinata, viene valorizzato il codice Me.torino =
Me.SceltaDitta.Column(x).
Spero sin qui di essere stato chiaro....
Ora potrei rendere eventualmente visibili queste caselle se pari a si
ma mi rendo conto anche che potre (forse...) filtrare dalla macro solo
i sì...
Però la parte che più è difficoltosa è che le eventuali due o più
province restituite dalla combo le devo confrontare con un altro
valore per verificarne la congruità....
E qui mi rendo conto che forse mi sfugge una funzione semplice e
potente che potrebbe fare al caso mio...._(oltre ad uno psicologo...)
Qualcuno riesce a suggerirmi una strada più comoda ?
grazie


scusate ma come faccio una query che mi filtri solo le ditte dove ho
almeno un campo dei 15 uguale a si ?
riesco a farlo per uno, massimo due con criterio or ma mi manca
qualcosa... !!!!

 wrote:

Ciao!
Sono certo di non aver capito bene (figuriamoci, poi, immaginarmi le
implicazioni), ma provo a buttare li' i miei 2 cents.
Nella tabella DITTE hai inserito 15 campi booleani (perche' quelle e
solo quelle saranno sempre le tue possibili province).
Hai una combo tramite cui scegli la ditta di cui gestire i dati.
Nella combo visualizzerai solo il codice e nome della ditta, ed avrai
codice associato all'evento AfterUpdate (Click? Change? Exit?) che
impostera' la RecordSource della maschera (o sottomaschera) di
gestione dati a "SELECT * FROM DITTE WHERE (CodiceDitta=" &
Me.NomeDellaCombo & ");".
Nota bene: sto ipotizzando che il codice sia numerico.
La maschera (o sottomaschera) di gestione dati conterra' controlli
associati ai vari campi della tabella DITTE che ti serve visualizzare,
quindi mostrera' sempre tutte le 15 CheckBox assegnate alle province.
HTH
Popi


Ti mancano gli altri "OR"? :D
(Provincia1=true) OR (Provincia2=true) OR (Provincia3=true) OR
(Provincia4=true) OR ....
Popi

 - Mostra testo citato -
grazie Popi, sei sempre presente....e devo dire, non so quanto ne
sarai felice, che hai capito perfettamente, magari questo ti darà
qualche preoccupazione..
,-)
E' proprio questo che non capisco, ho googlato un pò ma non trovo
soluzioni.
Come faccio a impostare i 14 or nel listato della query ?
In pratica vorrei che mi restituisse solo le ditte dove almeno uno dei
15 campi è si.
grazie ancora ciao


MUMBLE ... ma te l'ho detto nel post precedente ...!
Va ben, incolla qua sotto il SQL della tua query e vediamo come
modificarla.
Popi

 ha scritto nel messaggio 
news:a5a61f09-f051-4b17...@e21g2000vbz.googlegroups.com...
Buongiorno mi scuso per l'oggetto poco chiaro, ma il richiamo al
romanzo (..e al film) è stato troppo forte.
Vorrei un consiglio su come realizzare, magari con una soluzione
elegante e con un codice molto ridotto rispetto ai chilometri di testo
che scriverei io, la mia realizzazione.
Ho una tabella DITTE dove per ogni ditta viene indicato (con formato
si/no) su quali delle 15 province opera.
Ho fatto una casella di riepilogo che, collegata ad una query, in base
alla ditta scelta mi indica su quindici colonne i si/no relativi alle
province.
Ho quindici caselle di testo che mi rappresentano le province dove, su
evento della combinata, viene valorizzato il codice Me.torino =
Me.SceltaDitta.Column(x).
Spero sin qui di essere stato chiaro....
---------------------------
Secondo me sbagli a mettere nella tabella ditta i 15 campi con le province.
Il giorno in cui aumenti le province sarebbero problemi, sui report, nelle 
maschere e nelle query.
Io farei una seconda tabella (DittaProvince) con ID, Ditta (numerico, parte 
molti della relazione con tbl Ditte), Provincia (numerico parte molti della 
relazione tra TabProvince (se non hai questa tabella andrebbe creata) e tbl 
DittaProvince.
E' chiaro che questa seconda tabella (DittaProvince) diventa una tabella 
intermedia che realizza una relazione molti a molti tra la tbl Ditte e la 
tbl Province: molte ditte, molte province.
----------------------------
Ora potrei rendere eventualmente visibili queste caselle se pari a si
ma mi rendo conto anche che potre (forse...) filtrare dalla macro solo
i sì...
Però la parte che più è difficoltosa è che le eventuali due o più
province restituite dalla combo le devo confrontare con un altro
valore per verificarne la congruità....
E qui mi rendo conto che forse mi sfugge una funzione semplice e
potente che potrebbe fare al caso mio...._(oltre ad uno psicologo...)
Qualcuno riesce a suggerirmi una strada più comoda ?
grazie
---------------
Quella suggerita mi sembra la più comoda e anche la più corretta.
Ciao, Carlo 


ciao Popi,
ho capito che me lo avevi già scritto (detto) nel post precedente, ma
non capisco dove e come inserire (o sostituire) il codice nella mia
query; devo inserirla nel linguaggio sql ?
Scusa ma come avrai capito nei ns. precedenti sono un pò out in
materia access e vba....
Comunque qui sotto allego il listato sql della mia query, grazie di
cuore per l'aiuto.
SELECT Ditte.ACCORDOQUADRO AS Ditte_ACCORDOQUADRO, Ditte.AO, Ditte.TO,
Ditte.AL, Ditte.AT, Ditte.[NO], Ditte.VB, Ditte.BI, Ditte.VC,
Ditte.CN, Ditte.GE, Ditte.SP, Ditte.IM, Ditte.SV, Ditte.lotto,
Ditte.Gruppo, Ditte.tipologia
FROM Ditte;
Ovviamente le filiali sono quelle da AO a SV.....
baci ciao

 Ciao, Carlo
ciao grazie per l'aiuto e per i tuoi graditi suggerimenti.



WHERE ((Ditte.AO=True) OR (Ditte.TO=True) OR (Ditte.AL=True) OR
(Ditte.AT=True) OR (Ditte.[NO]=True) OR (Ditte.VB=True) OR
(Ditte.BI=True) OR (Ditte.VC=True) OR (Ditte.CN=True) OR
(Ditte.GE=True) OR (Ditte.SP=True) OR (Ditte.IM=True) OR
(Ditte.SV=True));
Suggerimento: stanti le tue difficolta' con Access/Vba/Sql (nessuna
critica, nessuno nasce "imparato"), invece di scriverti le query a
mano prova a crearle usando Access (con la finestra del database
attiva, scegli il menu Inserisci/Query, vedrai che e' MOLTO piu'
semplice di cosi').
HTH
Popi

 baci ciao
Mi fai tornare indietro di 10 anni ... conoscevo la persona (una
bellissima persona) che aveva coniato questo saluto ...
Popi


ok capito,.....
non ci crederai ma:
1) solo dopo aver scritto il codice sql da te suggerito e visto cosa
succedeva alla query nella visualizzazione struttura, ho capito il
perchè nella struttura ci "stavano" tante righe vuote....
2) la query non filtrava quello che volevo perchè non nascondevo il
codice ditta che essendo diverso anzichè 23 casi me ne riportava 114
(dove la differenza erano 89 ditte con tutti i campi provincia
falsi...)
3) oggi ho imparato un paio di cose nuove, merito del ng, e delle
persone umane e buone che lo frequentano...
grazie


spero una femmina e che ti abbia lasciato un buon ricordo....
;-)
baci ciao

"Popi - TheBadHabits"  ha scritto nel messaggio 
news:63c9de7c-45cc-4301...@s14g2000vbi.googlegroups.com...



Popi
________Risposta:
ferme restando le mie perplessità sulla struttura adottata (mi chiedo se 
domani dovrai tracciare i comuni e non la provincia...)
fai un bel WHERE (Abs(prov1)+Abs(prov2)+Abs(prov3)...) >0
MA

 "Popi - TheBadHabits"  ha scritto nel messaggionews:63c9de7c-45cc-4301...@s14g2000vbi.googlegroups.com...

MA, in un post precedente dicevo "quelle e solo quelle saranno sempre
le tue possibili province" e li' mi fermavo perche' temevo che
l'approccio al problema avrebbe coinvolto le query a campi incrociati,
mentre una soluzione piu' flessibile avrebbe richiesto (almeno)
un'altra subform e chissa' cos'altro.
Ovviamente IMVVVHO, e fermo restando che sottoscrivo in pieno quanto
sostieni. :)
Popi