Newsgroup: it.comp.lang.visual-basic
Titolo: Iniziali maiuscole sql

 Select ID, Descrizione
Come faccio ad avere Descrizione con le iniziali maiuscole. Ucase e Lcase
vanno bene, ma Strconv non lo digerisce :(
il db è access
-- 
Greg

 wrote in news:ed1lvm$l5f$
1...@area.cu.mi.it
:

shift (il tasto maiusc) prima di digitare e il gioco è fatto...
o forse hai tralasciato qualche dettaglio?
-- 
---
paoloopg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
---

greg ha scritto:

JET, il modulo di gestione database standard di Access, strutturalmente
non distingue le maiuscole dalle minuscole, cioè, non è
"case-sensitive".
Puoi usare la funzione StrComp() di VBA per distinguere le maiuscole
dalle minuscole.
Supponiamo che vuoi confrontare il CampoX con un criterio "abc". Nel
set dei risultati vuoi soltanto i record con questo testo in minuscolo,
non "ABC","aBc","Abc" etc. Per realizzare ciò, crea un nuovo campo di
una query con la seguente espressione:
StrComp([CampoX];"abc";0)
Lo 0 (zero) alla fine (parametro [,compare]), fornisce il confronto
binario necessario. Solo se lo "spelling" dei valori confrontati è
esattamente identico, StrComp() restituisce uno 0. (vedi <F1> Help per
"StrComp"). In questa maniera puoi filtrare le risposte, utilizzando
come criterio del campo: 0
Vedi: 
http://support.microsoft.com/?kbid=209674
Con una tecnica simile puoi anche distinguere le maiuscole dalle
minuscole in campi collegati di un collegamento (una relazione). Devi
solo utilizzare un campo addizionale assieme al confronto binario della
funzione StrComp per i campi collegati. In SQL ciò assomiglia a:
SELECT *
FROM Tabella1 INNER JOIN Tabella2 ON Tabella1.CampoX = Tabella2.CampoX
WHERE StrComp(Tabella1.CampoX, Tabella2.CampoX, 0) = 0
Vedi: 
http://support.microsoft.com/?kbid=244693
@Alex

 č "case-sensitive".
No, no, scusa Alex.... devo essermi spiegato male.
Io ho un campo testo di 50 caratteri, tutti maiuscoli o minuscoli non
importa.
Io voglio che quando faccio la query, l'output di quel campo li sia tutto
minuscolo e le iniziali di ogni parola maiuscole.
Esempio:
CampoDescrizione nella tabella
TAVOLO TONDO CON FRIGO BAR
L'outup della query deve essere:
Tavolo Tondo Con Frigo Bar
Una cosa tipo Strconv(Campo, VbProperCase)
ciao
-- 
Greg

 o forse hai tralasciato qualche dettaglio?
 Non ho capito cosa dovrei fare :(
-- 
Greg

 Una cosa tipo Strconv(Campo, VbProperCase)
Se la stringa è corta puoi anche usare questo metodo che non è 
pulitissimo, ma funziona:
- Metti la stringa in un array di string (tramite split())
- Cicli l'array e metti solo il primo carattere in maiuscolo
- Crei una nuova stringa dall'array
Io per formattare dei campi testo ho fatto così, ma sono campi di 
anagrafica, quindi di natura breve. Ho messo tutto il codice nell'evento 
Validate della textBox ed ho risolto così.
Ciao, Morrie

 Greg
Scusa Greg, ma non ho capito il problema....!
Ho fatto questo test:
Tabella(Prova) con 1 campo di tipo testo con 2 Records
1° Record : "la vita è bella"
2° Record : "NIENTE DI NUOVO"
Applico questa Query:
SELECT DESC, StrConv([DESC],3) AS Capitalizze
FROM Prova;
Risultato:
1° Record : "la vita è bella"            "La Vita È Bella"
2° Record : "NIENTE DI NUOVO"   "Niente Di Nuovo"
ora cosa c'è di diverso da quello che hai chiesto che ti ha fatto
porre la domanda
sempre che questa volta io abbia capito...?
@Alex


Spero che tu nell'uso della funzione StrConv non avessi voluto usare le
costanti Enumerate
come vbProperCase....!!
In questi casi l'interprete JET non può riconoscere la costante
enumerata
Enum VbStrConv Membro di VBA\VB, stiamo parlando di JET....
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Saluti
@Alex

 come vbProperCase....!!
Speranza mal riposta :( era proprio questo il problema, invece di passare il
numero, pasavo il nome della costante, che ovviamente il jet non conosce.
Che scemo!
Ciao, grazie, e scusa per la rottura :)
-- 
Greg