Jump to content
Bessa

Por Código -> Contar Dados em Combo

Recommended Posts

Bessa

Boas pessoal,

já ando à dias de voltar de uma coisa tão simples... 😲

Há maneira de, por código, contar quantas vezes aparece um produto especifico na lista de uma ComboBox?

SQL, não me consigo desenrascar, por código, estou farto de andar ás voltas e não consigo. Apenas consigo que ele conte todos os registos...Mas o seleccionado não! :S

1908.jpg

Se me pudessem dizer como posso resolver isto, de que forma, agradecia.

Obrigado desde já. :P

VB 2008... 😡

Share this post


Link to post
Share on other sites
Andrepereira9

boas

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim item_original As String = ComboBox1.SelectedItem.ToString
        Dim num_total_items As Integer = 0

        For Each item In ComboBox1.Items
            If item = item_original Then
                num_total_items += 1
            End If
        Next

        MsgBox(num_total_items)
End Sub


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Bessa

Caça

Sim...Mas não consigo fazer o que lá diz :S Já alterei e re-alterei e não consigo LOL Já fareti-me de procurar no google e nada! Por isso ainda não está filtrado lol

E Como esta é uma pergunta diferente, resolvi criar outro tópico. Não vejo nada de errado. Mas, Caso queiras apagar por uma questão de organização, força.  :P

Andrepereira9

uouu! :D Obrigado!

Realmente o Código tem todo o nexo! :D No entanto dá erro...E está relacionado com as Linhas da Tabela... 🤔

Dado que fiz um BreakPoint, e ele não está a detetar o ITem que seleciono na Combo, nem o da Lista, dado que aparece "System.Data.DataRowView"

Falha na resolução de sobrecarga porque nenhum '=' público pode ser chamado com estes argumentos:    'Public Shared Operator =(a As String, b As String) As Boolean':        O argumento que corresponde ao parâmetro 'a' não pode ser convertido de 'DataRowView' para 'String'.

Share this post


Link to post
Share on other sites
Caça

Não estás a dizer a Combo qual é o DisplayMember nem o ValueMember


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Bessa

Olha que tenho. :P

Até pq já me tinha acontecido isso, e vi que o problema tinha sido esse. Desta vez, não percebo a razão de aparecer isso. :O entretanto, também estou a pesquisar no google que pode ser.

Mas caso alguém tenha alguma ideia, Obrigado.

http://social.msdn.microsoft.com/Forums/en/wpf/thread/8760128b-12c7-4086-aed6-46a1d31f41f4

O Código "<ComboBox ItemsSource="{Binding} ....." é de ser adiciona na "App.Config"'? é que é o único sitio que estou a "ver"...Mas pus e nem sequer consegue iniciar o prog lol

Share this post


Link to post
Share on other sites
Caça

Isso é WPF, é diferente.

Mostra o teu código


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Bessa

My Bad... :wallbash:

O Código? Se for todo..É muito, dado que tenho muito comentado dadas as tentativas que fiz e que falharam...Fora o que já apaguei! LOL

Imports System.Data.SqlClient
Imports System.Data.Odbc
Imports System.Data.OleDb


