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

esquima

[RESOLVIDO][vb.net] combobox?!!??!

24 mensagens neste tópico

tenho duas combobox uma com nome de fornecedores outra com designacao dos bens , na minha bd a tabela bens ta ligada a tabela fornecedor com uma chave secundaria..o que queria era quando escolhesse um fornecedor na combo me aparecesse na outra combo os bens que ele fornece...alguma ajuda...tb será possivel fazer o inverso dos bens escolher o fornecedor?????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim e possivel....

mas depende... pk tipo pode haver mais q 1 fornecedor.... mas tipo isso e sql tens k selecionar todos os fornecedores k tenham akele bem mas axo k tens de fazer join :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

os bens so tem 1 fornecedor..os fornecedores e que tem mais de um bem.....o sql so capaz de me desenrascar axo eu...n sei e onde vou aplicar o vb....a primeira combo carrego no form..e a segunda vou carregar onde qual sera o evento???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se clicares 2 vezes na combobox dos bens dps pegas o id dos bens....mostra o code

k façote isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

 

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '****CODIGO PARA A COMBOBOX*****

        'define a string com o comando SQL e a string de conexão usando um provedor OLEDB

        Dim strSQL2 As String = "Select designacao,cod_bens from bens"

        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Esquima\Documentos\Proj fim curso\bdados.mdb;"

        'Abre a conexão com a fonte de dados

        Dim Conn As New OleDbConnection(strConn)

        Conn.Open()

        Try

            'cria o objecto DataAdapter

            Dim da As New OleDbDataAdapter(strSQL2, Conn)

            'Cria e preenche o DataSet

            Dim ds2 As New DataSet

            da.Fill(ds2, "bens")

            'Define o preenchimento da Combobox

            ComboBox2.ValueMember = "cod_bens"

            ComboBox2.DisplayMember = "designacao"

            ComboBox2.DataSource = ds2.Tables("bens")

        Finally

            Conn.Close()

        End Try

    End Sub

    Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged

        '****CODIGO PARA A COMBOBOX*****

        'define a string com o comando SQL e a string de conexão usando um provedor OLEDB

        Dim strSQL3 As String = "Select * from fornecedores inner join bens on bens.cod_fornecedor=fornecedores.cod_fornecedor and cod_fornecedor =" & ComboBox2.SelectedValue

        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Esquima\Documentos\Proj fim curso\bdados.mdb;"

        'Abre a conexão com a fonte de dados

        Dim Conn As New OleDbConnection(strConn)

        Conn.Open()

        Try

            'cria o objecto DataAdapter

            Dim da As New OleDbDataAdapter(strSQL3, Conn)

            'Cria e preenche o DataSet

            Dim ds3 As New DataSet

            da.Fill(ds3, "fornecedores")

            'Define o preenchimento da Combobox

            ComboBox1.ValueMember = "cod_fornecedor"

            ComboBox1.DisplayMember = "nome"

            ComboBox1.DataSource = ds3.Tables("fornecedores")

        Finally

            Conn.Close()

        End Try

    End Sub

End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

BOm vamos la ver se te consigo arranjar uma maneira de te eplicar isto....

Tipo na combobox dos bens no value gravas o id do "bens" e dps ao seleccionares o bem vais fazer uma query onde o fornecedor tenha o combobox2.selectedvalue

percebeste?? :S

