Newsgroup: it.comp.appl.access
Titolo: Avvisare l'utente che ha attivato il maiuscolo o pigia lo shift

Ciao a tutti volevo sapere se era possibile durantel'inserimento di
dati in una textbox avvisare che il maiuscolo "lucchetto" e' attivato
o che si sta' pigiando lo Shift.
Grazie
Dino


Ciao Dino,
Private Sub Nome_KeyPress(KeyAscii As Integer)' su pressione della
casella di testo
If KeyAscii = Asc(UCase(Chr(KeyAscii))) Then
MsgBox "Non puoi inserire la lettera maiuscola!"
DoCmd.CancelEvent
Exit Sub
End If
End Sub
Ciao Vladimiro.


Prima che me lo chiedi, voglio anticipare la risposta :-)
Sempre su pressione della casella di testo:
If KeyAscii = Asc(UCase(Chr(KeyAscii))) Then
If MsgBox("Stai inserendo una lettera maiuscola, continuare?",
vbQuestion + vbCritical + vbYesNo, "Attenzione") = vbNo Then
DoCmd.CancelEvent
Exit Sub
End If
End If
Ciao Vladimiro.

 - Mostra testo citato -
Grazie Vladimiro per la risposta e grazie "per la fiducia che riponi
in me"Visto il primo post nel secondo potevo arrivarci dove inserire
il codice ma ...tu dici "non si sa mai"
Scherzi a parte il codice inserito "su pressione" della casella di
testo da un problema. Es: L'utente non pigia il lucchetto,scrive
normalmente e poi pigia sulla barra spaziatrice.Ovviamente esce la
segnalazione del codice.Cos' pero' non va bene.Il codice dovrebbe
intervenire solo se l'utente pigia il tasto "lucchetto".E' possibile???
Se no che soluzione dai???
grazie ancora per disponibilita' e FIDUCIA......
Dino

 - Mostra testo citato -
Vladimiro sono sempre io....porta pazienza.Mi e' venuta un idea.
Sull'evento dopo aggiornamento della casella di testo io creo un
istruzione If che verifica se il testo e' tutto
maiuscolo;e se la condizione e' True da una segnalazione Msgbox e
cancella l'inserimento,altrimenti prosegue con solo con la scrittura
della prima lettera maiuscola.
Di seguito ti posto il codice che ho inserito io e che (gentilmente)
dovresti sistemare:
Private Sub Cliente_AfterUpdate()
If Me.Cliente = Format(Cliente, ">") Then
MsgBox "IMPOSSIBILE SCRIVERE TUTTO IN MAIUSCOLO.DISABILITARE IL TASTO
LUCCHETTO O NON PIGIARE LO SHIFT"
Cancel = True
Me.Undo
Cancel = True
End If
Cliente = Format(Mid(Cliente, 1, 1), ">") & Mid(Cliente, 2, Len
(Cliente) - 1)
Grazie
Dino

 ha scritto nel messaggio 
news:20c9141a-9e8a-4081...@j14g2000yqm.googlegroups.com...

Ma tu vuoi che si atutto minuscolo?
se s� dopo l'aggiornameto del controllo forza il minuscolo

 - Mostra testo citato -
No la prima lettera della prima parola deve essere sempre
maiuscola.Infatti vedrai la riga di codice dove porta a maisc.solo la
prima
Grazie
Dino

 - Mostra testo citato -
No la prima lettera della prima parola deve essere sempre
maiuscola.Infatti vedrai la riga di codice dove porta a maisc.solo la
prima
Grazie
Dino
Ok alor arimango della mia idea
Private sub TuoControllo_AfteareUpdate()
me.tuocontrollo = Ucase(left(me.tuocontrollo, 1)) & 
lacse(right(me.tucontrollo, len(me.tuocontrollo)-1))
End Sub

 - Mostra testo citato -
Ciao e grazie per la risposta.Funziona ,pero' se l'utente deve
scrivere ad esempio "Zincatura Pippo di Pippo e Pluto" con il tuo
codice verrebbe tutto minuscolo tranne la prima lettera.Io invece
voglio solo la prima maiuscola,se l'utente abilita il (lucchetto) ci
deve esserela segnalazione se invece volutamente fa l'iniziale della
seconda parola maiuscola deve rimanere.Ecco perche' ti avevo postato
il codice che mi devi solo sistemare.Questo codice (aggiustato da te)
fa quello che dico.Te lo riporto:


 > se s� dopo l'aggiornameto del controllo forza il minuscolo- Nascondi 




