COMBO - TABELA - LABEL
Public Sub preencher_combocatalogoenviado()
frm_contacto.cmb_catalogoenviado.Items.Clear()
myCON.Open()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select catalogo from tb_catalogos[Ô], myCON)
myDRR = myCMD.ExecuteReader()
While myDRR.Read
frm_contacto.cmb_catalogoenviado.Items.Add(myDRR.Item([Ô]catalogo[Ô]))
End While
[ô]Lendo do reader e adicionando no combobox
myDRR.Close()
myCON.Close()
End Sub
No entanto esta tabela tem mais campos entre os quais o inicio e fim de catalogo.
Como faço para quando seleccionar o catálogo na combobox preencha (dados da tabela) duas label[ô]s uma com o inicio e outra com o fim?
frm_contacto.cmb_catalogoenviado.Items.Clear()
myCON.Open()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select catalogo from tb_catalogos[Ô], myCON)
myDRR = myCMD.ExecuteReader()
cmb_catalogoenviado.ValueMember = [Ô]catalogo[Ô]
cmb_catalogoenviado.TextMember = [Ô]catalogo[Ô]
cmb_catalogoenviado.DataSource = myDDR
....
Assim, todo e qualquer registro que aparecer no datareader vai ser colocado automaticamente na combo. Um erro muuuuito comum, é esquecer que os Ãtens da combo tem VALOR e TEXTO que podem ser coisas completamente diferentes. Como por exemplo, você quer que aparece o nome do cliente, mas quer usar o valor no seu código, assim, quando selecionar algum Ãtem, o valor do mesmo é o que vale...
Citação::
Você pode simplesmente fazer:
frm_contacto.cmb_catalogoenviado.Items.Clear()
myCON.Open()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select catalogo from tb_catalogos[Ô], myCON)
myDRR = myCMD.ExecuteReader()
cmb_catalogoenviado.ValueMember = [Ô]catalogo[Ô]
cmb_catalogoenviado.TextMember = [Ô]catalogo[Ô]
cmb_catalogoenviado.DataSource = myDDR
....
Assim, todo e qualquer registro que aparecer no datareader vai ser colocado automaticamente na combo. Um erro muuuuito comum, é esquecer que os Ãtens da combo tem VALOR e TEXTO que podem ser coisas completamente diferentes. Como por exemplo, você quer que aparece o nome do cliente, mas quer usar o valor no seu código, assim, quando selecionar algum Ãtem, o valor do mesmo é o que vale...
Boas, obrigado pela resposta.
No entanto ao analisar o código que me enviou, julgo que seja para preencher a combo, certo?
Neste caso eu já consegui preencher a combo o que queria era:
A combo esta baseada no campo [Ô]catalogo[Ô] da tabela [Ô]tb_catalogos[Ô], no entanto esta tabela tem mais campos (inicio e fim de catalogo, entre outros). Eu queria que ao seleccionar um catálogo na combo, preencha (dados da tabela) duas label[ô]s uma com o inicio e outra com o fim do catálogo seleccionado.
Public Sub preencher_datascatalogo()
myCON.Open()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_catalogos WHERE catalogo =[ô][Ô] & frm_contacto.cmb_catalogoenviado.Text & [Ô][ô][Ô], myCON)
myDRR = myCMD.ExecuteReader()
While myDRR.Read
frm_contacto.lbl_iniciocat.Text = myDRR.Item([Ô]data_inicio[Ô])
frm_contacto.lbl_fimcat.Text = myDRR.Item([Ô]data_fim[Ô])
End While
myDRR.Close()
myCON.Close()
End Sub