Public Class Form1

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

        Ferramentas_corteBindingSource.AddNew()

        Artigo_ferrTextBox.Enabled = True
        Operacao_ferrTextBox.Enabled = True
        Desc_ferrTextBox.Enabled = True
        Cod_ferrTextBox.Enabled = True
        Local_ferrTextBox.Enabled = True
        Accessorios_ferrComboBox.Enabled = True

        ToolStripButton1.Enabled = True

        Artigo_ferrTextBox.Enabled = False
        Operacao_ferrTextBox.Enabled = False
        Desc_ferrTextBox.Enabled = False
        Cod_ferrTextBox.Enabled = False
        Local_ferrTextBox.Enabled = False
        Accessorios_ferrComboBox.Enabled = False

        Nome_accessorio_ferrTextBox.Visible = False
        Label2.Visible = False
        Gam_descTextBox.Enabled = False
        Gam_gfhTextBox.Enabled = False
        Art_descTextBox.Enabled = False
        Gam_numoperTextBox.Enabled = False

        'Gam_descTextBox1.Enabled = False
        'Gam_gfhTextBox1.Enabled = False
        'Gam_numoperTextBox1.Enabled = False

        'Gam_descTextBox1.Visible = False
        'Gam_gfhTextBox1.Visible = False
        'Gam_numoperTextBox1.Visible = False

        'Label2.Visible = False
        'Label3.Visible = False
        'Label4.Visible = False

        Me.Informix_pp_gamopeTableAdapter.Fill(Me.TesteDataSet.informix_pp_gamope)

        Me.Informix_pa_alartTableAdapter.Fill(Me.TesteDataSet.informix_pa_alart)

    End Sub
    Private Sub FillByToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            Me.Informix_pp_gamopeTableAdapter.FillBy(Me.TesteDataSet.informix_pp_gamope)

        Catch ex As System.Exception

            System.Windows.Forms.MessageBox.Show(ex.Message)

        End Try

    End Sub

    Private Sub Art_codartComboBox_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Art_codartComboBox.SelectedIndexChanged

        '########################################################

        'Tirar o comment do codigo abaixo!!!!!

        ' Dim Connection As New OleDbConnection(TesteDataSet)
        '  Dim query As String = "SELECT Art_codart FROM informix_pa_alart WHERE ID = @Art_codart"
        '   Dim Command As New OleDbCommand(query, Connection)
        '    Command.Parameters.Add("@Art_codart", OleDbType.VarChar).Value = Art_codartComboBox.Text
        '     ' Aqui metes a combobox Código do Artigo (secção Escolher Artigo)

        '      Dim Adapter As New OleDbDataAdapter(Command)
        '        Dim Table As New DataTable
        '       Adapter.Fill(Table)

        'With Gam_codproComboBox ' Aqui colocas a combobox Código do Artigo (secção Operações)
        '.DataSource = Table
        '.DisplayMember = "gam_codpro"
        ' End With


        '###################################################

        'Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Administrador\Desktop" & Application.StartupPath & "\teste.accdb")
        'Dim query As String = "SELECT * FROM informix_pp_gamope WHERE ID = @art_codpro"

        'Dim command As New OleDbCommand(query, ConnectionString)
        ' Seleccionar os dados da Combo 1
        'command.Parameters.Add("@art_codpro", OleDbType.Integer).Value = Gam_codproComboBox.Text

        'Dim DataAdapter As New OleDbDataAdapter(command)
        'Dim MyData As New DataSet
        'DataAdapter.Fill(MyData, "informix_pp_gamope")


        Operacao_ferrTextBox.Text = Gam_numoperTextBox.Text
        Gam_codproComboBox.Text = Art_codartComboBox.Text
        Artigo_ferrTextBox.Text = Gam_codproComboBox.Text

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        End
    End Sub

    Private Sub Gam_codproComboBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Gam_codproComboBox.Click



        'MsgBox("Número de Operações: " & Count, MsgBoxStyle.Exclamation, "Aviso")

    End Sub

    Private Sub Gam_codproComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Gam_codproComboBox.SelectedIndexChanged
     


        Dim item_original As String = Gam_codproComboBox.SelectedItem.ToString
        Dim num_total_items As Integer = 0

        For Each item In Gam_codproComboBox.Items
            If item = item_original Then
                num_total_items += 1
            End If
        Next

        MsgBox(num_total_items)



        '        Dim Ope As String

        '       If Gam_numoperTextBox.Text = 5 Then

        ' Ope = 1

        '        MsgBox("Número de Operações do Artigo: " & Ope, MsgBoxStyle.Information, "Informação")

        '        Else

        '        If Gam_numoperTextBox.Text = 10 Then

        '        Ope = 2

        '        MsgBox("Número de Operações do Artigo: " & Ope, MsgBoxStyle.Information, "Informação")

        '        Else

        '        If Gam_numoperTextBox.Text = 15 Then

        '        Ope = 3

        '        MsgBox("Número de Operações do Artigo: " & Ope, MsgBoxStyle.Information, "Informação")

        '        Else

        '       If Gam_numoperTextBox.Text = 20 Then

        '        Ope = 4

        '        MsgBox("Número de Operações do Artigo: " & Ope, MsgBoxStyle.Information, "Informação")

        '        Else

        '        If Gam_numoperTextBox.Text = 25 Then

        '        Ope = 5

        '        MsgBox("Número de Operações do Artigo: " & Ope, MsgBoxStyle.Information, "Informação")

        '        End If
        '       End If
        '      End If
        '     End If
        '    End If


        'Try

        'Dim sabe As String

        'sabe = Art_codartComboBox.Text

        'Select Case sabe

        'Case (sabe)

        'Dim ConnectionString As String = "C:\Users\Administrador\Desktop\teste.accdb"

        'Dim connection As New SqlConnection(ConnectionString)

        'Dim command As New System.Data.SqlClient.SqlCommand("SELECT gam_codpro FROM informix_pp_gamope WHERE gam_codpro = @AAA ", connection)


        'connection.Open()

        'command.Parameters.AddWithValue("@AAA", Me.Art_codartComboBox.Text)

        'Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()

        ''Limpa os dados da combobox
        'Gam_codproComboBox.Items.Clear()

        'If apap.HasRows Then

        'While apap.Read() ''-> Para ler todos os dados. O que tinhas so le o primeiro volar
        'Gam_codproComboBox.Items.Add(apap.GetValue(0).ToString()) ''-> Numa combobox, adiciona-se os valores

        'End While

        'End If

        'connection.Close()


        'End Select

        'Catch ex As Exception
        'MsgBox(ex.Message)
        'End Try


        '#########################

        Operacao_ferrTextBox.Text = Gam_numoperTextBox.Text
        ' Art_codartComboBox.Text = Gam_codproComboBox.Text
        Art_codartComboBox.Text = Artigo_ferrTextBox.Text

        '##################################################

        'If Val(Gam_numoperTextBox.Text) = 5 Then
        'Label11.Text = "Porreiro"
        'Else
        'Label11.Text = ""
        'End If

        '##################################################

        'If (Gam_numoperTextBox1.Text) = 10 Then

        'Gam_descTextBox1.Visible = True
        'Gam_gfhTextBox1.Visible = True
        'Gam_numoperTextBox1.Visible = True
        'Label2.Visible = True
        'Label3.Visible = True
        'Label4.Visible = True

        'Else
        'Gam_descTextBox1.Visible = False
        'Gam_gfhTextBox1.Visible = False
        'Gam_numoperTextBox1.Visible = False
        'Label2.Visible = False
        'Label3.Visible = False
        'Label4.Visible = False
        'End If

        '##################################################
    End Sub

    Private Sub Accessorios_ferrComboBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Accessorios_ferrComboBox.KeyPress
        If Not Char.IsNumber(e.KeyChar) And Not Convert.ToInt32(e.KeyChar) = Keys.Back And Not Convert.ToInt32(e.KeyChar) = Keys.Delete Then
            e.Handled = True
        End If

        If Char.IsNumber(e.KeyChar) Then
            e.Handled = True
        End If

    End Sub

    Private Sub Accessorios_ferrComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Accessorios_ferrComboBox.SelectedIndexChanged

        If Accessorios_ferrComboBox.Text = "Sim" Then
            Nome_accessorio_ferrTextBox.Visible = True
            Label2.Visible = True
        Else
            Nome_accessorio_ferrTextBox.Visible = False
            Label2.Visible = False
        End If
    End Sub

    Private Sub Gam_gfhTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Gam_gfhTextBox.KeyPress

    End Sub

    Private Sub Gam_gfhTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Gam_gfhTextBox.TextChanged

    End Sub

    Private Sub TesteBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If Desc_ferrTextBox.Text = "" Or Local_ferrTextBox.Text = "" Then
            MsgBox("Não preencheu todos os campos!", MsgBoxStyle.Exclamation, "Erro")
        Else
            Desc_ferrTextBox.Enabled = False
            Local_ferrTextBox.Enabled = False
            BindingNavigatorDeleteItem.Visible = True
            BindingNavigatorAddNewItem.Visible = True

            Me.Validate()
            Me.Ferramentas_corteBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.TesteDataSet)
        End If
    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub TesteBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TesteBindingNavigatorSaveItem.Click
        If Desc_ferrTextBox.Text = "" Or Local_ferrTextBox.Text = "" Or Accessorios_ferrComboBox.Text = "" Then
            MsgBox("Não preencheu todos os campos!", MsgBoxStyle.Exclamation, "Erro")
            ' ElseIf

            '   Accessorios_ferrComboBox.Text = "Sim" And  Nome_accessorio_ferrTextBox.Text= "" Then
            '    MsgBox("Não preencheu todos os campos!", MsgBoxStyle.Exclamation, "Erro")
        Else
            Me.Validate()
            Me.Ferramentas_corteBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.TesteDataSet)

            Desc_ferrTextBox.Enabled = True
            Local_ferrTextBox.Enabled = True
            BindingNavigatorDeleteItem.Visible = False
        End If

    End Sub

    Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

        Me.Ferramentas_corteBindingSource.AddNew()

        Artigo_ferrTextBox.Enabled = True
        Operacao_ferrTextBox.Enabled = True
        Desc_ferrTextBox.Enabled = True
        Cod_ferrTextBox.Enabled = True
        Local_ferrTextBox.Enabled = True
        Accessorios_ferrComboBox.Enabled = True


        Operacao_ferrTextBox.Text = Gam_numoperTextBox.Text
        Artigo_ferrTextBox.Text = Gam_codproComboBox.Text

        'Label3.Text = Gam_numoperTextBox.Text
        'Label4.Text = Gam_codproComboBox.Text

    End Sub

    Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click

    End Sub

    Private Sub Artigo_ferrTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Artigo_ferrTextBox.KeyPress

    End Sub

    Private Sub Artigo_ferrTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Artigo_ferrTextBox.TextChanged

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Form.Show()
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'Contar quantas operaçoes tem
        Dim Ope As String

        Ope = Gam_codproComboBox.Text

        Ope = Gam_codproComboBox.Items.Count.ToString

        MsgBox("Número TOTAL de Operações: " & Ope, MsgBoxStyle.Information, "Informação")
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'Este é para CONTAR as OPERACOES de CADA artigo!!!!!!!

        Dim NC As Integer

        NC = 0

        If Gam_codproComboBox.Text = ListBox1.Text Then
            NC = Val(NC) + 1
            MsgBox("Número de Operações do Artigo: " & NC, MsgBoxStyle.Information, "Informação")

        End If
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        Dim Ope As Integer

        Ope = Art_codartComboBox.Items.Count.ToString()

        MsgBox("Número TOTAL de Artigos: " & Ope, MsgBoxStyle.Information, "Informação")
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)








    End Sub
