COMBOBOX

 Tópico anterior Próximo tópico Novo tópico

COMBOBOX

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#485573 - 26/11/2018 10:37:21

JPAULO101
GARANHUNS
Cadast. em:Maio/2009


Bom dia Pessoal, vocês poderia me ajudar a fazer um filtro em dois combobox, exemplo, tenho uma tabela no access, onde consta nome do funcionária, e filial da empresa onde cada um trabalha, gostaria de fazer um filtro, onde seleciono o combobox1, o nome, e no combobox2, mostrasse em qual filial esse funcionário trabalha.

Desde já agradeço. Abraço.



#485574 - 26/11/2018 10:57:49

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Parece simples. seria mais ou menos isso

evento load form
  Connect
rs.Open "SELECT * FROM funcionario", CON, adOpenStatic, adLockOptimistic
Do While Not rs.eof
    Combo1.AddItem rs.Fields("nome")
    rs.MoveNext
Loop
Disconnect


evendo clique combo
Private Sub Combo1_Click()
Connect
rs.Open "SELECT * FROM funcionario WHERE nome Like '" & Combo3.Text & "'", CON, adOpenStatic, adLockOptimistic
Combo2 = rs!filial
Disconnect
End Sub







#485575 - 26/11/2018 11:06:28

JPAULO101
GARANHUNS
Cadast. em:Maio/2009


Tentei assim, mais não funciona.

     Private Sub cmdEstoque_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmdEstoque.SelectedValueChanged
        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim cod As Integer = Val(cmdEstoque.SelectedValue.ToString)
                Dim sql As String = "SELECT FROM TblFuncionario where nome Like '" & cbdLeiturista.Text & ""
                Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)

                cmdLeiturista.DisplayMember = "Nome"
                cmdLeiturista.DataSource = dt
            Catch ex As Exception
            Finally
                con.Close()
            End Try
        End Using
    End Sub




#485576 - 26/11/2018 11:49:18

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


não seria assim

"SELECT FROM TblFuncionario where nome Like '" & cbdLeiturista.Text & "'"



" ' " no final



#485577 - 26/11/2018 11:49:35

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
1 - Falta um asterisco na sua query
2 - Falta o ValueMember na combo
3 - Use um DataReader ao invés de um DataTable
4 - "Mas" e não "mais"

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#485580 - 26/11/2018 12:39:10

JPAULO101
GARANHUNS
Cadast. em:Maio/2009


 Anexos estao visíveis somente para usuários registrados

Fiz as seguinte alterações, mais ainda não consigo fazer o filtro.

      Private Sub cmdEstoque_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmdEstoque.SelectedValueChanged

        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim cod As Integer = Val(cmdEstoque.SelectedValue.ToString)
                Dim sql As String = "SELECT * FROM TblFuncionario WHERE nome Like '" & cod & ""
                Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)

                cmdLeiturista.DisplayMember = "Nome"
                cmdLeiturista.DataSource = dt
            Catch ex As Exception
            Finally
                con.Close()
            End Try
        End Using
    End Sub




#485586 - 26/11/2018 18:53:45

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


vi q ainda nao entendeu o q o kerplunk disse, MAS vi outra coisa errada na ultima postagem.....
se vc ja fez toda aquela conversao pra inteiro, na query vc nao usa mais aspas simples, e nao sei se access suporta like com inteiro, e nao vejo nome podendo ser igual a inteiro
estou supondo o q existe internamente na sua tabela.....



Resposta escolhida #485591 - 26/11/2018 22:20:23

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Última edição em 26/11/2018 22:21:12 por OMAR2011

Vamos Lá.
Troque tudo de vermeho.
Private Sub cmdEstoque_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmdEstoque.SelectedValueChanged

        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim cod As Integer = Val(cmdEstoque.SelectedValue.ToString)
                Dim sql As String = "SELECT * FROM TblFuncionario WHERE nome Like '" & cod & ""
                Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)

                cmdLeiturista.DisplayMember = "Nome"
                cmdLeiturista.DataSource = dt
            Catch ex As Exception
            Finally
               con.Close() ' O bloco fecha a conexão,não é preciso.
            End Try
        End Using




#485601 - 27/11/2018 10:03:15

JPAULO101
GARANHUNS
Cadast. em:Maio/2009


Obrigado pessoal pela dicas que vocês postaram, consegui resolver, precisava fazer uma relação na tabala no access.



#485607 - 27/11/2018 10:27:28

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Será que tal relação na tabela resolveu,visto que não é problema de tabela e sim escrita do código.
Resolvido,então encerre o tópico.



#485610 - 27/11/2018 12:03:43

JPAULO101
GARANHUNS
Cadast. em:Maio/2009


Citação:
:
Será que tal relação na tabela resolveu,visto que não é problema de tabela e sim escrita do código.
Resolvido,então encerre o tópico.


Olá OMAR2011, alterei a estrutura da rotina também, ai funcionou legal.

Ficou assim, para carregar o combobox

      Private Sub PPreencheComboEstoque()
        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()

                Dim tabela As New DataTable
                Dim sql As String = "SELECT Rota,Nome FROM TblEstoque"
                Dim adp As New OleDbDataAdapter(sql, con)
                adp.Fill(tabela)

                cboEstoque.DataSource = tabela

                cboEstoque.DisplayMember = "Nome"
                cboEstoque.ValueMember = "Rota"
            Catch ex As Exception
            Finally
                con.Close()
            End Try
        End Using
    End Sub


No evento SelectedValueChanged do cboEstoque, coloquei assim

   Private Sub cmdEstoque_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmdEstoque.SelectedValueChanged

        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim cod As Integer = Val(cmdEstoque.SelectedValue.ToString)

                Dim tabela As New DataTable
                Dim sql As String = "SELECT Nome FROM TblFuncionario WHERE IDBase = " & cod
                Dim adp As New OleDbDataAdapter(sql, con)
                adp.Fill(tabela)

                cmdLeiturista.DataSource = tabela
                cmdLeiturista.DisplayMember = "Nome"


            Catch ex As Exception
            Finally
                con.Close()
            End Try
        End Using
    End Sub




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JPAULO101 em 27/11/2018 12:04:59