tu ja tas a fazer isso pos fornecedores buscar os bens deles e so agora fazeres o inverso para os bens.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok...so ke mesmo assim o meu codigo n ta a funcionar bem...uma das minhas duvidas e onde vou carregar a segunda combo...no texchanged da combo2 , no SelectedValueChanged ou noutroo evento qualquer

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto ver se funciona bem

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '****CODIGO PARA A COMBOBOX*****

        'define a string com o comando SQL e a string de conexão usando um provedor OLEDB
        Dim strSQL2 As String = "Select designacao,cod_bens from bens"

        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Esquima\Documentos\Proj fim curso\bdados.mdb;"

        'Abre a conexão com a fonte de dados
        Dim Conn As New OleDbConnection(strConn)

        Conn.Open()

        Try
            'cria o objecto DataAdapter
            Dim da As New OleDbDataAdapter(strSQL2, Conn)
            'Cria e preenche o DataSet 

            Dim ds2 As New DataSet
            da.Fill(ds2, "bens")
            'Define o preenchimento da Combobox
            ComboBox2.ValueMember = "cod_bens"
            ComboBox2.DisplayMember = "designacao"
            ComboBox2.DataSource = ds2.Tables("bens")

        Finally
            Conn.Close()
        End Try

    End Sub
    Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged
        '****CODIGO PARA A COMBOBOX*****

        'define a string com o comando SQL e a string de conexão usando um provedor OLEDB

        Dim strSQL3 As String = "Select * from fornecedores inner join bens on bens.cod_fornecedor=fornecedores.cod_fornecedor and cod_fornecedor =" & ComboBox1.SelectedValue

        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Esquima\Documentos\Proj fim curso\bdados.mdb;"

        'Abre a conexão com a fonte de dados
        Dim Conn As New OleDbConnection(strConn)

        Conn.Open()

        Try
            'cria o objecto DataAdapter
            Dim da As New OleDbDataAdapter(strSQL3, Conn)
            'Cria e preenche o DataSet 
            Dim ds3 As New DataSet
            da.Fill(ds3, "fornecedores")
            'Define o preenchimento da Combobox
            ComboBox1.ValueMember = "cod_fornecedor"
            ComboBox1.DisplayMember = "nome"
            ComboBox1.DataSource = ds3.Tables("fornecedores")

        Finally
            Conn.Close()
        End Try
    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ta a dar erro..vou tentar mudar aki mas coisas....pq axo que dos bens para fornecedor nao da pois n tenho o cod_bens na tabela fornecedor...vou tentar fazer dos fornecedores para bens pois ai ja tenho o cod_fornecedor nos bens...ja te digo alguma coisa, ja agora como e que metes o codigo a a aparecer com cores aki no forum!?!? lol pergunta estupida nao ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

continua a dar erro da me no da.fill(ds2,"bens"

talvez a instruçao do sql n esteja certa

select * from bens inner join fornecedores on bens.cod_fornecedor=fornecedores.cod_fornecedor and cod_fornecedor =" & combobox1.selectedvalue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
select * from bens inner join fornecedores on bens.cod_fornecedor=fornecedore.cod_fornecedor and cod_fornecedor =" & combobox2.selectedvalue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas tardes...continua com o mesmo problema e nao consigo sair daki...o codigo mantem se o mesmo..meti um catch e da me um erro de : a expressao de associaçao nao e suportada...eu sei que vem do sql pois se eu fizer um select * from bens ele ja me corre...mas com a string sql que eu quero n da..alguma sugestao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

SELECT * FROM bens,fornecedores where  bens.cod_fornecedor=fornecedores.cod_fornecedor AND bens.cod_fornecedor =" & combobox2.selectedvalue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

etranho..faço uma consulta no acess e atribuo um valor fixo ao cdo_fornecedor e ele corre aki, aki no vb.net n me da :S ja tou farto de escrever instruçoes sql e nada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja tou no caminho certo..a minha instruçao ta assim

SELECT * FROM bens as b,fornecedores as f where b.cod_fornecedor=f.cod_fornecedor AND f..cod_fornecedor =" & combobox2.selectedvalue

A instruçao ta correcta so que no catch da o erro:

(operador em falta) na expressao de consulta ' b.cod_fornecedor=f.cod_fornecedor AND f..cod_fornecedor ='.

ele apanha o erro mas depois continua a correr e da a instruçao que eu quero nas combobox

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens 2 pontos a mais

SELECT * FROM bens as b,fornecedores as f where b.cod_fornecedor=f.cod_fornecedor AND f..cod_fornecedor =" & combobox2.selectedvalue


SELECT * FROM bens as b,fornecedores as f where b.cod_fornecedor=f.cod_fornecedor AND f.cod_fornecedor =" & combobox2.selectedvalue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois,,,isso fui eu que me enganei a passar para aki

tenho o sql so com o ponto....ja revirei manuais e nada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol esta na altura de deitar fora o access e usar ms sql server 2005 express (gratuito), que é superior em tudo. Podes sacar a versao gratuita do oracle. Ha muita gente que usa o MySQL pessoalmente acho que tem muito que evoluir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

resolvi finalmente....o problema e que a intruçao no form  de carregar o recordet demora mais tempo a executar, ele quando vai ao selectvaluechange no sql  ainda n ta  carregada a combo logo a combobox.value n tem valor...

:thumbsup:

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