• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MASTERMIND

Adicionar items a uma combo box através de uma tabela acess

13 mensagens neste tópico

Boa noite pessoal estou a desenvolver uma aplicação e queria que no evento do mouse click do botão de uma combo me lista-se os codigos postais que tenho numa bd em acess

eu com um ficheiro de texto ja consegui, mas com a bd só me aparecem codigos aeroglifos  :D

alguem me pode ajudar ?  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ora bem explicando assim por alto, és capaz de conseguir isso acedendo à BD recorrendo a um RecordSet (acho que é este o nome do controlo) e depois criares um ciclo que percorra as linhas todas da coluna pretendida (desse recordset) e mande os itens para a combo :/

pah agora não tenho vb não da pa te criar um exemplo :x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não consigo encontrar esse controlo , esta na classe system.io? não encontro man...  :D

eu estou a usar um streamreader para alimentar os items atraves do ficheiro de texto, mas acho que para ler de uma tabela access tem de ser outro controlo, mal qual?  :D

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

MASTERMIND, tens a base de dados adicionada ao projecto? Se não tens que adicioná-la, e só depois tens acesso a isso tudo, com o vb.net é tudo tão fácil...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho os datasets inclusive consigo listar os items numa datagrid só não consigo é fazelos a aparecer na minha combobox, sera qq coisa como cmbx.items.add mas como? com um ciclo?

tipo varer os items todos da bd -1. eu tb sei que é facil  :D mas como é que se faz?

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usa o DataSource da combo para apontares para um dataset ou outro objecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

oi Tiago acho que já quercarregar qq coisa para a combo só que esta a dar-me esta mensagem dentro da combobox

system.data.dataviewmanagerlistitemtypedescriptor

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro tens que carregar os dados num SqlDataReader ou num DataSet por exemplo, e dps

combo1.DataSource = nome_do_sqldatareader/nome_do_dataset

...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola tiago. eu tb já fiz isso olha este é o meu procedimento, eu tenho um função que me extrai os dados só tenho de passar o parametro tabela, campos, criterio e ordem

private sub populacombo()

dim ds dados as new dataset

dsdados = dados.extrairdados("CODIGOSPOSTAIS", "  * ", "", "")

with cmbcodpost

.datasource = dsdados

end with

end sub

é dps népia  :down:

aparece no campo de texto da combo box

o seguinte:

system.data.dataviewmanagerlistitemtypedescriptor...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alem do DataSource tens tb que definir o ValueMember e o DisplayMember. Ve se resolve.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Desapareceu  o geshi?????

USANDO DATASOURCE

Dim ds As New DataSet

Me.SqlConnection1.ConnectionString = constring

'' liga a bd

Me.SqlConnection1.Open()

Me.SqlDataAdapter1.SelectCommand.Connection = Me.SqlConnection1

Me.SqlDataAdapter1.SelectCommand.CommandText = "select nome,codigo from estados order by codigo asc"

Me.SqlDataAdapter1.Fill(ds, "estados")

Dim tabela As New DataTable

tabela = ds.Tables("estados")

ComboBox1.DataSource = tabela

ComboBox1.DisplayMember = "nome"

' guarda o codigo do estado na textbox1 que esta invisivel

TextBox1.DataBindings.Add("text", tabela, "codigo")

If Not (FormObras Is Nothing) Then

    Me.ComboBox1.Text = FormObras.DataGrid1.Item(FormObras.DataGrid1.CurrentRowIndex, 14).ToString

End If

'' fecha ligacao

Me.SqlConnection1.Close()

USANDO CICLOS

Dim reader As SqlDataReader

'' abre lig.

If Me.SqlConnection1.State = ConnectionState.Closed Then

    Me.SqlConnection1.ConnectionString = constring

    Me.SqlConnection1.Open()

End If

Me.SqlCommand1.Connection = Me.SqlConnection1

Me.SqlCommand1.CommandType = CommandType.Text

Me.SqlCommand1.CommandText = "select nome from clientes order by nome asc"

reader = Me.SqlCommand1.ExecuteReader

While reader.Read

    Me.ComboBox1.Items.Add(reader(0))

End While

reader.Close()

'' fecha lig

Me.SqlConnection1.Close()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto tá complicadito... ;)

eu tenho esta funcão extrairdados numa classe que uso para varias operacoes com dados

____XXXX______

Public Function ExtrairDados(ByVal Tabela As String, ByVal Campos As String, ByVal Criterio As String, ByVal Ordem As String) As DataSet

        Dim repositorio As New DataSet

        Dim strSQL As String = "SELECT " & Campos & " FROM " & Tabela & Criterio & Ordem

        Dim ligacao As OleDbConnection = ObterLigacao()

        Dim dataAdapter As New OleDbDataAdapter()

        dataAdapter.SelectCommand = New OleDbCommand(strSQL, ligacao)

        dataAdapter.SelectCommand.CommandType = CommandType.Text

        dataAdapter.Fill(repositorio, "Dados")

        Return repositorio

    End Function

e estou a tentar... :P, criar este procedimento para popular os items da minha combo com os dados que devolve a  funcão, entretanto já coloquei o valuemember e  o displaymember

como tu disseste Tiago , mas ainda não me lista nada.

____XXXX______

Private Sub populacombocodpost()

        Dim dsdados As DataSet

        dsdados = dados.ExtrairDados("CODIGOSPOSTAIS", " * ", "", "")

        With cmbcodpost

            .DataSource = dsdados

            .DisplayMember = "LOCALIDADE"

            .ValueMember = "LOCALIDADE"

        End With

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal já tenho isto a funcar!  ;)

faltava-me mencionar o ponto tables do dataset .... :P

Private Sub populacombocodpost()

        Dim dsdados As DataSet

        dsdados = dados.ExtrairDados("CODIGOSPOSTAIS", " * ", "", "")

        With cmbcodpost

            .DataSource = dsdados.tables(0)         

            .DisplayMember = "LOCALIDADE"

            .ValueMember = "LOCALIDADE"

        End With

    End Sub

bem já trabalha!

um grande obrigado a voces todos

um abraco valeu ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora