|
Postada em 10/12/2004 01:18 hs
Carrego um combo com a rotina abaixo: Descupem a pergunta, mas não trabalho com VB a muito tempo. Tenho uma rotina que carrega um combox: Private Sub CarregaCombo() Dim rsC As Recordset Set rsC = BD.OpenRecordset("T_Orgao") Me.cboOrgao.Clear Do While Not rsC.EOF Me.cboOrgao.AddItem rsC("Orgao") Me.cboOrgao.ItemData(Me.cboOrgao.NewIndex) = rsC("codOrgao") rsC.MoveNext Loop rsC.Close Set rsC = Nothing End Sub
Ao ler os registros tentei assim: Me.cboOrgao.ListIndex = rs("Num_ID_Orgao") porém o valor do campo não corresponde ao registro gravado. como faço para mostrar o valor do registro do combo box?
Ivanenko
|
|
|
|
|
Postada em 10/12/2004 08:08 hs
Cara Não entendi sua dúvida, podia ser mais claro. O que você define como "valor do Registro do Comobo Box", e você quer mostrar onde. Se você está se referindo ao Valor do ItemData( o Num_Id_Orgao), eñtão tenta assim : MSGBOX (cboOrgao.ItemData( Me.cboOrgao.ListIndex)) Qualquer dúvida, retorne !
Eu sou o alfa e o ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir, o Todo Poderoso. (Ap 1.8)
|
|
|
|
Postada em 10/12/2004 23:18 hs
Olá Ivanenko, Realmente está meio confuso, mas parace que você está atribuindo à propriedade ItemData a chave primária de T_Orgao e quer usá-la como índice para que, quando carregar um registro, possa passar o conteúdo do campo Num_ID_Orgao para o listindex para assim localizar a descrição correspondente. É isso? Se for realmente não vai funcionar, pois IdemData é uma propriedade que armazena um Long, mas não tem qualquer relação com ListIndex, assim, você não pode se basear no conteúdo dele para fazer o que você quer. A solução seria algo mais ou menos assim: Dim Cont as Integer For Cont=0 To cboOrgao.ListCount-1 If cboOrgao.ItemData(Cont) = rs("Num_ID_Orgao") Then cboOrgao.ListIndex = Cont Exit For End If Next Qualquer coisa, post. um abraço, Sandro.
|
|
|
|