Access 2007: pulsante che cambia aspetto

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Lavezzi09

Utente Attivo
Messaggi
4
Reazioni
0
Punteggio
24
Cari amici,

questo è il mio primo post. Cortesemente vorrei sapere se c'è la possibilità in Access 2007 di far cambiare format di un controllo pulsante appena si fa click.

Nello specifico: ho creato una maschera con dei campi calcolati. Per aggiornare tali campi o si passa ad un altro record oppure si preme F9. Altra possibilià, per restare nello stesso record, è quello di creare un pulsante con la procedura guidata con la funzione di "aggiorna tutto".

Ora: per sapere se ho già cliccato, oppure ancora no, sul pulsante "aggiorna" vorrei fare in modo che esso cambi colore, per esempio dal rosso al verde.

Avevo pensato alla formattazione condizionale ma non si può applicare ai pulsanti (in \struttura\condizionale rimane grigetto e non utilizzabile).


Grazie in anticipo a chi volesse aiutarmi.

Daniele
 
Buona sera

Per modificare la scritta su un pulsante con access basta inserire nell'evento del pulsante il seguente codice VBA:

Me.Comando147.ForeColor = RGB(255, 0, 0)

"Comando147" non è altrro che il nome del pulsante

Forecolor è il metodo da utilizzare per modificare il colore
RGB(a,b,c) definisce il colore il dettaglio lo si trova nella guida di VBA.
Nell'esempio sopra riportato imposta il colore della scritta in Rosso.

Comunque per ricalcolare una maschera senza inserire pulsanti di ricalcolo basta inseire sulla proprietà dei campi da compilare, il comando VBA Form.Recalc
lo potete inserire come codice ad esempio nell'evento "dopo aggiornamento"

Saluti e buona programmazione
 
Chiarimento

Buona sera

Per modificare la scritta su un pulsante con access basta inserire nell'evento del pulsante il seguente codice VBA:

Me.Comando147.ForeColor = RGB(255, 0, 0)

"Comando147" non è altrro che il nome del pulsante

Forecolor è il metodo da utilizzare per modificare il colore
RGB(a,b,c) definisce il colore il dettaglio lo si trova nella guida di VBA.
Nell'esempio sopra riportato imposta il colore della scritta in Rosso.

Comunque per ricalcolare una maschera senza inserire pulsanti di ricalcolo basta inseire sulla proprietà dei campi da compilare, il comando VBA Form.Recalc
lo potete inserire come codice ad esempio nell'evento "dopo aggiornamento"

Saluti e buona programmazione

:help:Scusami TDS, ma non so quasi nulla sulla programmazione in VBA. Potresti essere così gentile da spiegarmi passo dopo passo i due metodi che mi hai suggerito? e nello specifico, il comando Form.recalc (o forse: Me.form.recalc) sull'evento di quale campo devo inserirlo? Di quello calcolato oppure di quello dove va inserito il dato nuovo? Perché ho provato e non funziona.

Ti ringrazio in anticipo.:ok:
 
ciao
Me.recalc / me.form.recalc / form.recalc in effetti dovrebbero funzionare tutti

io li utilizzavo su Access 2000 ora dopo la tua segnalazione di non funzionamento sono andato a riprovare la cosa su access 2003 ed effettivamente inserendo il ricalcolo dopo l'aggiornamento di un campo non funziona.
Cercando nell'help di access 2003 viene invece riportato un esempio simile a quanto ti avevo risposto, ci dev'essere qualche baco.

In genere io utilizzo questo comando inserito in un pulsante o su attivazione di campi di database per recuperare dati da sottomaschere.

Ora comunque cercherò di capire come mai non funziona su aggiornamento di un campo.

Per quanto riguarda il cambio del colore con forecolor devi procedere come segue:

1) vai sule proprietà del pulsante in struttura
2) seleziona eventi
3) su click scegli generatore di codice
4) quando ti appare l'editor di VBA inserisci il codice

esempio potrebbe essere così:

Private Sub Comando5_Click()

Me.Comando5.ForeColor = RGB(255, 0, 0)

End Sub

5) per impostare il pulsante su un altro colore puoi inserire su disattivato la stessa cosa richiamando un altro colore esempio

Private Sub Comando5_LostFocus()
Me.Comando5.ForeColor = RGB(0, 0, 255)
End Sub

questi 2 esempi colorano di rosso il pulsante quando lo si preme e lo ricolorano di blu quando si clicca su un altro oggetto ad esempio un campo
per inserire un nuovo dato

Ciao

Ci sentiamo quando ho risolto il recalc
 
Ho effettuato delle prove ed effetivamente il recalc così non funziona, se vuoi eliminare il pulsante di ricalcolo ti conviene creare una funzione all'interno della maschera per il ricalcolo e chiamarla dopo ogni evento di aggiornamento o di modifica dei dati ad esempio in una maschera composta da tre campo:
campo0, campo2 e campo5 nella qual vogliamo che il campo 5 venga calcolato come campo0*campo2 si può fare una soluzione di questo tipo:

Option Compare Database
' Questa è la funzione di calcolo all'interno della maschera
Sub calcola()
Me.Testo5 = Me.Testo0 * Me.Testo2
End Sub

' queste sono le chiamate sugli eventi di ciascun campo

Private Sub Testo0_AfterUpdate()
Me.calcola
End Sub

Private Sub Testo2_AfterUpdate()
Me.calcola
End Sub

In questo modo puoi creare delle funzioni complesse da utilizzare per i ricalcoli.

ciao
 
TDS,

scusami se ti rispondo soltanto adesso, ma causa lavoro intenso non ho avuto tempo.

grazie per i consigli, spero di metterli in pratica al più presto.

Ciao e rigrazie
 
access 2007 calcolatrice

buongiorno a tutti,
sono utente appena iscritto e non so se sto postando nel forum giusto.
ho bisogno del vostro prezioso aiuto!
ho appena creato in access 2007 un programma che DOVREBBE raccogliere alcuni dati: la prima schermata è un calendario. il calendario dovrebbe avere la funzione (oltre a darmi data mese e anno) di dirmi e darmi la disponibilità di alcune vasche di lavoro.
la mia domanda è questa: posso far cambiare il colore della casella al giorno singolo del mese/settimana a seconda dell'impegno della vasca lavori?
tipo vasca libera casella giorno= verde; vasca impegnata al 50% casella giorno= arancio; vasca impegnata al 100% casella giorno = rosso.
io ho notato che posso creare un evento su tutto il calendario......ma non su un singolo giorno. è normale che poi tutto sta a far estrapolare i dati esatti!
devo dare e/o scrivere un comando specifico? e se si quale?
è molto importante per me finire e fare bene questo lavoro....
spero di essere stata chiara....
grazie a tutti
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top