Newsgroup: it.comp.appl.access
Titolo: Macro che condiziona maiuscole

Ho recuperato un vecchio file di access che avevo nel PC perchè mi
ricordavo che avevo una macro per condizionare a miaiuscole tutte le
lettere di una casella di testo in una maschera.
La macro è cosi composta:
Azione : ImpostaValore
Elemento : [screen].[ActiveControl]
Esperessione : [StrConv(Screen.ActiveControl,vbUpperCase)]
Io mi ricordo funzionamva ma ora non riesco più.
Se nell maschera nelle proprietà della casella che voglio trasformare
in maiuscolo richiamo questa macro, per qualsiavi evento (Prima di
aggiornare - Dopo Aggiornamento - Su pressione) mi da come errore
"Loggetto non contiene loggetto di automazione
[StrConv(Screen.ActiveControl,vbUpperCase)]"
Grazie a chi saprà aiutarmi.

iz2lnf ha scritto:






Non puoi usare l'argomento "vbUpperCase" in una macro, ma sostituirlo con
il valore, inoltre devi utilizzare le parentesi quadre ed il ";".
Ti diventa:
Espressione: StrConv([Screen].[ActiveControl];1)
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie!
Con le tue indicazioni ho già fatto un passo avanti e anche così mi
andrebbe bene.
Con la tua soluzione la macro funziona se la metto nell'evento "Dopo
Aggiornamento".
In questo modo nel campo posso scrivere minuscolo e come mi sposto
diventa maiuscolo. Ripeto anche cosi andrebbe bene.
Però se ricordo bene la vecchia macro la mettevo nell'evento "Su
modifica" e trasformava in maiuscolo mentre si digitava. Sai come
fare?
Perchè se metto la macro nell'evento "Su modifica" mi da questo
errore: Il campo " ddd.XXX" non può contenere un valore Null in quanto
la proprietà Required per questo campo è impostata a True. Immettere
un valore nel campo.
Grazie.


Grazie!
Con le tue indicazioni ho già fatto un passo avanti e anche così mi
andrebbe bene.
Con la tua soluzione la macro funziona se la metto nell'evento "Dopo
Aggiornamento".
In questo modo nel campo posso scrivere minuscolo e come mi sposto
diventa maiuscolo. Ripeto anche cosi andrebbe bene.
su aggiornamento scrivi casella = ucase(casella)

 Grazie.
Usa l'evento KeyPress:
Private Sub Tuacasella_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
       Case 97 To 122, 224 To 253: KeyAscii = KeyAscii - 32
    End Select
End Sub 


Ringrazio tutti per i suggerimenti.
Ma se non sbaglio i metodi proposti prevedano che io passo una ad una
le caselle dove il testo deve essere maiuscolo ed inserire il codice
che mi avete indicato.
Invece se uso una macro posso selezionare in una volta sola tutte le
caselle e inciare che macro eseguire.
Spero d'essermi spiegato.
Grazie

 ha scritto nel messaggio 
news:c9a50321-3a6d-469f...@e13g2000vbo.googlegroups.com...

se tutte le caselle sono nominate che so? iniziando per txt_
fai un bel ciclo sui controlli e
for each ctl in me.controls
  if 
ctl.name
 like "txt_*" then
    ctl = ucase(ctl)
  end if
next
Antonio 

"Antonio Biso"  ha scritto nel messaggio 
news:iqbd1e$27u$1...@speranza.aioe.org...



Antonio
----------
io sull'evento KeyPress uso
Dim strCarattere As String
    strCarattere = Chr(KeyAscii)
    KeyAscii = Asc(UCase(strCarattere))
e tutto va in maiuscolo
chiaro per i nuovi inserimenti
ciao