CARREGAR DADOS EM COMBOBOX
Boa tarde,
tenho um banco de dados com 2 colunas NOME e CPF
quero carregar os NOMES em um ComboBox mais que sejam associados a seus respectivos CPF.
Tenho um FORM com 1 TextBox eo ComboBox
No TextBox vou por uma placa e essa placa sera usada com o CPF do NOME selecionado.
Alguém por favor, pode me ajudar???
tenho um banco de dados com 2 colunas NOME e CPF
quero carregar os NOMES em um ComboBox mais que sejam associados a seus respectivos CPF.
Tenho um FORM com 1 TextBox eo ComboBox
No TextBox vou por uma placa e essa placa sera usada com o CPF do NOME selecionado.
Alguém por favor, pode me ajudar???
se o cpf estiver formatado terá que tirar a formatação ex: 123.456.789-0 tem que ser 1234567890
para comprara este cpf posteriormente
no clique do combo
e vc terá o cpf
sSQL = [Ô]SELECT * FROM tabela[Ô]
Set Rs = Con.Execute(sSQL)
Do While Not Rs.EOF
With Combo1
.AddItem Rs!Nome
.ItemData(.NewIndex) = Rs!CPF [ô] caso não haja formatação no cpf
End With
Rs.MoveNext
Loop
para comprara este cpf posteriormente
no clique do combo
Text1.Text = Combo1.ItemData(Combo1.Listindex)
e vc terá o cpf
nao sei se é isso, mas voce poderia colocar o cpf no index do combo quando adicionar o item
tipo
combo.additem nome
combo.itemdata(combo.newindex) = cpf
obs nao poderia de forma alguma existir cpf s iguais, mas nao sei se o campo de indice pode com um numero tao grande como o cpf
tipo
combo.additem nome
combo.itemdata(combo.newindex) = cpf
obs nao poderia de forma alguma existir cpf s iguais, mas nao sei se o campo de indice pode com um numero tao grande como o cpf
é não havia me atento a isso o cpf no item data vai gerar um erro overlaw.
então faça assim, crie uma array dinamica do tipo strng, e nela você não terá nem problema com formatação
veja
ai sim vc pode ler o cpf assim
então faça assim, crie uma array dinamica do tipo strng, e nela você não terá nem problema com formatação
veja
Dim CPF() As String, i As Integer
i = 0
sSQL = [Ô]SELECT * FROM tabela[Ô]
Set Rs = Con.Execute(sSQL)
Do While Not Rs.EOF
Combo1.AddItem Rs!Nome
Redim Preserve CPF(i) As String
CPF(i) = Rs!CPF
i = i + 1
Rs.MoveNext
Loop
ai sim vc pode ler o cpf assim
MsgBox cpf(Combo1.ListIndex)
Boa tarde pessoal!
mew não to conseguindo, ta dando o seguinte erro:
[txt-color=#0000f0]Run-time error [ô]6[ô]:
Overflow[/txt-color]
O código ta assim...
[txt-color=#0000f0]Dim cn As New ADODB.Connection
Private Sub CountryLst_Click()
Text1.Text = CountryLst.ItemData(CountryLst.ListIndex)
End Sub
Private Sub Form_Load()
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\motoristas.mdb;Persist Security Info=False[Ô]
cn.Open
Dim rs As New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = [Ô]Select *from DADOS_MOT where NOME[Ô]
rs.Open
IPDetail.ListItems.Clear
Do While Not rs.EOF
With CountryLst
.AddItem rs!NOME
.ItemData(.NewIndex) = rs!CPF
End With
rs.MoveNext
Loop
End Sub[/txt-color]
Alguma sugestão???
mew não to conseguindo, ta dando o seguinte erro:
[txt-color=#0000f0]Run-time error [ô]6[ô]:
Overflow[/txt-color]
O código ta assim...
[txt-color=#0000f0]Dim cn As New ADODB.Connection
Private Sub CountryLst_Click()
Text1.Text = CountryLst.ItemData(CountryLst.ListIndex)
End Sub
Private Sub Form_Load()
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\motoristas.mdb;Persist Security Info=False[Ô]
cn.Open
Dim rs As New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = [Ô]Select *from DADOS_MOT where NOME[Ô]
rs.Open
IPDetail.ListItems.Clear
Do While Not rs.EOF
With CountryLst
.AddItem rs!NOME
.ItemData(.NewIndex) = rs!CPF
End With
rs.MoveNext
Loop
End Sub[/txt-color]
Alguma sugestão???
eu ja havia postado a solução acima, veja como adptar ao seu código
para depois saber o cpf é só fazer assim, no click do combo
Dim cn As New ADODB.Connection
Dim CPF() As String, i As Integer
Private Sub Form_Load()
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\motoristas.mdb;Persist Security Info=False[Ô]
cn.Open
Dim rs As New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = [Ô]Select *from DADOS_MOT where NOME[Ô]
rs.Open
IPDetail.ListItems.Clear
i = 0
Do While Not rs.EOF
With CountryLst
.Combo1.AddItem Rs!Nome
Redim Preserve CPF(i) As String
CPF(i) = rs!CPF
i = i + 1
End With
rs.MoveNext
Loop
End Sub
para depois saber o cpf é só fazer assim, no click do combo
Private Sub CountryLst_Click()
Text1.Text = CPF(CountryLst.ListIndex)
End Sub
Foi como eu comentei e ai depois o treze verificou que vc nao pode colocar o cpf no index, pois ele é muito grande, tem q criar um array dinamico pra ai sim poder colocar o cpf com o mesmo indice do nome
MARCELO-TREZE, Muito Obrigado Brother .. deu certo!
Abraço colega disponha
Tópico encerrado , respostas não são mais permitidas