Newsgroup: it.comp.appl.access
Titolo: Casella di testo che accetti solo due valori

Salve,
come posso fare in modo che una casella di testo possa contenere solo
due valori da me stabiliti e, nel caso in cui venga digitato un altro
valore, che venga eseguito un comando sempre da me stabilito.
Avevo pensato all'evento afterupdate della casella di testo, ma non so
cosa scriverci.
I valori sono "Versato" e "Non versato".
Grazie.

 ha scritto nel messaggio 
news:1151147848.0...@p79g2000cwp.googlegroups.com...

Può essere fatto a nche a livello di tabella. Comunque nel controllo della 
maschera, nelle proprietà, alla voce "Valido se" scriverai:
="Versato" Or "Non versato" Or Is Null  (questo se decidi che il controllo 
possa contenere un valore null)
Nella proprietà messaggio di errore scriverai quello che vuoi, per esempio:
Inserire un valore come Versato o Non versato oppure lasciare in bianco.
Ciao, Carlo 

 Ciao, Carlo
Ciao Carlo,
ti ringrazio per la risposta. Ero a conoscenza del "Valido se". Il
fatto è che non vorrei visualizzare un messaggio, ma eseguire un
comando, se i valori non corrispondono. E' per questo che avevo pensato
all'evento afterupdate della casella.
Il problema è che non so come impostare il tutto. Ho provato con:
If Me!CasellaTesto <> "Versato" or "Non versato" then
ma non funziona.


 If Me!CasellaTesto <> "Versato" OR  Me!CasellaTesto <> "Non versato"
then
       'FAI QUELLO CHE VUOI
 end if
se questi valori sono ripetuti centinaia di volte nella tua tabella ti
consiglio di utilizzare una casella combinata impostata a:
elenco valori
1;"Versato";2;"Non versato"
colonna associata: 1
n°colonne:2
larghezza colonne: 0;4
solo in elenco: si
sull'evento "non in elenco" scriverai il codice che vorrai.
in questo modo il tuo mdb risparmierà qualche kb


Ciao e grazie dei chiarimenti. C'è qualcosa che non va.
Io ho scritto:
If Me!CasellaTesto <> "Versato" OR  Me!CasellaTesto <> "Non versato"
then
   Me!CasellaTesto = ""
 end if
(Ho provato anche con altri comandi dopo il "then".)
Il risultato è che anche se scrivo nella casella di testo uno dei due
valori che dovrebbero costituire l'eccezione (cioè Versato e Non
versato), il comando dopo il "then" parte comunque.
Dov'è che sbaglio?

 If Me!CasellaTesto <> "Versato" OR  Me!CasellaTesto <> "Non versato"
questa condizione e' "sempre" verificata
  If Me!CasellaTesto <> "Versato" AND Me!CasellaTesto <> "Non versato"
questa forse va meglio
--
ac

 ac
Anche se scrivo AND, continua a comportarsi come con OR. Non capisco...

così funziona!
Select Case Me.CasellaTesto
Case "versato", "non versato"
    MsgBox "ok"
Case Else
    MsgBox "errore"
End Select
robb ha scritto:


 End Select
Confermo.
Select Case Me.CasellaTesto
Case "versato", "non versato"
Case Else
    Me!Testo3 = ""
End Select
funziona!
Grazie mille.

 ha scritto nel messaggio 
news:1151147848.0...@p79g2000cwp.googlegroups.com...

Ciao robb
prova cosě:
su dopo aggiornamento della casella di testo:
If Me.txtbox = "versato" Then
qui metti quello che devi fare
Else
qui metti quello che deve non fare
End If
Daniele


Me!Testo3 = "" in realtà è sempre Me!CasellaTesto = ""
.
Mi sono confuso col copiaincolla.

robb ha scritto:

se ci legge Baraldi ci scomunica dal NG


funziona ma devi prendere in considerazione l'eventuale valore NULL
Sel la tua casella testo ha valore NULL l'espressione risulta
----
If NULL <> "Versato" And NULL <> "Non versato" THEN
......
End IF
-----
riducendo per la logica dei tre valori si ottiene
----
If UNKNOWN And UNKNOWN THEN
......
End IF
----
riducendo ulteriormente
----
If UNKNOWN THEN
......
End IF
----
quindi l'uguaglianza non si verifica mai perchè è impossibile determinare il
valore UNKNOWN
Per risolvere
----
If Nz(Me!CasellaTesto) <> "Versato" And Nz(Me!CasellaTesto) <> "Non versato"
Then
  MsgBox "Valore non valido"
End If
----
o se ti è più semplice
----
If NOT (Nz(Me!CasellaTesto) = "Versato" OR Nz(Me!CasellaTesto)= "Non
versato") Then
  MsgBox "Valore non valido"
End If
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

giorgio rancati wrote:
[CUT]

Hai perfettamente ragione. Infatti con Nz funziona benissimo.
Grazie per la lezione. Sicuramente mi tornerà utile. 
Ciao

 ha scritto nel 
messaggio news:449d5261$0$992$5fc...@news.tiscali.it...

Giorgio, sei un grande!
Peccato per gli adp ma sono sicuro che con tale classe non ti ferma nessuno.
Ciao, Carlo 

 Ciao, Carlo
