Julipet ha scritto:
Ciao,
ho un db access che utilizza una tabella collegata con ODBC. La tabella deve essere modificata tramite una form. Vorrei convertire in maiuscolo i valori digitati nei vari campi testo, per cui ho usato nelle relative caselle di testo il comando =UCase([nometabella]![nomecampo]) nell'evento Su uscita
quando esco dal campo ricevo questo messaggio
" L'espressione Su uscita immessa come impostazione della proprietà di evento ha generato l'errore seguente: L'oggetto non contiene l'oggetto di automazione 'nometabella' "
Non capisco come risolvere, sembra una cosa semplice da fare eppure....
Quello ce hai scritto è insensato... stai lavorando in Maschera e fai riferimento alla Tabella a livello concettuale, perchè la sintassi è in ogni caso sbagliata aprescindere...!
Eventualmente nella TextBox su Evento USCITA devi modificare così
Me!NomeTuaTexBox=UCase(Me!NomeTuaTexBox)
Personalmente però, ti suggerisco di non usare questa strada che si genera ad OGNI santa volta che si genera l'EXIT... cosa assai inutile...
Puoi gestire invece l'evento KEYPRESS e condizionare il carattere premuto affinchè sia sempre MAIUSCOLO.
Come sai o dovresti sapere, il codice ASCII dei caratteri di tastiera è un Numero:
65-90(Maiuscole)
97-122(Minuscole)
Quindi quando il tuo Numero è compreso tra 97-122 non fai altro che sottrarre 32... mi pare banale.
Questo ti darà il vantaggio che vedrai il risultato direttamente mentre DIGITI, estremamente più professionale, e non si genera se non serve.
Private Sub Testo1_KeyPress(KeyAscii As Integer)
KeyAscii = CkDgtUcase(KeyAscii)
End Sub
La funzione [CkDgtUcase] la metti in un Modulo in modo da poterla richiamare per tutte le Form che vuoi e per ogni specifico controllo lo richieda...
Public Function CkDgtUcase(KeyAscii As Integer) As Integer
'=========================================
'Verifica se il TASTO PREMUTO è una lettera Minuscola e la Forza Maiuscola
'Va inserita nell'EVENTO KEY_PRESS
'65-90(Maiuscole) 97-122(Minuscole)
'=========================================
CkDgtUcase= KeyAscii
If (KeyAscii >= 97 And KeyAscii <= 122) Then CkDgtUcase= KeyAscii - 32
End Function