Grazie
Dino
Risposta:
Se tu vuoi tutte le prime parole maiuscole
me.tuoControllo = strconv(me.tuocontrollo,3)

 - Mostra testo citato -
Ciao.Io voglio le prime parole solo se vengono scritte.Cerco di
spiegsrmi meglio..Esempio 1:
l'utente scrive di suo pugno "Azienda Tessile Rossi".Come vedi la
prima lettera e' assodato che sia sempre maiuscola.Le altre invece
sono solo maiuscole se vengono scritte dall'utente se no devono
rimanere minuscole.
Nell' esempio 2 l'utente scrive "azienda tessile rossi" e il risultato
deve essere "Azienda tessile rossi".Come vedi se non vengono scritte
le altre lettere maiuscole riamngono minuscole.
In sostanza io voglio sempre la prima lettera maiuscola.Le iniziali
delle altre parole se sono maiuscole devono riamnere 
tali.se
 invece
sono scritte minuscole tanto meglio.
Dino

 - Mostra testo citato -
Ciao Dino, come presupponevo stai cercando con due post di risolvere
il problema (bastava solo un post, non credi?)
Comunque sono dell'idea che la soluzione migliore per te sia quella
che ti ho suggerito in questo post, magari con qualche ritocco.
Allora:
scrivendo con carattere minuscolo nella casella di testo (non vale per
i records già scritti) tutto prosegue tranquillamente, anche inserendo
gli eventuali spazi tra una parola e l'altra (codice che ho aggiunto);
nel momento in cui cominci a scrivere in maiuscolo (sia se attivi il
tasto "MAIUSC" o il LUCCHETTO come lo chiami tu) devi dare
l'autorizzazione se lasciare la lettera maiuscola o no.
Sempre su pressione delle caella di testo inserisci:
If KeyAscii = Asc(" ") Then
Exit Sub
End If



Ciao Vladi...(mi permetto ormai di chiamarti così).Allora prima di
tutto devo iniziare il mio post con i
doverosi ringraziamenti (non di rito) per la tua pazienza e
disponibilita'.Per quanto riguarda i "due post" a dir la verita' se
noti questo riguardava l'avviso dello shift e del "lucchetto" (o caps
lock come lo chiami tu) e' un'idea che mi e' venuta l'altra
sera.Ovviamente mi sembrava piu' corretto aprire un secondo post.Mi
sembrava corretto avvisare anche gli "Accessauti" dell' altro post di
questa idea,lungi da me l'idea di non rispettare le regole del NG.
Beh dopo tutta questa "prefazione" io passerei alle cose serie.SEnza
essere melenso io ribadisco i miei ringraziamenti.Abbiamo (cioe' hai)
risolto il problema.Mi sono permesso di fare un'aggiunta.
il tuo codice sul Keypress e' PERFETTO. Io poi sull'evento dopo
aggiornamento sono andato ad inserire il codice che mi permette di
scrivere la prima iniziale della prima parola sempre in maiusc.
Prima di congedarmi (alla prossima esigenza) ti vorrei chiedere ancora
una cosa:
Dal codice che mi hai postato se volessi togliere la verifica dello
shift o Maiusc(come lo chiami tu) come dovrei fare??Lasciando
ovviamente la verifica sul caps lock.
Grazie ancora Dino

 - Mostra testo citato -
Ciao Vladi...(mi permetto ormai di chiamarti cos�).Allora prima di
tutto devo iniziare il mio post con i
doverosi ringraziamenti (non di rito) per la tua pazienza e
disponibilita'.Per quanto riguarda i "due post" a dir la verita' se
noti questo riguardava l'avviso dello shift e del "lucchetto" (o caps
lock come lo chiami tu) e' un'idea che mi e' venuta l'altra
sera.Ovviamente mi sembrava piu' corretto aprire un secondo post.Mi
sembrava corretto avvisare anche gli "Accessauti" dell' altro post di
questa idea,lungi da me l'idea di non rispettare le regole del NG.
Beh dopo tutta questa "prefazione" io passerei alle cose serie.SEnza
essere melenso io ribadisco i miei ringraziamenti.Abbiamo (cioe' hai)
risolto il problema.Mi sono permesso di fare un'aggiunta.
il tuo codice sul Keypress e' PERFETTO. Io poi sull'evento dopo
aggiornamento sono andato ad inserire il codice che mi permette di
scrivere la prima iniziale della prima parola sempre in maiusc.
Prima di congedarmi (alla prossima esigenza) ti vorrei chiedere ancora
una cosa:
Dal codice che mi hai postato se volessi togliere la verifica dello
shift o Maiusc(come lo chiami tu) come dovrei fare??Lasciando
ovviamente la verifica sul caps lock.
Grazie ancora Dino
Risposta
Io rimango della mia idea
Avrei controllato con strcomp le stringe e se sono in un caso faccio una 
cosa se sono in un altro no 

 - Mostra testo citato -
Ciao Dino,
premesso che la suddetta routine non intercetta il tasto premuto ma
solo la lettera maiuscola; per intercettare i componenti della
tastiera si usa il metodo KeyDown o KeyUp (Tasto su o tasto giù) e non
il KeyPress (come da routine suggerita); ad esempio per intercettare
il tasto non stampabile MAIUSC ( il tasto CAPS LOCK non lo so) :
Private Sub Cliente_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 Then
MsgBox "Hai premuto il tasto MAIUSC"
End If
End Sub
mi spieghi a che ti serve inibire il CAPS LOCK dal momento che chi sta
scrivendo in maiuscolo verrebbe subito bloccato?
Poi, se posso rispondere a Massimiliano, con il sostegno di
Geppo :-) , non credo esista in vb la possibilità di identificare un
nome proprio (prima lettera maiuscola) da un nome comune (prima
lettera minuscola).
Ciao Vladimiro.


