Jump to content

Recommended Posts

Posted

boas pessoal tenho um problema que é o seguinte:

Quero filtrar os meus dados por por exemplo o mes de janeiro, para isso uso este código:

Dim db As New OleDbConnection(my.My.Settings.ligacaoBD)

        ' LIGAR A BD
        db.Open()

        ' ACESSO AOS DADOS
        Dim comandosql = "Select matricula, valor, data from despesas_viaturas where DATA between #" & ComboBox1.Text & "-01-01# and #" & ComboBox1.Text & "-01-31#"

        Dim cmd As New OleDbCommand(comandosql, db)
        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)


        ' CRIAÇÃO DE COLUNAS NO DATAGRIDVIEW
        Dim num_campos As Integer
        Dim campo As String
        DataGridView1.Columns.Clear()

        num_campos = dtr.FieldCount
        Dim idx As Integer
        For idx = 0 To num_campos - 1
            campo = dtr.GetName(idx)
            DataGridView1.Columns.Add(campo, campo)
        Next

        ' CARREGAR OS DADOS
        Dim idx_linha As Integer
        idx_linha = 0

        While dtr.Read()
            Dim linha As New DataGridViewRow()
            DataGridView1.Rows.Add(linha)
            DataGridView1.Rows(idx_linha).Cells(0).Value = dtr.Item(0)
            DataGridView1.Rows(idx_linha).Cells(1).Value = RTrim(dtr.Item(1))
            DataGridView1.Rows(idx_linha).Cells(2).Value = RTrim(dtr.Item(2))

            idx_linha = idx_linha + 1
        End While

        ' AJUSTE DAS COLUNAS DO DATAGRIDVIEW
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None

        ' FECHAR A BD
        dtr.Close()

        Dim inttotal As Double

        Dim y As DataGridViewRow
        For Each y In DataGridView1.Rows
            inttotal += y.Cells(1).Value
        Next
        TextBox2.Text = inttotal

        Dim ass As Integer

        ass = idx_linha
        TextBox2.Text = ass

        Label3.Text = "Janeiro"

        ' Limpa a informação anterior
        Chart1.ChartAreas.Clear()
        Chart1.Series.Clear()

        ' Define nova informação
        Dim chartArea1 As New ChartArea()
        Chart1.ChartAreas.Add(chartArea1)

        Dim series1 As New Series()
        Dim series2 As New Series()

        valor1()
        series1.Points.Add(TextBox1.Text)
        series2.Points.Add(TextBox2.Text)

        series1.IsValueShownAsLabel = True
        series2.IsValueShownAsLabel = True
        series2.AxisLabel = " "

        series1.Name = "Despesas (€)"
        series2.Name = "Nº de despesas"

        chartArea1.Area3DStyle.Enable3D = True

        Chart1.Series.Add(series1)
        Chart1.Series.Add(series2)

        ' Chart1.Location = New System.Drawing.Point(500, 300)
        Chart1.Size = New System.Drawing.Size(500, 500)

só que ele está  a ir buscar os dados todos...

Posted

A classe DateTime tem uma propriedade q é Month. Podes extrair daí o mês q precisas.

Antes de testares logo e dar erro, primeiro vê o q o Month devolve, se é o nome da data, se é um inteiro, isso n me lembro ao certo.

Depois organiza a query para receber o mês da maneira q te der jeito.

Depois de testares estas 2 coisas individualmente adapta então o teu código.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

boas pessoal tenho um problema que é o seguinte:

Quero filtrar os meus dados por por exemplo o mes de janeiro, para isso uso este código:

Dim db As New OleDbConnection(my.My.Settings.ligacaoBD)

        ' LIGAR A BD
        db.Open()

        ' ACESSO AOS DADOS
        Dim comandosql = "Select matricula, valor, data from despesas_viaturas where DATA between #" & ComboBox1.Text & "-01-01# and #" & ComboBox1.Text & "-01-31#"

        Dim cmd As New OleDbCommand(comandosql, db)
        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)


        ' CRIAÇÃO DE COLUNAS NO DATAGRIDVIEW
        Dim num_campos As Integer
        Dim campo As String
        DataGridView1.Columns.Clear()

        num_campos = dtr.FieldCount
        Dim idx As Integer
        For idx = 0 To num_campos - 1
            campo = dtr.GetName(idx)
            DataGridView1.Columns.Add(campo, campo)
        Next

        ' CARREGAR OS DADOS
        Dim idx_linha As Integer
        idx_linha = 0

        While dtr.Read()
            Dim linha As New DataGridViewRow()
            DataGridView1.Rows.Add(linha)
            DataGridView1.Rows(idx_linha).Cells(0).Value = dtr.Item(0)
            DataGridView1.Rows(idx_linha).Cells(1).Value = RTrim(dtr.Item(1))
            DataGridView1.Rows(idx_linha).Cells(2).Value = RTrim(dtr.Item(2))

            idx_linha = idx_linha + 1
        End While

        ' AJUSTE DAS COLUNAS DO DATAGRIDVIEW
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None

        ' FECHAR A BD
        dtr.Close()

        Dim inttotal As Double

        Dim y As DataGridViewRow
        For Each y In DataGridView1.Rows
            inttotal += y.Cells(1).Value
        Next
        TextBox2.Text = inttotal

        Dim ass As Integer

        ass = idx_linha
        TextBox2.Text = ass

        Label3.Text = "Janeiro"

        ' Limpa a informação anterior
        Chart1.ChartAreas.Clear()
        Chart1.Series.Clear()

        ' Define nova informação
        Dim chartArea1 As New ChartArea()
        Chart1.ChartAreas.Add(chartArea1)

        Dim series1 As New Series()
        Dim series2 As New Series()

        valor1()
        series1.Points.Add(TextBox1.Text)
        series2.Points.Add(TextBox2.Text)

        series1.IsValueShownAsLabel = True
        series2.IsValueShownAsLabel = True
        series2.AxisLabel = " "

        series1.Name = "Despesas (€)"
        series2.Name = "Nº de despesas"

        chartArea1.Area3DStyle.Enable3D = True

        Chart1.Series.Add(series1)
        Chart1.Series.Add(series2)

        ' Chart1.Location = New System.Drawing.Point(500, 300)
        Chart1.Size = New System.Drawing.Size(500, 500)

só que ele está  a ir buscar os dados todos...

o meu problema é que eu nem estou a conseguir filtrar os dados segundo o ano introduzido na combo box

Posted

Escolher só o mes de Janeiro do ano indicado na Combobox:

  Dim comandosql = "SELECT matricula, valor, data FROM despesas_viatura WHERE MONTH(data)=1 AND YEAR(data)=" & ComboBox1.Text

obrigado.

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.