Newsgroup: it.comp.appl.access
Titolo: Formattazione condizionale in base al valore riportato in tabella

Buona sera a tutti.
Ho una nuova richiesta di aiuto, in una sottomaschera in visualizzazione 
foglio dati, vorrei poter "colorare" tutti quei record laddove in tabella 
risultano flaggati.
In pratica dalla maschera dei prodotti principale vorrei evidenziare tutti 
quei prodotti che sono stati selezionati e pronti da stampare per 
l'acquisto. Onde evitare di selezionarli nuovamente.
Grazie anticipatamente.
Roberto


Vedi se può aiutarti l'esempio 3.25 nella sezione Forms in 
www.sitocomune.com
.
Riccardo Baldinotti

"Riccardo Baldinotti"  ha scritto nel messaggio ...
Vedi se può aiutarti l'esempio 3.25 nella sezione Forms in 
www.sitocomune.com
.
Riccardo Baldinotti
Grazie per la dritta.
Avevo già visto tale esempio, vorrei ottenere proprio un risultato simile. 
Quando in tabella il risultato relativo al campo "da acquistare" è come 
condizione "vero" allora evidenzia tutti quei record che hanno tale 
condizione.
Però sinceramente non saprei come adattare l'esempio 3.25 alle mie 
necessità, soprattutto perchè devo far riferimento ad un valore collocato 
nella tabella e cosa più importante, devo fare i conti con le mie scarse 
abilità...
Rob. 


Così a memoria...
Clicchi su una casella di testo della tua maschera in modalità
visualizzazione struttura; nel menu Struttura clicchi su Condizionale;
scegli "L'espressione è"; poniamo che il tuo flag sia un campo che si
chiama Sel: nella riga di fianco scrivi [Sel]=-1, scegli il colore di
sfondo, il colore del testo e se la casella deve essere abilitata o
meno, sono i bottoncini subito sotto.
Quando apri la maschera quella casella dovrebbe apparire di
conseguenza.
Buon lavoro.
Riccardo Baldinotti

"Riccardo Baldinotti"  ha scritto nel messaggio ...
Così a memoria...
Clicchi su una casella di testo della tua maschera in modalità
visualizzazione struttura; nel menu Struttura clicchi su Condizionale;
scegli "L'espressione è"; poniamo che il tuo flag sia un campo che si
chiama Sel: nella riga di fianco scrivi [Sel]=-1, scegli il colore di
sfondo, il colore del testo e se la casella deve essere abilitata o
meno, sono i bottoncini subito sotto.
Quando apri la maschera quella casella dovrebbe apparire di
conseguenza.
Buon lavoro.
Riccardo Baldinotti
Grazie nuovamente per il supporto, però non so come adattare tale formula 
visto che dovrei fare riferimento a record esistenti nella tabella storico.
Vediamo se riesco a fare una sintesi di quello che vorrei creare.
Ho una tabella dove seleziono tramite flag i prodotti alimentari che dovrò 
acquistare. Una volta selezionati tramite query di accodamento vado a 
popolare la tabella Storico. Poniamo per esempio che il giorno dopo debba 
aggiungere altri prodotti da acquistare, vorrei appunto che i prodotti già 
selezionati il giorno prima facendo riferimento alla tabella storico, 
venissero evidenziati di un altro colore, tutto questo per evitare di aprire 
un'altra maschera oppure un report che mi riportano i prodotti già scelti.
Grazie.
Roberto 

 Roberto
Se il problema è evidenziare, direi di fare come spiegavo: nella
sottomaschera colori i campi in base al flag. Non ho capito lo scopo
della tabella Storico: i record col flag settato sono già
"storicizzati". Forse che quel flag viene in seguito resettato?
In tal caso poni l'origine della sottomaschera così:
SELECT tabella.codice, tabella.<campo1>, tabella.<campo2>, ...,
storico.codice AS presente FROM Tabella LEFT JOIN Storico ON
tabella.codice = storico.codice;
e nella sottomaschera metti l'espressione Condizionale come:
"[presente] is not null"
Ho provato ora per sicurezza.
Riccardo Baldinotti

"Riccardo Baldinotti"  ha scritto nel messaggio ...
Se il problema è evidenziare, direi di fare come spiegavo: nella
sottomaschera colori i campi in base al flag. Non ho capito lo scopo
della tabella Storico: i record col flag settato sono già
"storicizzati". Forse che quel flag viene in seguito resettato?
In tal caso poni l'origine della sottomaschera così:
SELECT tabella.codice, tabella.<campo1>, tabella.<campo2>, ...,
storico.codice AS presente FROM Tabella LEFT JOIN Storico ON
tabella.codice = storico.codice;
e nella sottomaschera metti l'espressione Condizionale come:
"[presente] is not null"
Ho provato ora per sicurezza.
Riccardo Baldinotti
Si, effettivamente la flag nella sottomaschera viene resettata quando a 
mezzo macro, una volta selezionati i prodotti con flag, vado a popolare la 
tabella Storico con una query di accodamento.
Ho provato a variare l'origine della sottomaschera come mi indichi, 
sostituendo i nomi delle tabelle e dei campi ma probabilmente qualcosa non 
quadra visto che non funziona:
SELECT Prodotti.Des, Prodotti.<GruMer>, Prodotti.<Acq>,Storico.codice AS 
presente FROM Prodotti LEFT JOIN Storico ON
Prodotti.Acq = Storico.Acq;
La maschera Prodotti e relativa Prodotti Subfind sono collegate alla tabella 
Prodotti. La Subfind ha questi campi; Des, GruMer e Acq che è la flag. Tutto 
quello che seleziono con la flag successivamente va riportato in tabella 
Storico che ha gli stessi tre campi più altri.
Come dicevo, Nella prodotti subfind, vorrei che mi venissero evidenziati 
quei record precedentemente selezionati ed esistenti in storico.
Pensavo fosse più semplice del previsto, se proprio non riuscirò a 
raggiungere lo scopo, faro in altro modo.
Grazie e chiedo venia per la poca esperienza.
Roberto
 


