Newsgroup: it.comp.appl.access
Titolo: Nascondere un pulsante

Ciao a tutti, volevo chiedere se è possibile, far nascondere o eliminare un
pulsante di comando in una maschera.
Mi spiego meglio, io devo archiviare i dati ad ogni fine anno, ho
predisposto dei pulsanti per gli anni 2002, 2003, 2004.
Dopo aver provveduto ad archiviare il 2002, vorrei far in modo che al
termine di tutte le operazioni, il pulsante 2002, venga cancellato oppure
nascosto.
grazie per la collaborazione
gianni

"gi@nni" ha scritto:

esiste la proprietà visible
però mi sembra macchinoso non far vedere più un pulsante per il solo fatto
di non usarlo più,
nel senso che potresti usare un unico pulsante e farlo agire in base ad esempio
ad una opzione selezionata o un valore inserito in una casella di testo

 ha scritto nel messaggio
news:3C5B175F...@lycos.it...

si potrebbe essere un'altra soluzione, ma siccome non è molto che utilizzo
access, farlo mi sembrava troppo, mentre quella era per me la soluzione alla
mia portata.
Io di volta in volta, devo eseguire una query diversa per ogni anno, che mi
crea una tabella riferita appunto a quell'anno
si non ti crea problemi mi protresti dare un suggerimento.
grazie gianni


prova a postare la query e qual'è l'elemento che deve cambiare
ipotizzo che ora hai 3 query similari assegnata ciascuna ad un pulsante
inoltre poi ti sono sufficienti solo gli anni che hai citato o in seguito
anche ulteriori anni? questo perchè se così fosse il metodo dio avere per
ogni anno un pulsante non è flessibile

 ha scritto nel messaggio
news:3C5BBA71...@lycos.it...

Ciao grazie per la risposta.
Se c'è un sistema per rendere l'archiviazione più flessibile e per più anni,
è perfetto.
Di seguito le operazioni che deve eseguire il pulsante dopo aver creato la
tabella:
DoCmd.OpenQuery "Anno_2002_Query", acViewNormal, acEdit
    DoCmd.OpenTable "Protocollo", acViewNormal, acEdit
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.Close acTable, "Protocollo"
       DoCmd.OpenTable "Ordinaria", acViewNormal, acEdit
       DoCmd.RunCommand acCmdSelectAllRecords
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.Close acTable, "Ordinaria"
            DoCmd.OpenTable "Prioritaria", acViewNormal, acEdit
            DoCmd.RunCommand acCmdSelectAllRecords
            DoCmd.RunCommand acCmdDeleteRecord
            DoCmd.Close acTable, "Prioritaria"
                DoCmd.OpenTable "Raccomandate", acViewNormal, acEdit
                DoCmd.RunCommand acCmdSelectAllRecords
                DoCmd.RunCommand acCmdDeleteRecord
                DoCmd.Close acTable, "Raccomandate"
Questa e la query:
SELECT Protocollo.ID_Protocollo, Protocollo.Data_Spedizione,
Protocollo.Oggetto, Destinatario.Destinatario,
Destinatario.Destinazione_citta, Destinatario.Destinazione_via,
Destinatario.Note, Raccomandate.Numero_Raccomadate,
Raccomandate.Peso_Raccomandata, Raccomandate.Tassa_Raccomandata,
Raccomandate.Ricevuta_Ritorno_Raccomandata,
Ordinaria.Numero_Lettere_Ordinaria, Ordinaria.Peso_Ordinaria,
Ordinaria.Tassa_Ordinaria, Prioritaria.Numero_Lettere_Prioritaria,
Prioritaria.Peso_Prioritaria, Prioritaria.Tassa_Prioritaria INTO Anno_2002
FROM Destinatario INNER JOIN (((Protocollo LEFT JOIN Ordinaria ON
Protocollo.ID_Protocollo = Ordinaria.ID_Protocollo) LEFT JOIN Prioritaria ON
Protocollo.ID_Protocollo = Prioritaria.ID_Protocollo) LEFT JOIN Raccomandate
ON Protocollo.ID_Protocollo = Raccomandate.ID_Protocollo) ON
Destinatario.ID_Destinatario = Protocollo.ID_Destinatario;

