Newsgroup: it.comp.appl.access
Titolo: scritta predefinita su casella di testo

mi chiedevo se possibile fare un qualcosa tipo quella che si può fare con le
caselle di testo sulle pagine web.
mi riferisco a quelle caselle di testo che contengono una scritta predefinita,
ma che nel momento in cui si clicca dentro, la scritta si svuota per dare la
possibilità di inserire il testo.
Ciao
Silvia.
 --
www.silvietta.it
...everyone's invited!
Non Esiste Una Razza Bianca, Benche' Se Ne Parli Tanto: Ogni Uomo Bianco E' Solamente Un Uomo Scolorito 

spiego meglio:
la differenza con "valore predefinito" è che non dovrebbe essere salvata, la
scritta predefinita...


vabbè, se no, uso quell'opzione e poi al momento del salvataggio....... ecc ecc,
(ci siamo capiti)
ciaoooo


 (ci siamo capiti)
Ciao, Silvia.
    Invece, se ho ben compreso cio' che vuoi fare, potresti usare proprio la
proprieta' "Valore predefinito", associata alla proprieta' "Valido se".
    Per esempio:
        Valore predefinito: ="Immetti nome"
        Valido se:          <>"Immetti nome"
    Altra questione, invece, e' eliminare il valore predefinito quando entri
nel controllo, e la cosa e' dipendente anche dalle proprieta' del campo
"Richiesto" e "Consenti lunghezza zero".
-- 
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio Borrelli, Microsoft MVP Access
--------
?SPQR(C)
 X
--------

 ha scritto nel
messaggio news:haed00pc8ig1achf7...@4ax.com...

O azzerarne il contenuto con l'evento "su invio"...
Ciao.
--
Sergio MAZZA

        Valido se:          <>"Immetti nome"
sì, infatti, ma ieri il "valido se" lo ignorava totalmente.
chissà che oggi non cambi di umore.
provo.
niente. lo ignora.
io inizio a scrivere in un nuovo record, lasciando uno di quei campi con
"immetti il nome", mi sposto in altri record e non errore alcuno.
che tipo di errore dovrebbe dare quel "valido se"?


 che tipo di errore dovrebbe dare quel "valido se"?
Ciao, ]SiLVieTTa[.
    Momento!... Facciamo un passo indietro... Tutto ha origine da una
tabella. Ed in particolare da uno, o alcuni, o tutti i campi di tale
tabella: in base alle tue necessita'.
    Prima cosa verificare i valori delle proprieta' "Richiesto" per i campi
interessati al "trattamento speciale". Hanno tutti lo stesso valore? Quale?
Si' oppure No? Gli eventuali campi di testo che valori hanno nelle
proprieta' "Consenti lunghezza zero"?
    Poi devi decidere se "Valore predefinito" e "Valido se" li vuoi
impostare come proprieta' dei campi a "trattamento speciale" oppure come
proprieta' dei controlli Casella di testo delle maschere. Io opterei per le
maschere, perche' tali impostazioni sono un po' speciali e potrebbero andare
in conflitto con altri usi dei dati in altre maschere.
    Quando si usa tale maschera si ottiene l'errore al salvataggio del
record corrente quando si tenta di passare ad altro record, o di chiudere la
maschera. Un errore standard che puo' essere gestito intercettando l'evento
di maschera Su errore, in maniera per esempio da non far apparire un
messaggio ma spostando il fuoco sul primo controllo che non contiene un
valore corretto.
    Ci siamo?... O sono fuori strada?
-- 


 O azzerarne il contenuto con l'evento "su invio"...
Ciao, Sergio.
    Sarebbe bello, ma come dicevo nei miei post in questo 3d, c'e' il
problema che probabilmente il campo in questione e' soggetto a qualche
vincolo, vuoi Richiesto=Si', vuoi Consenti lunghezza zero=No, che
impedirebbero l'"azzeramento". Ovviamente se tali vincoli non sussistono
allora si potra' fare.


maschera. 
a me non da mai errore.
allora nel frattempo stavo provando questa tecnica:
Sub PulisciCaselle()
    If Me.Cognome = "inserire cognome" Then Me.Cognome = ""
    If Me.Nome = "inserire nome" Then Me.Nome = ""
    If Me.CodiceFiscale = "ins. cod fiscale" Then Me.CodiceFiscale = ""
    If Me.Note = "inserire note" Then Me.Note = ""
End Sub
Private Sub Cognome_GotFocus()
    Me.Cognome.SelStart = Me.Cognome.SelLength - Me.Cognome.SelLength
    PulisciCaselle
End Sub
il che fa esattamente quello che desideravo io.
l'unico "problemino" č che, esempio, partendo da una maschera continua, io ho
lasciato che l'ultima riga sia un recod vuoto pronto da riempire. nel momento in
cui clicco nella casella di testo del record vuoto, cancella tutti i campi,
MA....
mi crea subito un altro record nuovo, sotto, anche se non ho ancora scritto
niente in quello prima.
e lo considera invece, come se fosse stato riempito.
quindi mi trovo il record con i campi svuotati e il record nuovo con "inserisci
cognome", ecc.
quando provo a eliminare quello vuoto, il procedimento che segue č il seguente:
elimina il record
va sul campo cognome del nuovo record
svuota i campi
crea un record nuovo
non so se mi sono spiegata
praticamente non si riesce a cancellare
mi ritrovo sempre un record con campi vuoti
e uno con "inserisci cognome"


End Sub
d'accordo, magari risolvo, cambiando il tipo di evento..



Ciao Maurizio,
sembra essere bello; almeno ho fatto questa prova, per la casella di testo:
- utilizzando la proprietà DefaultValue impostata con la stringa: "Inserire
il testo";
- evento "su invio" con il codice:
Private Sub nomeCasellaDiTesto_Enter()
If Me.NewRecord And Me!nomeCasellaDiTesto.DefaultValue = Chr(34) & "Inserire
il testo" & Chr(34) Then
    Me!nomeCasellaDiTesto.DefaultValue = ""
End If
End Sub
- evento "su uscita" con il codice:
Private Sub nomeCasellaDiTesto_Exit(Cancel As Integer)
Me!nomeCasellaDiTesto.DefaultValue = Chr(34) & "Inserire il testo" & Chr(34)
End Sub
- evento "su corrente" della form:
Private Sub Form_AfterUpdate()
Me!nomeCasellaDiTesto.DefaultValue = Chr(34) & "Inserire il testo" & Chr(34)
End Sub
Certo è macchinoso ma sembra possa simulare la funzionalità richiesta da
Silvetta; l'ho provata anche su una maschera continua, non inserisce nessun
record.
Ciao.
--
Sergio MAZZA