Le parentesi angolari erano lì per indicare un campo ipotetico. Scrivi
"Prodotti.GruMer, Prodotti.Acq", senza angoli.
Poi non ho capito: usi il flag Acq come critero di unione fra Prodotti
e Storico, ma se il flag viene resettato non avrai nessun legame.
Il campo di esempio "Storico.codice" va sostituto col campo univoco
che fa capire ad Access che stai parlando di un certo record e non di
un altro, suppongo che nel tuo caso ci sia un campo "Storico.Des".
Quindi l'origine della sottomaschera diventa:
SELECT Prodotti.Des, Prodotti.GruMer, Prodotti.Acq, Storico.Des AS
presente FROM Prodotti LEFT JOIN Storico ON Prodotti.Des =
Storico.Des;
Spiegami lo scopo di questo Storico: intendi scriverci le ordinazioni
dei prossimi anni? In tal caso, prima o poi TUTTI i tuoi prodotti
saranno ordinati e quindi nella tua sottomaschera avrai tuttti i
record evidenziati. O vuoi evidenziare solo i prodotti ordinati ieri?
O nell'ultima settimana? In tal caso serve qualche altra modifica.
Ciao.
Riccardo Baldinotti

"Riccardo Baldinotti"  ha scritto nel messaggio ...
Spiegami lo scopo di questo Storico: intendi scriverci le ordinazioni
dei prossimi anni? In tal caso, prima o poi TUTTI i tuoi prodotti
saranno ordinati e quindi nella tua sottomaschera avrai tuttti i
record evidenziati. O vuoi evidenziare solo i prodotti ordinati ieri?
O nell'ultima settimana? In tal caso serve qualche altra modifica.
Ciao.
Riccardo Baldinotti
Premetto che tale db č nato nel modo che ti spiegherň anche se forse si 
poteva fare differentemente e meglio, viste le mie modeste conoscenze.
Sto facendo questo database che mi gestisce la lista della spesa da fare al 
supermercato. Inizio con una maschera inserendo tutti i prodotti che mi 
vengono in mente, oggetto delle nostre spese ed il relativo gruppo 
merceologico. Poi selezionando creazione spesa composta da maschera e 
sottomaschera, seleziono i prodotti che mi interessano tramite una flag ed 
alla fine della selezione tramite una query di accodamento vado a popolare 
la tabella storico.
Nella tabella storico, "scaricherň" la spesa archiviandola per data in tal 
modo potrň all'occorrenza sapere a quando risale l'acquisto dell'articolo X
Quello che volevo tentare di fare con questo post, č per evitare di inserire 
un articolo da acquistare piů volte, senza consultare prima di inserire 
nuovi articoli, la lista di quelli precedentemente inseriti.
Eventualmente per capire meglio quest'intruglio, se mi dai un indirizzo di 
posta elettronica ti mando il db in questione.
Grazie ancora e ciao.
Roberto 


Sto rubando tempo all'ufficio fra i tre db che mi hanno chiesto
recentemente, a casa non ho neppure Access, pensa te. Ho messo mano a
un db altrui solo nel caso di un'amica carina... eh eh eh.
A parte gli scherzi, non saprei davvero quando farlo.
Spero almeno di esserti stato utile.
Ciao
Riccardo Baldinotti


Sto rubando tempo all'ufficio fra i tre db che mi hanno chiesto
recentemente, a casa non ho neppure Access, pensa te. Ho messo mano a
un db altrui solo nel caso di un'amica carina... eh eh eh.
A parte gli scherzi, non saprei davvero quando farlo.
Spero almeno di esserti stato utile.
Ciao
Riccardo Baldinotti
Ti ringrazio per avermi seguito fino a quì, vedo che hai pazienza. E chiedo 
scusa se ti faccio perdere del tempo prezioso. Fai bene a mettere mano ai 
soli db delle amiche carine! Forse però non mi sono spiegato bene cosa 
intendo fare, premetto che se anche non riuscirò nell'intento farò 
ugualmente qualcosa, anzi dopo devo postare nuovamente per altri problemi... 
Faccio un esempio più pratico. Poniamo che abbia in mano un foglio di carta 
con scritto la lista dei prodotti da acquistare al supermercato ed un foglio 
bianco dove andro a copiare dall'altra lista, tutti quei prodotti che mi 
servono per fare la spesa. Se prima di andare a fare la spesa, mi è venuto 
in mente che devo aggiungere altri prodotti, li aggiungo però attenzione, 
devo fare attenzione e guardare che non ci siano già nella lista compilata 
in precedenza. Per questo stavo cercando un sistema che mi evidenziasse i 
prodotti già inclusi nella lista per fare acquisti.
E' un pò ingarbugliata la faccenda... Grazie ancora per il tempo dedicatomi 
e buon lavoro.
Roberto