Se ho ben capito per ogni pulsante esegui tutte una serie di operazioni
di cancellatura in base ad una query che č uguale in tutto ma cambia
solo
nella tabella dopo INTO ...
giusto.
allora ti basterebbe
1)invece di usare piů pulsanti uno per ogni anno una soluzione
alternativa
che ticonsente di poter scegliere l'anno che vuoi
ma allosteso tempo di non voler piů avere nelle opzioni di scelta tale
anno una
volta che non erve piů
quindi nemmeno le opzioni (il cerchietto rotondo) č una soluzione
ottimale
secondo me dovresti avere una casella combinata con elenco a discesa e
solo
su valori in elenco collegata n.b. solo per vedere tale elenco a discesa
ad una mini tabellina dove ti ci metti gli anni che vuoi e che puoi
togliere ed aggiungere quando vuoi
in modo che poi nell'elenco ne avrai solo quelli che vuoi tu e quindi ad
esempio ne puoi avere
10 di anni oppure uno solo basta impostare la tabellina 
in questo modo la soluzione č altamente flessibile 
a questo punto il problema č di fare in modo che al click sulla casella
combinata
vengano eseguite le stesse operazioni di ogni pulsante in base all'anno
da te scelto nell'elenco
questo significa che 1'aprirai sempre la stessa query ma gli devi
passare dopo INTO il nome della tabella
dell'anno cliccato
non so come si fa ma prova a postare mettendo il codice e chiedendo
che al click deve essere passato alla query una certa tabella in base
a al valore dell'anno selezionato in elenco:
č chiaro che a questo punto 1) prima devi passare la tabella alla query
e
poi fai tutte le selezioni e cancellature che vuoi

 ha scritto nel messaggio
news:3C5F92D1...@lycos.it...

Grazie per la risposta.
In effetti, io avevo pensato a quello che tu mi hai suggerito, ma non riesco
a trovare la soluzione per creare la tabella d'archivio, assegnandogli il
nome al momento della creazione.
Mi spiego meglo, siccome le operazioni da compiere sono sempre le stesse,
l'unica cosa che cambia ogni anno, č il nome della tabella.
Se č possibile fare quello che io ho pensato, praticamente ho risolto il mio
problema.
grazie gianni

fai una prova, mi raccomando fatti comunque sempre una copia
del db dove  vai a provare
al posto del nome della tabella metti un riferimento alla
casella combinata dove però al posto degli anni andrai a mettere per
fare la 
prova una sola colonna con i nomi delle tabelle dei vari anni
quindi qualcosa dentro il codice della query del tipo
forms!nomemaschera!nomecasellacombinata.columns(0)
o
forms!nomemaschera!nomecasellacombinata
il primo nome non mi ricord se form o forms
e nel click sul codice della casella combinata,
prima delle righe di codice di selezione e cancellazione,
fai una requery alla query in modo che
ti aggiorna la query al valore del nuovo nome anno tabella
chiaramente se la tua maschera è associata alla query allora
basta un me.requery oppure ci metti il nome dell'eventuale sottomaschera
però per fare riferimento alla form dentro la sottomaschera devi vedere
sulla guida oppure fai riferimento direttamente al nomequery.requery
con mi sembra nomequery dentro []
se non va allora non viene passsato il nome delle tabelle anni alla
query
ergo riposta per altri del news
se funziona allora poi aggiungi per ogni nometabella una colonna con
solo
numero dell'anno 2000 2001 nella colonna 1 e rendi a zero la larghezza
della colonna 0 che però ricorda è il valore che in realtà passi 
alla query

 ha scritto nel messaggio
news:3C6128DD...@lycos.it...


 alla query
se invece funziona allora è chiaro che a te basta vedere in elenco solo
l'anno mentre in
una colonna nascosta metti i nomi delle tabelle che passi

 ha scritto nel messaggio
