Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] combobox strano comportamento

VB6 con sp6
Ho sempre saputo che la proprietą text di una combobox con style impostato a 
2 dropdown list, fosse di sola lettura o almeno mi ha sempre dato questo 
errore "la proprietą Text č in sola lettura".
Ieri č successo un fatto strano.
In una form ho due combo con la stessa impostazione di style a 2, per errore 
ho scritto:
cmbCategoria.text =RS.Fields("Categoria").Value e non mi ha dato errore.
Ho fatto dei controlli cambiando il codice in:
cmbCategoria.text ="Paperino" e mi ha dato errore.
Perchč?
Carmelo 

 cmbCategoria.text ="Paperino" e mi ha dato errore.
Semplicemente perchè RS.Fields("Categoria").Value era un valore compreso
fra gli elementi presenti.
Metti una combo in un progetto vuoto e incola:
Private Sub Form_Load()
    Combo1.AddItem "A"
    Combo1.AddItem "B"
    Combo1.Text = "A"
    Combo1.Text = "B"
    ' qui darà errore
    Combo1.Text = "C"
End Sub

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel 
messaggio news:32xykme3fz7b.s...@40tude.net...

Vero, però se metto
Combo1.AddItem ""
Combo1.AddItem "A"
Combo1.AddItem "B"
ipotizzando che il valore di RS.Fields("Categoria").Value sia null
se scrivo Combo1.Text = RS.Fields("Categoria").Value &"" mi da errore anche 
se il primo item e ""
Carmelo

 se il primo item e ""
OMG
Alberto
-- 
Il tuo stesso identico umore,
ma la divisa di un altro colore


Cosa significa OMG?
Carmelo

 Cosa significa OMG?
Oh My God. Oh Mio Dio.
Da non confondere con il recente Oh Mio Oro :D

Cosa significa OMG?
Forse  "Oh My God"
E' una canzone   :-)))
http://it.wikipedia.org/wiki/Oh_My_God_(Guns_N%27_Roses)
--
ciao
  Stefano

 Carmelo
Significa che un valore NULLO è diverso da un valore VUOTO
anzi uno è un valore DBNull....
il combobox ...il "" come lo rappresenta? Che roba è per lui?Pere
Limoni o Bulloni???

se il primo item e ""
Ho capito cosa intendeva dire.
Secondo lui
Combo1.Text = RS.Fields("Categoria").Value &""
e
Combo1.Text = ""
sono la stessa cosa.
Per cui perchè ha dato errore,
visto che "" è presente nella Combo?
    Combo1.AddItem ""
    Combo1.AddItem "A"
    Combo1.AddItem "B"
    Combo1.AddItem "C"
    Combo1.Text = "" <--- Qui in ogni caso dà errore!
    Combo1.ListIndex = 0 <--- Così invece no!
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it

il combobox ...il "" come lo rappresenta? Che roba è per lui?Pere
Limoni o Bulloni???
che domande. peroni! 

 ha scritto nel messaggio 
news:49ee0eb1$0$713$5fc...@news.tiscali.it...

Era proprio quello che volevo dire. Facendo varie prove mi da sempre errore.
Ma volendo evitare il listindex, perchè dovrei fare una routine e ciclare 
gli item oppure usare sendmessage.
Visto che il valore di RS.Fields("Categoria").Value &"", se null  mi 
restituisce "", il compobox come intepreta ("")
Carmelo 

 restituisce "", il compobox come intepreta ("")
Alla peggio se "" fai un IF che metti listindex=-1 e negli altri casi
*provi* a settare la proprietà TEXT, con gestione errore

 - Mostra testo citato -
