26 marzo 2024
Contribuisci alla categoria Microsoft 365 e Office!
9 febbraio 2024
I principali collaboratori di Microsoft 365 e Office:
[Access] Marcare records filtrati
Come posso fare per realizzare questo?
Grazie, Massimo.
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
ci sono vari modi che dipendono dalla situazione, se ad esempio il tuo db è usato da una sola persona allora la cosa più semplice è aggiungere un flag stampa alla tabella ed ogni volta prima di aprire la maschera li resetti a False. Se invece sei in una situazione multiuser dove varie persone contemporaneamente possono voler stampare dati diversi, la cosa più comoda è utilizzare una tabella temporanea sul FrontEnd con gli ID univoci dei record frutto del filtro e un campo flag, che l'utente imposterà con la sua selezione.
Solo un paio di idee, poi se ci illustri meglio il tuo caso possiamo approfondire una delle due soluzioni o trovarne un'altra.
Cinzia
Sito RIO
Il mio Blog
http://www.riolab.org/
http://accessdaziacin.wordpress.com/
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
Ciao Cinzia,
l’ambiente è multiutente e ti spiego in dettaglio: vengo dalla prima soluzione, ovvero adesso esiste una checkbox nella tabella del Back End che sfrutto per il filtro stampa su selezione. L’esigenza è cambiata in quanto, essendo il database utilizzato in contemporanea
da più persone, ho la necessità di permettere delle selezioni personalizzate.
Sono quindi giunto alla tua stessa conclusione, ho creato un’altra tabella nel Front End nella quale ho inserito il campo collegato alla checkbox, questa tabella è in relazione con quella principale e fin qui tutto funziona bene. L’utente a discrezione propria resetta la checkbox con un pulsante (per tutti i records), oppure lascia così com’è per eventuali aggiunte od eliminazioni alla selezione.
I problemi quali sono:
1. Essendo una sottomaschera quella che contiene la checkbox se l’utente preme PagUP o PagDOWN o muove la rotellina del mouse si passa al record successivo, l’effetto è chiaramente la spunta nella checkbox che scompare. La sotto-maschera è spoglia, senza niente fuorché un pulsante ed una checkbox, tale da sembrare parte stessa della maschera che la contiene, quindi in teoria l’utente neanche se ne avvede di questa caratteristica ma a me sembra davvero poco elegante e forse può generare anche qualche problema.
2. L’altra cosa che mi viene richiesta è di fornire un comando che, a fronte di un filtraggio (considera che ho filtri AND/OR su memo, filtro in base a selezione, filtro in base a combo box,...), si possa con un clic effettuare la spunta sulla checkbox di
tutti e soli i records in quel momento filtrati (filtro classico, oppure abbinati ad un Recordsource diverso che viene da una query SQL).
Non gli do torto, in effetti alcune selezioni restituiscono decine di records che andare a spuntare uno ad uno è veramente una perdita di tempo.
In sintesi: ho 1000 records? Ne filtro 100? Voglio con un pulsante selezionare tutti e 100 questi record in questo momento visibili, per poi effettuare in un secondo momento una stampa filtrata sul valore “-1” della checkbox.
In pratica mi piacerebbe sapere come si fa ad inserire un controllo in una maschera però facente riferimento ad un campo di un’altra tabella, che con la tabella principale ha una relazione sull’ID. Senza usare una sotto-maschera.
In secondo luogo come si fa a impostare in un colpo solo un campo su tutti e soli i record visibili a fronte di filtraggio.
Il mio approccio è stato questo, ben venga una soluzione diversa, non voglio condizionare.
Scusa la mia lungaggine e grazie per l’interessamento.
Ciao, Massimo.
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
Ciao Massimo,
per il primo problema, l'unica cosa che mi viene in mente è di eliminare la sottomaschera ed usare 2 bottoni uno per aggiungerlo alla selezione e uno per toglierlo, che vanno ad impostare il flag sulla tabella di appoggio con una query di comando.
Per il secondo problema, puoi risolverlo anch'esso con una query di comando, tieni presente che nella proprietà Filter della maschera hai sempre la condizione di filtro correntemente attiva per cui con una query del tipo
"Update TabellaAppoggio set flagStampa = True Where ID IN (Select ID From TabellaPrincipale Where " & Me.filter
dovresti più o meno risolvere
Cinzia
Sito RIO
Il mio Blog
http://www.riolab.org/
http://accessdaziacin.wordpress.com/
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
Ciao Cinzia,
infatti per alcuni filtri posso sfruttare il Me.Filter, il probema mi rimane con le query SQL dove agisco sul Recordsource della maschera, sto smanettando con il RecordsetClone ma non ne vengo a capo.
Dici che se inserisco:
"Update TabellaAppoggio set flagStampa = True Where ID IN (Select ID From TabellaPrincipale Where " & Me.RecordsetClone
funziona?
Massimo.
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
no non funziona con il recordsetclone, dovresti forse usare qualcosa tipo:
"Update TabellaAppoggio set flagStampa = True Where ID IN (Select ID From (" & me.recordSource & "))"
oppure, se così non funziona, dovresti ricavare dal recordsource tutto quello che c'è a destra della Parola FROM costruendo una query di comando del tipo:
"Update TabellaAppoggio set flagStampa = True Where ID IN (Select ID From " & GetRightFromRS(me.recordSource) & " )"
Facci sapere!
Cinzia
Sito RIO
Il mio Blog
http://www.riolab.org/
http://accessdaziacin.wordpress.com/
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
ho creato una checkbox “chkSetSelezione” di opzione sulla maschera con la quale gli utenti hanno la possibilità di permettere la selezione o meno dei records filtrati, in pratica se spuntata i vari filtri imposteranno anche il frag di stampa nell’altra apposita checkbox “chkSelezione”. Il codice l’ho dovuto aggiungere ad ogni filtro, in pratica se chkSetSelezione = -1 il filtro imposta (con il codice da Cinzia suggerito per quelli classici o con un UPDATE da SQL) anche un -1 sull’altra checkbox “chkSelezione”.
La checkbox “chkSelezione” appartiene alla stessa tabella perchè con una sottomaschera venivano fuori troppi problemi. Quindi per, diciamo, localizzare le selezioni, ho creato una nuova colonna nella tabella principale ed ho assegnato il ControlSource della checkbox a questa colonna. La colonna ha il nome di rete dell’utente che tiro fuori tramite apposita Function. Verifico che non sia già presente questo nuovo campo e se non lo è lo creo con codice tipo:
Tabella = "SELECT * FROM SYSCOLUMNS " _
& "WHERE ID=OBJECT_ID('tblDocs') AND NAME = '" & Utente & "'" & ";"
e di seguito assegno il ControlSource al nome Utente. Insomma un bel lavoretto però ne è valsa la pena perchè adesso sono tutti felici e contenti.
Grazie dei consigli, ciao.
Massimo.
Segnala abuso
Grazie.
Il contenuto segnalato è stato inviato
La risposta è risultata utile?
Siamo spiacenti che questo non sia stato utile.
Ottimo. Grazie per il tuo feedback.
Quanto sei soddisfatto di questa risposta?
Grazie per il feedback, ci aiuta a migliorare il sito.
Quanto sei soddisfatto di questa risposta?
Grazie per il tuo feedback.
Informazioni domanda
Ultimo aggiornamento 6 ottobre 2021 Visualizzazioni 1.568 Si applica a: