PDA

View Full Version : VBA e remapping codici ASCII


R1((ky
02-03-2005, 18:18
Salve a tutti, in un'applicazione di Access che sto scrivendo, ho necessità di inserire in alcuni database delle stringhe di testo piuttosto ampie, che ahimè spesso e volentieri contengono anche degli apostrofi.

Ora non so se vi è mai capitato, se inserite stringhe contenenti apostrofi, VBA interpreta il simbolo come fine riga, e mi manda in vacca tutte le query e cosucce varie...


Ora quello che vorrei fare è una cosetta del genere: all'evento "su tasto giù" inserire una funzione (e forse già ce ne sono belle pronte) che mi intercetti il KeyCode del tasto apostrofo(in questo caso il 39) e me lo cambi in "96", quello del simbolo apostrofo rovesciato, ugualmente comprensibile per l'utente, ma innocuo per il codice.

Come potrei impostare la routine?


Grazie

Brigante
02-03-2005, 18:48
Nel codice devi far riferimento alla TextBox interessata e scrivere:

Private Sub TextBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 39 Then KeyAscii = 96
End Sub

...Tutto qua!

P.S.: Comunque se nella stringa inserisci gli apostrofi doppi, per esempio: "....all'Ufficio..." lo fai diventare "...all''Ufficio", l'SQL lo accetterà tranquillamente e memorizzerà nel campo un solo apostrofo.

R1((ky
02-03-2005, 18:51
Originariamente inviato da Brigante
Nel codice devi far riferimento alla TextBox interessata e scrivere:

Private Sub TextBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 39 Then KeyAscii = 96
End Sub

...Tutto qua!

P.S.: Comunque se nella stringa inserisci gli apostrofi doppi, per esempio: "....all'Ufficio..." lo fai diventare "...all''Ufficio", l'SQL lo accetterà tranquillamente e memorizzerà nel campo un solo apostrofo.


Ti giuro che mi pareva di averla fatta uguale ma non andava... :D

Adesso riprovo e poi ti dico :D

Grazie cmq ;)

R1((ky
02-03-2005, 18:57
Originariamente inviato da Brigante
Nel codice devi far riferimento alla TextBox interessata e scrivere:

Private Sub TextBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 39 Then KeyAscii = 96
End Sub

...Tutto qua!

P.S.: Comunque se nella stringa inserisci gli apostrofi doppi, per esempio: "....all'Ufficio..." lo fai diventare "...all''Ufficio", l'SQL lo accetterà tranquillamente e memorizzerà nel campo un solo apostrofo.


Infatti era proprio uguale, ma nella Sub KeyDown (KeyCode As Integer)

Adesso va alla grande, grazie mille!