Ciao e grazie come sempre.
L'utente non deve scrivere assolutamente in maiuscolo.L'utente scrive
nei campi testo e in automatico viene scritta l'iniziale in
maiuscola.Se poi e' conscio con lo Shift scrive le iniziali maiuscole
delle altre parole.
Non mi deve succedere che riempiano un form tutto maiuscolo.Siccome il
caps lock puo' essere attivato e l'utente puo' non saperlo,con la tua
routina risolvo il problema.
Grazie ancora e alla prossima
Dino

 - Mostra testo citato -
vladi.....sono sempre io.non ho trovato informazioni
sull'intercettamento del CAPS LOCK.Se riesci tu fammi sapere.
Dino

 Dino
P.S.:ripeto se ci metti un po' d'impegno, con la funzione di A.C. ti eviti 
tutto Ambaradam
-- 
Ciao
Geppo 


Ciao Geppo e grazie per la risposta.Volevo precisare che non ho
"snobbato"  il codice di Ale,quasi sicuramente non sono stato in grado
di applicarlo.non e' mancanza di impegno e' come sempre problemi di
tempo.La soluzione trovata(non da me ma con l'aiuto del NG) non mi
sembra così malvagia,sono poche righe di codice.
torniamo a noi.Ho provato il tuo consiglio ma non funziona.Sicuramente
ho sbagliato qualcosa.Adesso ti indico di pati passo cosa ho fatto.Ho
aperto il fomr in esame.All'interno del form ad inizio modulo ho
inserito quanto mi hai detto
Option Compare Database
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As
Long)
Function StatoCapsLock() As Boolean
StatoCapsLock = GetKeyState(vbKeyCapital)
End Function
L'istruzione If l'ho inserita sull'evento "dopo aggiornamento"del
campo in questione .Il risultato e' questa segnalazione di errore:
"convenzione di chiamata DDL non valida".
A dir la verita il blocco If che mi hai suggerito non l'ho
compreso.Attenzione non tanto per attivo o non attivo.Ma dalla
funzione che mi hai fatto inserire
il codice come riesce ad intercettare lo stato attivo o non attivo.E
ancora come devo inserire questa condizione nell'istruzione If??
Grazie in anticipo e voglio sottolineare che non ho nessun problema ad
affermare le mie difficolta' con il codice.Da questo NG ho gia'
imparato molto da chi ha piu' esperienza di me (come te) e ancora
imparero'.
Dino

 - Mostra testo citato -