MAH!
Chissà se funziona a fare...
cmbCategoria.text =CSTR(RS.Fields("Categoria").Value) + ""
oppure
If  IsNull(RS.Fields("Categoria") Then
cmbCategoria.text =""
end if
oppure
If TypOf RS.Fields("Categoria") Is Dbnull Then
cmbCategoria.text =""
end if
...o altri sistemi che permettano di confrontare TESTO CON TESTO

 ha scritto nel messaggio 
news:43699050-f2a1-4f88...@w40g2000yqd.googlegroups.com...



oppure

oppure


Non funziona, per questo ho chiesto come il combo interpreta l'item =""
Già questo cmbCategoria.text ="" va in errore
Carmelo 

 wrote:
tu stai usando con l'accetta un controllo....cmq
analizzzzzzzzzzzzzzzziamo cosa vorresti fare.....
ho un dropdownlist...e una lista di valori memorizzati....
se io digito qualcosa cerca la corrispondenza.....
e se c'è me la mostra.....
imputare il text anche se readonly è la medesima cosa....
ora
ci son 2 problemi....
1) Non controlli mai cosa scrivi?...e se l'utonto cerca "Rossi Marrio"
invece di "Rossi Mario"?...gli fai vedere un bel errore che pianta
l'applicazione?
2)io non ho MAI usato una drodownlist  con una voce impostata a
Nulla...ho sempre fatto una voce (in genere la prima selezionata di
default) "Sconosciuto" o "Tutti" o "..." o "*" o  quello che vuoi
quindi usalo come vuoi...ma una gestione locale dell'errore che in
caso di errore di input o di valore nullo mi selezioni il primo
elemento la vedrei molto opportuna!
Io l'ho sempre messa!
E' una soluzione per svicolare dal tuo problema?
Si....
non so che valore memorizza un AddItem ""....forse davvero null (ed
allora il rs("campo") & "" non va bene ...e forse andrebbe bene un rs
("Campo") e stop
ma francamente non mi ha mai sfiorato l'idea di fare un additem
""....non vedo proprio il senso! Una voce vuota non ha ragione di
esistere!
P.s.
Per valori che provengono da database...ci sarebbe il DBcombo!

 esistere!
Il senso potrebbe avercelo.
Mettiamo che hai una combo a scelta non obbligatoria. L'utente seleziona
per sbaglio un campo, poi si rende conto che non deve valorizzare niente,
quindi ritorna a selezionare "".
Un po' come nella situazione iniziale quando si trova listindex=-1 per
capirci.
Sempre se ha un senso che es. "" sia diverso da un "sconosciuto" che dici
tu.

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel 
messaggio news:1nv5ltd8w03jt$.kyi9j6apzjhl.dlg@40tude.net...

Infatti il senso č proprio questo. Con combobox style 2, se non imposto un 
listindex, visualizza l'item vuoto quindi listindex=-1.
Nel momento in cui seleziono un item, non posso piů lasciarla vuota, perchč 
non me lo permette. Per questo ho impostato il primo item a "", pensando che
rs("campo").Value & "" il combo lo leggesse e mi impostasse il primo item.
Carmelo 

 - Mostra testo citato -
Il campo vuoto non ha senso...lo ripeto...ed è anche pericoloso!
Io metto sempre la prima voce di default con un valore
convenzionale... "tutti" "nessuna scelta" "oggi" "data odierna" "Tutte
le fatture" "Tutte le bistecche"...quello che vuoi!
Prevedo sempre un valore di default...per non incasinarmi in conteggi
astrusi...o in convalide inutili!
Diventa un semplice
IF txtcombocheleggo="*" THEN
   SELECT *  From Clienti Order By Ragsoc
ELSE
Select * From clienti Where ID= ValoreComboassociato
END IF
....ebbene si...è la sintassi spazzatura di access...ma tanto per
rendere l'idea!

 le fatture" "Tutte le bistecche"...quello che vuoi!
Le combo comunque non si usano solo per filtrare. Pensa ad un inserimento
di dati relativi a delle persone.
Pensiamo ad una qualsiasi risposta di un questionario Opzionale.
Che poi si possa inserire una risposta "-" per non selezionare non cambia
molto rispetto a "", ma potrebbe essere preferibile a volte, soprattutto
per scrivere codice.
Un cliente inserisce un articolo tramite delle combo che ne identificano la
composizione. Vuole che di default ci sia la combinazione standard, dove
poi viene variata. Bene a quel punto se una composizione non deve esistere
gli do la possibilit� di tornare ad "".
Che poi lui internamente si � codificato una composizione "Null", ma questa
� una scelta sua.