Newsgroup: it.comp.lang.visual-basic
Titolo: Combobox a 2 campi

Buongiorno a tutti!
	Forse la mia domanda e' stupida.... ma piu' che altro non
riesco a capire se e' senza risposta oppure se esiste e non sono in
grado di implementarla!
Ho un recordset di clienti
In una combobox, attraverso un ciclo, inserisco tutte le ragioni
sociali dei clienti
Dopo di che, devo fare in modo che quando viene scelta una ragione
sociale, sia accessibile il codice cliente.
Per far questo, attualmente faccio un query sul controllo recordset.
Mi chiedevo se fosse possibile inserire in una combobox sia ragione
sociale che codice (volendo il codice puo' essere anche nascosto) in
due colonne distinte!
Per ora l'unica soluzione e' qualcosa del tipo
with recTemp
	cmbCliente.Add  .Fields("RagioneSociale") & "      |       " &
.Fields("CodCliente")
end with
e poi vado a cercare il codice nella seconda parte!
Non esiste qualcosa di piu' elegante?
Grazie mille, spero di essere stato chiaro!
Fabio C.

 Non esiste qualcosa di piu' elegante?
    Se il codice (l'ID) e' numerico (Long) consulta la guida a proposito di
"ItemData".
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------


Mi spiace ma l'ID non e' numerico, e' una stringa.....
Qualche altra idea da suggerire?

 Non esiste qualcosa di piu' elegante?
Se per "elegante" intendi "non mostrare" l'artificiosa aggiunta del codice
in coda, potresti accodare (prima del codice) più spazi, in modo che lo
stesso, di fatto, "esca" dal combo e risulti non visibile.
Per "surrogare" quanto ti ha già suggerito Maurizio (inapplicabile se il
codice non è numerico) potresti creare un vettore in memoria con tanti
elementi quanti ne ha il combo (occhio all'ordinamento) e far corrispondere
ogni elemento (listindex) del combo al corrispondente elemento del vettore
che contiene il codice relativo



L'idea del vettore non sembra male! L'unico difetto che mi viene in
mente e' la caduta di performance! Alla fine si tratterebbe di un
vettore doppio (codice) di circa 2000 elementi! 
Personalmente non ho mai capito il rapporto tra prestazioni di una
query e l'utilizzo di vettori/matrici. Secondo voi in questo caso ne
varrebbe la pena?

Secondo voi in questo caso ne varrebbe la pena?
Se non hai alternative (ovvero se vuoi usare un combo) ... ne vale per forza
la pena.
Potresti perň considerare un combo "bounded", cioč collegato ai dati
restituiti dalla tua query.
Io non ne ho mai usati, non ne so molto ... ma ho la sensazione (tenendo
conto di tutto) che in quanto a prestazioni e memoria occupata, faccia
"tilt" un po' prima di tutte le altre solzioni.

Grazie mille! 
Provero' con i vettori!
Byez

 ha scritto

a parte le dritte di maurizio e lupo,
http://www.it-lang-vb.net/
cerca "combo" | binari
pero' e' un ocx in piu'.
--
ciao, j.
www.sundaysw.com

 ha scritto nel messaggio
news:3d15fe16...@news.fastwebnet.it...


 Pippo Verde [PVERDE2]
Ma hai letto il post iniziale?

la soluzione sarebbe quella suggerita da rObyOne, ma se proprio vuoi
utilizzare una combo semplice, allora ti conviene visualizzare i nomi dei
clienti con "Nome Cognome [Codice]", in questo modo:
Pippo Rosso [PROSSO]
Pippo Verde [PVERDE1]
Pippo Verde [PVERDE2]
poi con una funzione apposita estrai il codice dalla proprieta .Text della
Combo. Potrebbe tornarti utile anche nel caso in cui il cliente abbia in
archivio più record con la stessa denominazione (es: nel mio paese ci sono
troppi Antonio Caputo)! ;)
saluti,


Alla fine ho seguito il primo consiglio, che probabilmente e' il piu'
veloce! Ho aggiunto un campo ID (long) e in base a quello ricorro a
ItemData!
Grazie mille dell'aiuto!
HjFabius

Mi sembra sia più giusto! PotresTi sempre lasciare all'utente la possibilità
di inserire un codice alfanumerico, ma utilizzare comunque un campo ID long
come chiave primaria.
saluti,


come chiave primaria.
E' quello che ho fatto!   ;-P
Grazie mille!

http://members.fortunecity.it/srn/visualbasic/bicombo/bicombo.htm
C'è un ocx che implementa proprio ciò che vuoi tu.
;o)
Ciao,
Antonio
--
"I grandi spiriti hanno sempre incontrato violenta
opposizione da parte delle menti mediocri."
A.Einstein