news:3C659887...@lycos.it...


 al momento della creazione, se la query legge la casella,
infatti una volta acquisito il principio di funzionamento puoi ottimizzarlo in
base alle tue esigenze
io ho ipotizzato una casella combinata perchè non sapevo quante volte tu avresti
dovuto usare
un certo anno prima di nn usarlo più ed è chiaro se viene usato parecchie volte
allora vale tenerlo in una
casella combinata collegata comunque ad una tabella che ti consente di
aggiungere tutti gli anni che vuoi e di toglierli
comunque a piacimento; ma se l'utilizzo è di una volta sola è chiaro che è
meglio come dici tu
ti scrivi il nome della tabella dell'anno e poi attivi la query, magari per non
sbagliarti a scrivere l'anno
mi divertirei a creare tre caselline di testo con l'obbligo che l'inserimento
del nome sia uguale in tutte e tre
e con l'accorgimento che ti scrivi la seconda ma senza vedere la prima e scrivi
la terza senza vedere la seconda e la prima
in questo modo eviti di fare un'operazione di calcolo su una query con una
tabella anno sbagliata a causa della fretta
chiaramenteo questo lo fai se ti va e sopratutto se i dati che ottieni dalla
query non riesi a capire se sono proprio riferiti
all'anno che volevi tu
quindi il fatto di riscrivere per tre volte lo stesso nome della tabella senza
vedere gli altri in teoria ti dovrebbe spingere
a inserire il dato giusto, diciamo è lo stesso principio di quando sottoscrivi
un abbonamenteo ad internet e ti richiedono la
conferma della password.
fatto salvo che i suggerimenti che tio ho dato funzionini nel senso che per
avere nell'SQL il codice dopo INTo
è sufficiente passargli il rierimento della casella combinata (o casella di
testo)
chiaramente il modo in cui vuoi crearti queste conferme lo fai come ti piace che
ne so del tipo
hai tre caselle di testo di cui 2 non visibili poichè coperte da un rettangolo,
tu
riempi la prima casella di testo e fai partire un pulsante di ok che ricopre con
un altro rettangolo
la prima casella e poi scopre la seconda casella che tu riempi di nuovo e poi
riclicchi il pulsante
che copre anche la seconda e apre la terza casella di testo dove tu riscrivi il
nome della tabella
e poi ripremi il pulsante che a questo punto va a controllare che tutte e tre i
valori della casella
siano uguali e se sono diversi ti riporta al punto iniziale ricancellando tutto
mentre se sono uguali
apre una mascherina dove su sfondo nero e con scrittai n giallo bella grossa ti
chiede
ehi ciccio hai scelto la tabella anno xxxx che faccio parto o annullo tutto, e
qui
tu puoi scegliere tra due pulsanti uno ok e uno annulla tutto all'ok puoi far
ripartire un'altra bella maschera
con sfondo gialllo e scritta nera come la prima con la scritta guarda ciccio che
hai scelto la xxxx tabella
se sei proprio convinto e a questo punto credo di si peremi ok oppure clicca su
cazz mi sono sbagliato
e annullo tutto.
è chiaro che nella gestione iniziale di primo inserimento devi fare in modo che
il pulsante sappia
quale rettangoli aprire e quali chiudere, basta mettere un po di if a destra e
amanca e si risolve il tutto
però credo che è troppo complicato e non chiedermi come si fa a livello di
codice, diciamo che
fatti una casella di testo e prima di dare l'ok usa una bella lente
d'ingrandimento e un mumble mumble
mentale prima dell'ok
ho un pò scherzato ma volevo solo suggerirti che se i dati per te sono
importanti e non riesci a capire
se hai sbagliato l'inserimento della tabella anno puoi crearti in effetti una
seconadf casella di controllo
o una schermata di conferma sull'anno da et inserito

 ha scritto nel messaggio
news:3C697074...@lycos.it...


 ringrazio nuovamente.
non ho mai utilizzato le query di accodamento, al limite sa hai ulteriori
problemi posta il caso specifico