Notifications
Clear all

Populando cambobox com dados do banco

3 Posts
2 Usuários
0 Reactions
982 Visualizações
(@gomesro)
Posts: 0
New Member
Topic starter
 

Bom dia,

estou tentando popular uma cambo com dados do banco.
e preciso passar o código do item carregado. São estados, entao quando a pessoa selecionar o estado eu vou armazenar o código.
O problema é que não estou conseguindo popular a cambo com o estado e o seu respectivo código.

Código:

Sub ConsultaUF()
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection

Dim strDB As String
Dim strSQL As String

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

strDB = ThisWorkbook.Path & "sindprodrural.accdb"
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & strDB & ";"

cn.Open

strSQL = "SELECT * FROM estados"

Set rs = cn.Execute(strSQL)

If rs.RecordCount < 0 Then
Do While Not rs.EOF

frmCadProd.cbUFend.AddItem rs.Fields("sigla"), rs.Fields("Código") NESTA PARTE QUE ESTÁ O PROBLEMA, QUERO QUE SEJA EXIBIDO A SIGLA DO ESTADO E SEJA ARMAZENADO O CÓDGIO DELE.

rs.MoveNext
Loop
End If

rs.Close
cn.Close
'

End Sub

SOCORRO. VALEU!!

 
Postado : 22/10/2015 10:16 am
(@messiasmbm)
Posts: 0
New Member
 

uf é o nome do combobox

With uf
.AddItem "Acre"
.AddItem "Alagoas"
.AddItem "Amapá"
.AddItem "Amazonas"
.AddItem "Bahia"
.AddItem "Ceará"
.AddItem "Distrito Federal"
.AddItem "Espírito Santo"
.AddItem "Goiás"
.AddItem "Maranhão"
.AddItem "Mato Grosso"
.AddItem "Mato Grosso do Sul"
.AddItem "Minas Gerais"
.AddItem "Pará"
.AddItem "Paraíba"
.AddItem "Paraná"
.AddItem "Pernambuco"
.AddItem "Piauí"
.AddItem "Rio de Janeiro"
.AddItem "Rio Grande do Sul"
.AddItem "Rio Grande do Norte"
.AddItem "Rondônia"
.AddItem "Roraima"
.AddItem "Santa Catarina"
.AddItem "São Paulo"
.AddItem "Sergipe"
.AddItem "Tocatins"
End With

 
Postado : 22/10/2015 11:18 am
(@gomesro)
Posts: 0
New Member
Topic starter
 

Obrigado pela resposta messias.

resolvi meu problema da seguinte forma:

If rs.RecordCount < 0 Then
Do While Not rs.EOF

'''popula combo com dados do endereço
frmCadProd.cbUFend.AddItem (rs.Fields("sigla")) '''carrega estados
frmCadProd.cbUFend.List(frmCadProd.cbUFend.ListCount - 1, 1) = rs.Fields("Código") ''carrega códigos dos mesmo

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
rs.MoveNext
''''''''''''''''''''''''''
Loop
End If

dessa forma é carregado os as siglas dos estados e o código. O código do estado selecionado pego através através da propriedade .VALUE da combobox.
Detalhes:
mas é necessário mudar as propriedades do combo para os seguintes valores:
BoundColumn = 2 e ColumnCount = 1

att. ;)

 
Postado : 22/10/2015 1:59 pm