COMBOBOX X TEXTBOX

GEROEANE 21/10/2012 20:12:23
#412444
Pessoal tenho uma combobox que pega os nomes dos fornecedores.
Gostaria que ao selecionar determinado fornecedor um textbox apareça o numero do seu contrato.
Sendo que o nome do fornecedor esta na coluna B e o contrato na coluna C
Estou abastecendo a combobox com o seguinte codigo:

  
Private Sub PopulaFornecedor()
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String

Set conn = New ADODB.Connection
With conn

[ô].Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô] [ô] versão excel 2003
.Provider = [Ô]Microsoft.ACE.OLEDB.12.0[Ô] [ô] versão excel 2007
.ConnectionString = [Ô]Data Source=[Ô] & ThisWorkbook.FullName & [Ô];Extended Properties=Excel 8.0;[Ô]
.Open
End With

sql = [Ô]SELECT DISTINCT Fornecedor FROM [Servico$][Ô]

Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenDynamic, _
adLockBatchOptimistic
End With

Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then

Fornecedor.AddItem rst(0).Value

End If
rst.MoveNext
Loop

[ô] Fecha o conjunto de registros.
Set rst = Nothing
[ô] Fecha a conexão.
conn.Close

End Sub


Agora como ao selecionar o fornecedor ele possa preencher a textbox com o numero do contrato.....

Desde ja agradeço a atenção
ADILSOO 21/10/2012 23:10:58
#412467
Resposta escolhida
Amigo, a hora que ele adicionar o fornecedor, na linha de baixo adicione o numero do contrato, pois o registro atual será o mesmo que vc precisa
 Combo.additem rs!fornecedor
textbox.text = rs!contrato

Se foi isso que eu entendi é isso.
ADILSOO 21/10/2012 23:13:22
#412468
Ou no clike do combobox coloque
 Do while not rs.eof = true
if combobox.text = rs!fornecedor then
textbox.text = rs!contrato
end if
exit do
rs.movenext
loop

seria a segunda opção.
VELDRAME 22/10/2012 11:39:01
#412490
Na hora de popular a combo coloque o número do contrato no ID co Item

Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then
Fornecedor.AddItem rst(0).Value
Fornecedor.itemdata(Fornecedor.newindex) = rst(x).value [ô]x = o id do campo
End If
rst.MoveNext
Loop
GEROEANE 22/10/2012 14:45:31
#412508
Pessoal, obrigado codigo ficou assim :
Private Sub Fornecedor_Click()
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String

Set conn = New ADODB.Connection
With conn

[ô].Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô] [ô] versão excel 2003
.Provider = [Ô]Microsoft.ACE.OLEDB.12.0[Ô] [ô] versão excel 2007
.ConnectionString = [Ô]Data Source=[Ô] & ThisWorkbook.FullName & [Ô];Extended Properties=Excel 8.0;[Ô]
.Open
End With

sql = [Ô]SELECT DISTINCT Fornecedor,Contrato FROM [Servico$][Ô]

Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenDynamic, _
adLockBatchOptimistic
End With

Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then

If Fornecedor.Text = rst!Fornecedor Then
Contrato.Text = rst!Contrato
End If
End If
rst.MoveNext
Loop

[ô] Fecha o conjunto de registros.
Set rst = Nothing
[ô] Fecha a conexão.
conn.Close


End Sub
Tópico encerrado , respostas não são mais permitidas