PDA

View Full Version : [VB6] Combo da tabella a due colonne


OrcaAssassina
24-08-2005, 09:40
Fino a d'ora ho creato combo entraendo un solo dato dalla tabella
Quindi, ad esempio, avevo una tabella SERVIZIO, estrevo tutti i record del campo CODSERVIZIO.
Utilizzando la combo presente nel FORM2 dei componenti è possibile creare una combo a più colonne.

Usando il metodo di inserimento dei dati via codice si ha questa sintassi:

CodServizio.Clear

CodServizio.ColumnCount = 2
CodServizio.ListWidth = "6,7 cm"
CodServizio.ColumnWidths = "0,7 cm;6 cm"

CodServizio.AddItem "."
CodServizio.AddItem "C"
CodServizio.AddItem "G"
CodServizio.AddItem "T"
CodServizio.AddItem "F"
CodServizio.List(0, 1) = ""
CodServizio.List(1, 1) = "Cane"
CodServizio.List(2, 1) = "Gatto"
CodServizio.List(3, 1) = "Topo"
CodServizio.List(4, 1) = "Formica"

Questo mi visualizza una colonna con le lettere e affianco la descrizione come si vede nell'esempio.

Ora tale cosa la voglio fare prelevando i dati da una tabella
Tabella: SERVIZIO
Campo1: CodServizio
Campo2: DescrServizio

HO fatto il mio primo passo, ossia elencare i record del campo1 (CodServizio)


rsRecordSet6.MoveFirst
Do While Not rsRecordSet6.EOF
Me.Servizio.AddItem rsRecordSet6!CodServizio
rsRecordSet6.MoveNext
Loop
'chiude il recordset
rsRecordSet6.Close


E fino a qui tutto funziona....ora devo aggiungere la seconda colonna, ossia la colonna DescrServizio

Come posso fare

Ciao e grazieeeeee

pequeno
24-08-2005, 11:58
Fino a d'ora ho creato combo entraendo un solo dato dalla tabella
Quindi, ad esempio, avevo una tabella SERVIZIO, estrevo tutti i record del campo CODSERVIZIO.
Utilizzando la combo presente nel FORM2 dei componenti è possibile creare una combo a più colonne.

Usando il metodo di inserimento dei dati via codice si ha questa sintassi:

CodServizio.Clear

CodServizio.ColumnCount = 2
CodServizio.ListWidth = "6,7 cm"
CodServizio.ColumnWidths = "0,7 cm;6 cm"

CodServizio.AddItem "."
CodServizio.AddItem "C"
CodServizio.AddItem "G"
CodServizio.AddItem "T"
CodServizio.AddItem "F"
CodServizio.List(0, 1) = ""
CodServizio.List(1, 1) = "Cane"
CodServizio.List(2, 1) = "Gatto"
CodServizio.List(3, 1) = "Topo"
CodServizio.List(4, 1) = "Formica"

Questo mi visualizza una colonna con le lettere e affianco la descrizione come si vede nell'esempio.

Ora tale cosa la voglio fare prelevando i dati da una tabella
Tabella: SERVIZIO
Campo1: CodServizio
Campo2: DescrServizio

HO fatto il mio primo passo, ossia elencare i record del campo1 (CodServizio)


rsRecordSet6.MoveFirst
Do While Not rsRecordSet6.EOF
Me.Servizio.AddItem rsRecordSet6!CodServizio
rsRecordSet6.MoveNext
Loop
'chiude il recordset
rsRecordSet6.Close


E fino a qui tutto funziona....ora devo aggiungere la seconda colonna, ossia la colonna DescrServizio

Come posso fare

Ciao e grazieeeeee



Ciao,
allora con dei semplici valori testuali puoi fare in questo modo...

Combo.Clear

Combo.ColumnCount = 2
Combo.ListWidth = "6,7 cm"
Combo.ColumnWidths = "0,7 cm;6 cm"

For i = 0 To 5
Combo.AddItem "-" & i
Combo.List(i, 1) = "prova" & i
Next


Utilizzando un RecordSet come nel tuo caso.. dovrebbe andare questo..


rsDati.MoveFirst
i = 0
While Not rsDati.EOF
Combo.AddItem rsDati!CodServizio
Combo.List(i, 1) = rsDati!DescrServizio
rsDati.MoveNext
i = i + 1
Wend
rsDati.Close

OrcaAssassina
24-08-2005, 12:11
Funziona

Solo che al posto di WEND ho messo LOOP, altrimenti mi andava in errore

pequeno
25-08-2005, 12:24
al posto di WEND ho messo LOOP, altrimenti mi andava in errore

Beh,
visual basic non lo uso da un pò..
in asp in while...wend funziona.. non ricordavo in vb :p