Sono sempre io.non e' possibile intercettare il CAPS LOCK  inserendolo
in questo codice (che mi ha suggerito Vladimiro) e con lo shift
funziona benissimo??? e semplicemente??'
Private Sub Cliente_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 Then
MsgBox "Hai premuto il tasto MAIUSC"
End If
End Sub
Grazie e ...Porta pazienza....
Dino

 Dino
-- 
Ciao
Geppo 

 Dino
-- 
Ciao
Geppo 



On 22 Gen, 13:42, "Geppo" <c...@tin.it.invalid> wrote:

Ti ringrazio ma no ho ancora provato.Volevo sol oprecisare che As
intager non l'ho dimenticato.Nell'inserirlo mi dava lo stesso errore.
Poi e' un po' che bazzico sul nostro NG...ma il copia e incolla gia'
lo conoscevo.Tu stesso in un lontano post mi avevi sottolineato di no
copiare e basta ma di capire.
In realta' volevo entrare piu' nel dettaglio del codice che mi hai
scritto.Lo sai anche te di quante mosse ."se dovemo da' durante el
giorno".....
torniamo alle cose serie.Riprovo e poi ti riposto il risultato.tieni
d'occhio il post.
Dino
NB:Il prossimo post mi insegni il "taglia/incolla"(UUmmmm battutaccia)

 NB:Il prossimo post mi insegni il "taglia/incolla"(UUmmmm battutaccia)
.....e no, questo proprio no, lo voglio tenere solo per me. :-)
-- 
Ciao
Geppo 


Eccomi abbiamo fatto (anzi hai fatto)"bingoooo".
"Ca......................volo"sai dove sbagliavo????Ancora quel
"Ca.....spita" di As intager l'avevo copiato in seconda riga
eppure il VBA me lo diceva.
"Me sa che il Folle non e' Geppo" ma il sottoscritto.Incredibile!!!!
Prima di salutarti e spararti una raffica di ringraziamenti !!!!!!
avrei bisogno ancora di te.
Vorrei inserire nell'evento "dopo aggiornamento" del campo "Codice
Fiscale" una routine che mi controlli e verifichi il codice fiscale
dando segnalazione che e' errato.
in questo campo io inserisco sia il CF di ditte individuali (persone
fisiche) che di aziende quindi ho dei CF con alfanumerici e numerici.
"A Geppo.....Me faresti un grosso favore"
aspettando tue notizie devo solo ringraziarti per la tua "Gr......ossa
disponibilita'
Dino

On 22 Gen, 19:18, "Geppo" <c...@tin.it.invalid> wrote:

Eccomi qua.Abbiamo fatto (anzi hai fatto)bingoooo.Incredibile l'errore
era proprio quel As Intager, l'avevo scritto non sulla stessa riga ma
nella seconda.
E "che ce voi faaaaa. Me sa che il Folle non e' Geppo ma il
sottoscritto".
Comunque prima di congedarmi da te con una vagonata di (doverosi)
ringraziamenti avrei bisogno gentilmente ancora di te.
Vorrei nel evento dopo aggiornamento del campo Codice fiscale inserie
una routine che verifichi l'esattezza dei dati inseriti avvertendomi
se non sono corretti.
I dati che inserisco in quel campo possono essere alfaniìumerici (CF
di persone) o numerici (CF di aziende).
Che dire adesso in attesa di una tua gentile risposta in merito
"Te.....possso solo a RINGRAZIAAAAA"
Dino

On 22 Gen, 19:18, "Geppo" <c...@tin.it.invalid> wrote:

Eccomi qua.Abbiamo fatto (anzi hai fatto)bingoooo.Incredibile l'errore





On 22 Gen, 19:18, "Geppo" <c...@tin.it.invalid> wrote:

scusa ma devo avere il click facile stamattina.Troverai un doppione o
piu' di post di ringrziamento.Bahhh
Dino

 Dino
-- 
Ciao
Geppo