End Class

Só da Combo:

        Dim item_original As String = Gam_codproComboBox.SelectedItem.ToString
        Dim num_total_items As Integer = 0

        For Each item In Gam_codproComboBox.Items
            If item = item_original Then
                num_total_items += 1
            End If
        Next

        MsgBox(num_total_items)

'Ver o numero de operaçoes no programa

        Dim Ope As String

        Ope = Gam_codproComboBox.Text

        Ope = Gam_codproComboBox.Items.Count.ToString

        MsgBox("Número TOTAL de Operações: " & Ope, MsgBoxStyle.Information, "Informação")

Share this post


Link to post
Share on other sites
Caça

Estás a fazer por Wizards, não consigo ver o problema. Tenta re-associar o Datasource, Displaymember e Value member à combobox


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Bessa

Também já tinha feito isso, mas não tinha funcionado. :P

Mas Obrigado por teres tentado ajudar. :D

Share this post


Link to post
Share on other sites
bioshock

Seja por wizards ou não, uma simples query resolveria o teu problema.:P

Share this post


Link to post
Share on other sites
Bessa

bioshock

Só que eu não consigo fazer isso! LOL dá sempre erro... 😡 :wallbash:

Mas caso não consiga fazer isto com um código que estive aqui a "inventar", depois pesquiso sobre isso. :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.