Newsgroup: it.comp.appl.access
Titolo: Proprietà Visible da codice

Buongiorno a tutti
dato che gią una volta siete stati molto gentili ed avete risposto ad un mio
quesito, approfitto di voi e ci riprovo !!!
Ho gia' guardato tra i post precedenti gli ultimi 200, e sul sito
www.sitocomune.com
 ma non ho trovato nulla che mi sembra vada bene per il
mio problema.
Avrei la necessitą di inserire nelle maschere del mio db alcune spiegazioni
per i pulsanti che ci sono;
la mia idea sarebbe quella di far apparire delle finestre con la descrizione
mentre per esempio si clicka su di un interrutore o altro vicino al pulsante
in questione.
Scartata la proprietą ControlTipText, ho pensato ad inserire tante piccole
maschere, ma ne dovrei inserire troppe (almeno 20) e vorrei risolvere in
altro modo.
So che esiste una proprietą "Visible" che rende visibile o meno un controllo
in una maschera: l'ideale sarebbe per me riuscire ad agire su questa
proprietą tramite codice Visual Basic, in modo che, premendo l'interruttore
messo vicino al pulsante in questione, appaia una casella di testo o un
etichetta contenente la descrizione.
Ho spulciato gran parte della Guida ed ho trovato alcuni suggerimenti che
perņ mi sembrano troppo complicati (tipo il costruirmi una guida
personalizzata) ma riguardo al metodo descrittovi qui sopra e non ne sono
venuta fuori.
Qualcuno saprebbe darmi una mano per piacere?
Grazie mille anticipatamente
Alessandra


Il metodo più semplice è:
crei una sola mascherina con un campo di testo (frmmiamasch)
la mascherina la metti popup e modal
crei una tabella in cui metti codcont e il testo che vui associare (es la
spiegazione del bottone)
es
bt1frmMia   premendo questo bottone si aprira la maschera per la
registrazione dei .....
quando l'utente clicchera sul interrutore da te citato
su evento clik
forms!frmmiamasch.visible=true
call dammimessaggio(codcont)
la funzione dammimessaggio la fai così:
definisci un recorset rstesti (la tua tabellina aperta in modalità recorset)
public function dammimessaggio(codice as string)
fai una lettura della tabella e quando il codice è uguale alcodcaunt della
tabella
forms!frmmiamasch!tuotesto= rstesti![desc]
Stefano


Grazie mille per la tua risposta velocissima!
Ho capito quasi tutto subito, effettivamente in questo modo è MOLTO più
semplice anche l'aggiunta di nuovi messaggi... :-)
Mi sono incagliata sulla funzione dammimessaggio, del resto è un po' che non
"bazzico" in VB, ma vedro' di ripescare le nozioni ben sotterrate nella mia
mente
Grazie ancora e buona giornata!
Alessandra

 tabella
IMHO, a questa soluzione soluzione quasi perfetta aggiungerei solo che,
invece di usare il recordset, la stringa la recupererei con una DLookup,
applicando il filtro sul codice.
Antonio

 ha scritto nel messaggio
news:_at%9.78151$ZE.21...@twister2.libero.it...

Scusa Antonio,
Io ho applicativi che funzionano in 8 lingue (l'ottava è il Thai) che
vantaggi potrei avere nel utilizare la funzone Dlookup al posto della
ricerca dei messaggi con un aquery e il relativo recorset?
es.
Apro una maschera dell'applicativo, da codice in base all'opzione della
lingua scelta dall'utente, vado a recuperare tutti i nomi e le descrizioni
dei controlli, bottoni, i valori degli elenchi ecc..
potrei fare altrettanto con la Dlookup, ho quardato sulla guida in linea sia
del Xp sia 2000 ma da quello che ho capito non posso usarla nel mio caso
Stefano

fai una lettura della tabella e quando il codice è uguale alcodcaunt della
tabella
Ma che tu scorri con un ciclo la tabella fino ad arrivare al codice giusto
senza saltare subito al record giusto? Spero di no...
Antonio


Grazie per il chiarimento proverò a vedere se è applicabile nel mio caso
Stefano


Se usi Access Xp (penso anche la 2000) puoi utilizzare  l'oggetto Baloon dell'assistente di office per lo scambio di informazioni
con l'utente.
Ciao,
Mat.


A me vengono in mente varie soluzioni, però ControlTipText rimane la
più pratica.
Comunque:
Intanto gli interruttori sarebbe meglio crearli con una cornice, in
modo che sono indicizzati tipo una pulsantiera ed è tutto più facile
(diciamo Pulsante) 
Poi si crea una TextBox (poniamo txtIstruzioni) invisibile, che
conterrà l'istruzione.
Prima soluzione:
Se i controlli non sono tantissimi, si può creare una Array di
stringhe con le varie spiegazioni, quindi, sull'evento click della
pulsantiera:
Me.txtIstruzioni=Array(Pulsante)
Me.txtIstruzioni.Visible=True
Seconda soluzione:
Invece che un'Array di stringhe crei una tabella [TabellaIstruzioni]
con IDIstruzione (Numerico) e  Istruzione (Testo)
Inserisci i dati e poi, sempre sull'evento click della pulsantiera:
Me.txtIstruzioni= DLookUp("Istruzione",
"TabellaIstruzioni","IDIStruzione = " & STR(Pulsante))
Me.txtIstruzioni.Visible=True
Naturalmente se non dovesse essere possibile raggruppare i pulsanti in
una cornice allora il codice perderebbe di efficienza, e sarebbe ad
es:
SUB cmd1_click()
Me.txtIstruzioni= DLookUp("Istruzione",
"TabellaIstruzioni","IDIStruzione = 1")
SUB cmd2_click()
Me.txtIstruzioni= DLookUp("Istruzione",
"TabellaIstruzioni","IDIStruzione = 2")
e via dicendo
Ciao
Filippo

grazie mille a tutti quanti per il vostro aiuto ed interessamento
provero' un po' tutti i sistemi da voi suggeriti e vedro' quale mi sembra il
piu' fattibile, anche se il mio arruginimento di Visual Basic e' piu' grave
di quanto sembrasse all'inizio e sempre + mi attira la soluzione di
Ipposoft:-)))
Grazie ancora a tutti!!!
Alessandra