FILTRAR
Srs Boa Tarde
Estou elaborando um sistema em VBNET de contas a pagar e receber, o cadastro eu já consegui fazer.Tenho um formulário de relatório dessas contas onde eu tenho um combo (Pagar, Pago Receber, Recebida) outro combo (Fornecedores) uma TextBox ( Data Inicial ) e outra TextBox (Data Final ) e uma DataGridView e estou precisando filtrar nessa DataGridView o seguinte, por EX:
Todas as contas a Pagar de um Fornecedor ( x ) no perÃodo de 11/11/1111 até 22/22/2222, e o resultado será mostrado na DataGridView.
Os dados estão gravados no Access 2007 e estou usando Visual Studio 2010, Segue o código que estou usando, e a tela do relatório.
Imports System
Imports System.Data
Imports System.Data.OleDb
Public Class RelaContasCompleto
Inherits System.Windows.Forms.Form
[ô] DataTable que vou carregar e trabalhar...
Dim dt As DataTable
Dim ds As New DataSet
Public conn As OleDbConnection
Public da As OleDbDataAdapter
Public cb As OleDbCommandBuilder
[ô]ABERTURA DO FORMULÃRIO
Private Sub RelaContasCompleto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[ô]CARREGA OS ITENS NO COMBO POSIÇÃO DA CONTA
CmbPosicaoConta.Items.Add([Ô]Pagar[Ô])
CmbPosicaoConta.Items.Add([Ô]Pago[Ô])
CmbPosicaoConta.Items.Add([Ô]Receber[Ô])
CmbPosicaoConta.Items.Add([Ô]Recebida[Ô])
CmbPosicaoConta.Focus()
btnFiltrar.Text = [Ô]Filtrar[Ô]
[ô]FAZ A CONEXÃO COM O BANCO DE DADOS E CARREGA A LISTA DE FORNECEDORES NO COMBO FORNECEDOR
CmbFornecedor.Items.Clear() [ô] Apaga os itens existentes. Previne a duplicação dos mesmos
Dim ligação As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\cadastro.mdb;jet oledb:database password=adm[Ô]
Dim sintaxe As String = [Ô]Select * From Fornecedor where fornecedor<>null order by fornecedor asc[Ô]
Dim conecção As New OleDbConnection(ligação)
Dim command As New OleDbCommand(sintaxe, conecção)
conecção.Open()
Dim leitor As OleDbDataReader = command.ExecuteReader()
If leitor.HasRows Then
While leitor.Read
CmbFornecedor.Items.Add(leitor.Item([Ô]fornecedor[Ô]))
End While
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
ObterDados()
End Sub
[ô]CARREGA TODOS OS DADOS NO FORMÚLÃRIO CONTAS
Private Sub ObterDados()
Dim aut As New Contas()
dt = aut.GetContas()
dgContas.DataSource = dt
dgContas.ReadOnly = True
txtCodigo.DataBindings.Clear()
TxtDataRecebimento.DataBindings.Clear()
TxtDataVencimento.DataBindings.Clear()
TxtValor.DataBindings.Clear()
TxtTipo.DataBindings.Clear()
TxtPosicaoConta.DataBindings.Clear()
TxtDocumento.DataBindings.Clear()
TxtFornecedor.DataBindings.Clear()
txtCodigoBarras.DataBindings.Clear()
Me.txtTotal.Text = [Ô][Ô]
[ô]ALINHA TODAS AS COLUNAS DO DATA GRID VIEW E FORMATA O TAMANHO
For Each columns As DataGridViewColumn In Me.dgContas.Columns
Me.dgContas.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
Next
[ô]ALINHA AS COLUNAS E DIMENCIONA A LARGURA NO MODO INDIVIDUAL E ALTERA O NOME DA COLUNA
[ô]Código
dgContas.Columns(0).HeaderText = [Ô]Código[Ô]
dgContas.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]Data Do Recebimento
dgContas.Columns(1).HeaderText = [Ô]Recebimento[Ô]
dgContas.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(1).Width = 80
[ô][ô]Data Do Vencimento
dgContas.Columns(2).HeaderText = [Ô]Vencimento[Ô]
dgContas.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(2).Width = 80
[ô]Valor
dgContas.Columns(3).HeaderText = [Ô]Valor[Ô]
dgContas.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(3).Width = 120
[ô]Nº Do Documento
dgContas.Columns(4).HeaderText = [Ô]Documento[Ô]
dgContas.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(4).Width = 105
[ô]Tipo
dgContas.Columns(5).HeaderText = [Ô]Tipo[Ô]
dgContas.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(5).Width = 120
[ô]Posição Da conta
dgContas.Columns(6).HeaderText = [Ô]Posição[Ô]
dgContas.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(6).Width = 70
[ô]Novo Vencimento
dgContas.Columns(7).HeaderText = [Ô]Novo Vencimento[Ô]
dgContas.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(7).Width = 80
[ô]Novo Valor
dgContas.Columns(8).HeaderText = [Ô]Novo Valor[Ô]
dgContas.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(8).Width = 120
[ô]Acréscimo
dgContas.Columns(9).HeaderText = [Ô]Acréscimo[Ô]
dgContas.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(9).Width = 120
[ô]Fornecedor
dgContas.Columns(10).HeaderText = [Ô]Fornecedor[Ô]
dgContas.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(10).Width = 200
[ô]Banco
dgContas.Columns(11).HeaderText = [Ô]Banco[Ô]
dgContas.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(11).Width = 150
[ô]Código De Barras
dgContas.Columns(12).HeaderText = [Ô]Código De Barras[Ô]
dgContas.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(12).Width = 150
[ô]Obs
dgContas.Columns(13).HeaderText = [Ô]Obs[Ô]
dgContas.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(13).Width = 150
[ô]CARREGA TODOS OS DADOS NA DATA GRID VIEW E MOSTRA NOS TEXT BOX
txtCodigo.DataBindings.Add([Ô]Text[Ô], dt, [Ô]codigo[Ô])
TxtDataRecebimento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]recebimento[Ô], (Funcoes.OpcaoFormata.ForData))
TxtDataVencimento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]vencimento[Ô], (Funcoes.OpcaoFormata.ForData))
TxtValor.DataBindings.Add([Ô]Text[Ô], dt, [Ô]valor[Ô])
TxtTipo.DataBindings.Add([Ô]Text[Ô], dt, [Ô]tipo[Ô])
TxtPosicaoConta.DataBindings.Add([Ô]Text[Ô], dt, [Ô]posicaoconta[Ô])
TxtDocumento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]documento[Ô])
TxtFornecedor.DataBindings.Add([Ô]Text[Ô], dt, [Ô]fornecedor[Ô])
txtCodigoBarras.DataBindings.Add([Ô]Text[Ô], dt, [Ô]codigobarras[Ô])
[ô]DEFINE A COR DO CABEÇALHO
Dim estilo_cabecalho As New DataGridViewCellStyle
estilo_cabecalho.BackColor = Color.LightYellow
dgContas.Columns(0).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(1).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(2).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(3).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(4).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(5).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(6).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(7).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(8).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(9).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(10).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(11).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(12).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(13).HeaderCell.Style = estilo_cabecalho
[ô] desabilita o estilo visual do cabecalho
dgContas.EnableHeadersVisualStyles = False
[ô]DEFINE A COR DAS LINHAS
For x As Integer = 1 To dgContas.Rows.Count Step 1
If x Mod 2 = 0 Then
dgContas.Rows(x - 1).DefaultCellStyle.BackColor = Color.Gainsboro
Else
dgContas.Rows(x - 1).DefaultCellStyle.BackColor = Color.White
End If
Next
End Sub
End Class
Estou elaborando um sistema em VBNET de contas a pagar e receber, o cadastro eu já consegui fazer.Tenho um formulário de relatório dessas contas onde eu tenho um combo (Pagar, Pago Receber, Recebida) outro combo (Fornecedores) uma TextBox ( Data Inicial ) e outra TextBox (Data Final ) e uma DataGridView e estou precisando filtrar nessa DataGridView o seguinte, por EX:
Todas as contas a Pagar de um Fornecedor ( x ) no perÃodo de 11/11/1111 até 22/22/2222, e o resultado será mostrado na DataGridView.
Os dados estão gravados no Access 2007 e estou usando Visual Studio 2010, Segue o código que estou usando, e a tela do relatório.
Imports System
Imports System.Data
Imports System.Data.OleDb
Public Class RelaContasCompleto
Inherits System.Windows.Forms.Form
[ô] DataTable que vou carregar e trabalhar...
Dim dt As DataTable
Dim ds As New DataSet
Public conn As OleDbConnection
Public da As OleDbDataAdapter
Public cb As OleDbCommandBuilder
[ô]ABERTURA DO FORMULÃRIO
Private Sub RelaContasCompleto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[ô]CARREGA OS ITENS NO COMBO POSIÇÃO DA CONTA
CmbPosicaoConta.Items.Add([Ô]Pagar[Ô])
CmbPosicaoConta.Items.Add([Ô]Pago[Ô])
CmbPosicaoConta.Items.Add([Ô]Receber[Ô])
CmbPosicaoConta.Items.Add([Ô]Recebida[Ô])
CmbPosicaoConta.Focus()
btnFiltrar.Text = [Ô]Filtrar[Ô]
[ô]FAZ A CONEXÃO COM O BANCO DE DADOS E CARREGA A LISTA DE FORNECEDORES NO COMBO FORNECEDOR
CmbFornecedor.Items.Clear() [ô] Apaga os itens existentes. Previne a duplicação dos mesmos
Dim ligação As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\cadastro.mdb;jet oledb:database password=adm[Ô]
Dim sintaxe As String = [Ô]Select * From Fornecedor where fornecedor<>null order by fornecedor asc[Ô]
Dim conecção As New OleDbConnection(ligação)
Dim command As New OleDbCommand(sintaxe, conecção)
conecção.Open()
Dim leitor As OleDbDataReader = command.ExecuteReader()
If leitor.HasRows Then
While leitor.Read
CmbFornecedor.Items.Add(leitor.Item([Ô]fornecedor[Ô]))
End While
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
ObterDados()
End Sub
[ô]CARREGA TODOS OS DADOS NO FORMÚLÃRIO CONTAS
Private Sub ObterDados()
Dim aut As New Contas()
dt = aut.GetContas()
dgContas.DataSource = dt
dgContas.ReadOnly = True
txtCodigo.DataBindings.Clear()
TxtDataRecebimento.DataBindings.Clear()
TxtDataVencimento.DataBindings.Clear()
TxtValor.DataBindings.Clear()
TxtTipo.DataBindings.Clear()
TxtPosicaoConta.DataBindings.Clear()
TxtDocumento.DataBindings.Clear()
TxtFornecedor.DataBindings.Clear()
txtCodigoBarras.DataBindings.Clear()
Me.txtTotal.Text = [Ô][Ô]
[ô]ALINHA TODAS AS COLUNAS DO DATA GRID VIEW E FORMATA O TAMANHO
For Each columns As DataGridViewColumn In Me.dgContas.Columns
Me.dgContas.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
Next
[ô]ALINHA AS COLUNAS E DIMENCIONA A LARGURA NO MODO INDIVIDUAL E ALTERA O NOME DA COLUNA
[ô]Código
dgContas.Columns(0).HeaderText = [Ô]Código[Ô]
dgContas.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]Data Do Recebimento
dgContas.Columns(1).HeaderText = [Ô]Recebimento[Ô]
dgContas.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(1).Width = 80
[ô][ô]Data Do Vencimento
dgContas.Columns(2).HeaderText = [Ô]Vencimento[Ô]
dgContas.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(2).Width = 80
[ô]Valor
dgContas.Columns(3).HeaderText = [Ô]Valor[Ô]
dgContas.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(3).Width = 120
[ô]Nº Do Documento
dgContas.Columns(4).HeaderText = [Ô]Documento[Ô]
dgContas.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(4).Width = 105
[ô]Tipo
dgContas.Columns(5).HeaderText = [Ô]Tipo[Ô]
dgContas.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(5).Width = 120
[ô]Posição Da conta
dgContas.Columns(6).HeaderText = [Ô]Posição[Ô]
dgContas.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(6).Width = 70
[ô]Novo Vencimento
dgContas.Columns(7).HeaderText = [Ô]Novo Vencimento[Ô]
dgContas.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(7).Width = 80
[ô]Novo Valor
dgContas.Columns(8).HeaderText = [Ô]Novo Valor[Ô]
dgContas.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(8).Width = 120
[ô]Acréscimo
dgContas.Columns(9).HeaderText = [Ô]Acréscimo[Ô]
dgContas.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgContas.Columns(9).Width = 120
[ô]Fornecedor
dgContas.Columns(10).HeaderText = [Ô]Fornecedor[Ô]
dgContas.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(10).Width = 200
[ô]Banco
dgContas.Columns(11).HeaderText = [Ô]Banco[Ô]
dgContas.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(11).Width = 150
[ô]Código De Barras
dgContas.Columns(12).HeaderText = [Ô]Código De Barras[Ô]
dgContas.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgContas.Columns(12).Width = 150
[ô]Obs
dgContas.Columns(13).HeaderText = [Ô]Obs[Ô]
dgContas.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
dgContas.Columns(13).Width = 150
[ô]CARREGA TODOS OS DADOS NA DATA GRID VIEW E MOSTRA NOS TEXT BOX
txtCodigo.DataBindings.Add([Ô]Text[Ô], dt, [Ô]codigo[Ô])
TxtDataRecebimento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]recebimento[Ô], (Funcoes.OpcaoFormata.ForData))
TxtDataVencimento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]vencimento[Ô], (Funcoes.OpcaoFormata.ForData))
TxtValor.DataBindings.Add([Ô]Text[Ô], dt, [Ô]valor[Ô])
TxtTipo.DataBindings.Add([Ô]Text[Ô], dt, [Ô]tipo[Ô])
TxtPosicaoConta.DataBindings.Add([Ô]Text[Ô], dt, [Ô]posicaoconta[Ô])
TxtDocumento.DataBindings.Add([Ô]Text[Ô], dt, [Ô]documento[Ô])
TxtFornecedor.DataBindings.Add([Ô]Text[Ô], dt, [Ô]fornecedor[Ô])
txtCodigoBarras.DataBindings.Add([Ô]Text[Ô], dt, [Ô]codigobarras[Ô])
[ô]DEFINE A COR DO CABEÇALHO
Dim estilo_cabecalho As New DataGridViewCellStyle
estilo_cabecalho.BackColor = Color.LightYellow
dgContas.Columns(0).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(1).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(2).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(3).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(4).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(5).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(6).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(7).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(8).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(9).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(10).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(11).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(12).HeaderCell.Style = estilo_cabecalho
dgContas.Columns(13).HeaderCell.Style = estilo_cabecalho
[ô] desabilita o estilo visual do cabecalho
dgContas.EnableHeadersVisualStyles = False
[ô]DEFINE A COR DAS LINHAS
For x As Integer = 1 To dgContas.Rows.Count Step 1
If x Mod 2 = 0 Then
dgContas.Rows(x - 1).DefaultCellStyle.BackColor = Color.Gainsboro
Else
dgContas.Rows(x - 1).DefaultCellStyle.BackColor = Color.White
End If
Next
End Sub
End Class
CRCJ,
Você tem que colocar um botão para atualizar baseado na range (faixa) de datas que foram digitados nos campos de datas inicial e data final.
Este botão irá fazer o seguinte:
- Limpar a grade;
- Disparar novamente a query de consulta que você chamou de [Ô]sintaxe[Ô] (está no seu código acima) mas modificada para ter dentro da cláusula [Ô]WHERE[Ô] outra condição (COM [Ô]AND[Ô]) isolando as datas mÃnima e data máxima que você quer dentro da grid;
Seria algo deste tipo:
Dim sintaxe As String = [Ô]Select * [Ô] & _
[Ô]From Fornecedor [Ô] & _
[Ô]where fornecedor<>null AND [Ô] & _
[Ô]Data Inicial >= [Ô] & dtaINICIAL & _
[Ô]Data Final <= [Ô] & dtaFinal & _
[Ô]order by fornecedor asc[Ô]
- Tenta fazer, se você não conseguir me avisa que te ajudo.
Dica: Tenta NÃO usar a [Ô]*[Ô], descreva campo a campo que você realmente vai precisar... mesmo que seja todos.
[][ô]s,
Tunusat.
Você tem que colocar um botão para atualizar baseado na range (faixa) de datas que foram digitados nos campos de datas inicial e data final.
Este botão irá fazer o seguinte:
- Limpar a grade;
- Disparar novamente a query de consulta que você chamou de [Ô]sintaxe[Ô] (está no seu código acima) mas modificada para ter dentro da cláusula [Ô]WHERE[Ô] outra condição (COM [Ô]AND[Ô]) isolando as datas mÃnima e data máxima que você quer dentro da grid;
Seria algo deste tipo:
Dim sintaxe As String = [Ô]Select * [Ô] & _
[Ô]From Fornecedor [Ô] & _
[Ô]where fornecedor<>null AND [Ô] & _
[Ô]Data Inicial >= [Ô] & dtaINICIAL & _
[Ô]Data Final <= [Ô] & dtaFinal & _
[Ô]order by fornecedor asc[Ô]
- Tenta fazer, se você não conseguir me avisa que te ajudo.
Dica: Tenta NÃO usar a [Ô]*[Ô], descreva campo a campo que você realmente vai precisar... mesmo que seja todos.
[][ô]s,
Tunusat.
Tunusat., bom dia
Na realidade eu não queria colocar um botão, o que eu queria é quando escolho no combo posição da conta (Pagar, Pago...) no combo fornecedor (AAAAAAAA.....) e digitase a data inicial e a data final e apertar a tecla enter, já me daria o filtro na Grid (isso eu sei fazer em VB) , mas tudo bem se não der, não tem problema. Agora vou precisar da sua ajuda, como sou novo em VBNET, não sei como e onde colocar o que você me mandou, pode me ajudar.
Na realidade eu não queria colocar um botão, o que eu queria é quando escolho no combo posição da conta (Pagar, Pago...) no combo fornecedor (AAAAAAAA.....) e digitase a data inicial e a data final e apertar a tecla enter, já me daria o filtro na Grid (isso eu sei fazer em VB) , mas tudo bem se não der, não tem problema. Agora vou precisar da sua ajuda, como sou novo em VBNET, não sei como e onde colocar o que você me mandou, pode me ajudar.
CRCJ,
Não tem problema, coloque o tratamento no evento [Ô]lost focus[Ô] do campo da segunda data, por exemplo.
[][ô]s,
Tunusat.
Não tem problema, coloque o tratamento no evento [Ô]lost focus[Ô] do campo da segunda data, por exemplo.
[][ô]s,
Tunusat.
Tunusat, boa tarde
Antes de pedir ajuda aqui, eu tinha feito um filtro com um botão para filtrar, ( segue abaixo o código ), só que ele me filtra todas as contas para pagar ( por exemplo ), sem as datas inciais e finais. Desculpe a minha incapacidade de entender o que você me mandou, não vou mentir, não entedi nada. Se fosse possivel me ajudar com o código completo, ficaria muito grato.
Segue o código que fiz anteriormente:
[ô]FILTRO NO COMBO POSIÇÃO DA CONTA
Private Sub btnFiltrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click
If btnFiltrar.Text = [Ô]Filtrar[Ô] Then
If Trim(CmbPosicaoConta.Text) = [Ô][Ô] Then
If MsgBox([Ô]VOÇE DEVE ESCOLHER UMA POSIÇÃO DA CONTA[Ô], MsgBoxStyle.Information, [Ô]POSIÇÃO DA CONTA[Ô]) Then
CmbPosicaoConta.Focus()
Exit Sub
End If
End If
da = New OleDbDataAdapter
ds = New DataSet
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\cadastro.mdb;jet oledb:database password=adm[Ô])
da = New OleDbDataAdapter([Ô]SELECT * FROM Contas WHERE posicaoconta LIKE [ô][Ô] & CmbPosicaoConta.Text & [Ô]%[ô] [Ô], conn)
cb = New OleDbCommandBuilder(da)
ObterDados()
da.Fill(ds, [Ô]Cadastro[Ô])
dgContas.DataSource = ds.Tables(0)
btnFiltrar.Text = [Ô]Todos[Ô]
Else
btnFiltrar.Text = [Ô]Filtrar[Ô]
ObterDados()
Dispose()
Dim f As New RelaContasCompleto
f.Show()
End If
[ô]SOMA TOTOS OS VALORES DA COLUNA VALOR NO DATA GRID VIEW
Try
Dim SomaColuna As Double
For Each coluna As DataGridViewRow In dgContas.Rows
If Me.dgContas.Rows(coluna.Index).DefaultCellStyle.BackColor <> Color.Silver Then
SomaColuna = SomaColuna + coluna.Cells(3).Value
End If
Next
txtTotal.Text = Format(Convert.ToDouble(SomaColuna), [Ô]#,##0.00[Ô])
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
Antes de pedir ajuda aqui, eu tinha feito um filtro com um botão para filtrar, ( segue abaixo o código ), só que ele me filtra todas as contas para pagar ( por exemplo ), sem as datas inciais e finais. Desculpe a minha incapacidade de entender o que você me mandou, não vou mentir, não entedi nada. Se fosse possivel me ajudar com o código completo, ficaria muito grato.
Segue o código que fiz anteriormente:
[ô]FILTRO NO COMBO POSIÇÃO DA CONTA
Private Sub btnFiltrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click
If btnFiltrar.Text = [Ô]Filtrar[Ô] Then
If Trim(CmbPosicaoConta.Text) = [Ô][Ô] Then
If MsgBox([Ô]VOÇE DEVE ESCOLHER UMA POSIÇÃO DA CONTA[Ô], MsgBoxStyle.Information, [Ô]POSIÇÃO DA CONTA[Ô]) Then
CmbPosicaoConta.Focus()
Exit Sub
End If
End If
da = New OleDbDataAdapter
ds = New DataSet
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\cadastro.mdb;jet oledb:database password=adm[Ô])
da = New OleDbDataAdapter([Ô]SELECT * FROM Contas WHERE posicaoconta LIKE [ô][Ô] & CmbPosicaoConta.Text & [Ô]%[ô] [Ô], conn)
cb = New OleDbCommandBuilder(da)
ObterDados()
da.Fill(ds, [Ô]Cadastro[Ô])
dgContas.DataSource = ds.Tables(0)
btnFiltrar.Text = [Ô]Todos[Ô]
Else
btnFiltrar.Text = [Ô]Filtrar[Ô]
ObterDados()
Dispose()
Dim f As New RelaContasCompleto
f.Show()
End If
[ô]SOMA TOTOS OS VALORES DA COLUNA VALOR NO DATA GRID VIEW
Try
Dim SomaColuna As Double
For Each coluna As DataGridViewRow In dgContas.Rows
If Me.dgContas.Rows(coluna.Index).DefaultCellStyle.BackColor <> Color.Silver Then
SomaColuna = SomaColuna + coluna.Cells(3).Value
End If
Next
txtTotal.Text = Format(Convert.ToDouble(SomaColuna), [Ô]#,##0.00[Ô])
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
CRCJ,
Basicamente o código é muito parecido, podendo até ser reutilizado ou modificado o código acima.
Seus campos data são do tipo [Ô]DateTimePicker[Ô]? é legal você usar este tipo de objeto. Está na sua ToolBox.
Você acrescenta dois [Ô]IFs[Ô] para verificar se foi preenchido o campo DateTimePicker. Não esqueça de declarar o [Ô]Imports[Ô] Por exemplo rapidamente...:
Sacou? Você [Ô]monta[Ô] sua query antes de dispará-la dentro do seu OleDbDataAdapter.
Depois você pode substituir aqui:
Use uma [Ô]StringBuilder[Ô] para construir isto.
Veja mais sobre String Buider em:
=======================================
VB.NET StringBuilder Examples
http://www.dotnetperls.com/stringbuilder-vbnet
=======================================
StringBuilder : tratando Strings de modo mais eficiente.
http://www.macoratti.net/vbn_strb.htm
=======================================
Usando a classe StringBuilder no .NET Framework
http://msdn.microsoft.com/pt-br/library/2839d5h5(v=vs.110).aspx
=======================================
Veja se você consegue.
[][ô]s,
Tunusat.
Basicamente o código é muito parecido, podendo até ser reutilizado ou modificado o código acima.
Seus campos data são do tipo [Ô]DateTimePicker[Ô]? é legal você usar este tipo de objeto. Está na sua ToolBox.
Você acrescenta dois [Ô]IFs[Ô] para verificar se foi preenchido o campo DateTimePicker. Não esqueça de declarar o [Ô]Imports[Ô] Por exemplo rapidamente...:
Imports System.Text
Dim strQuery As New StringBuilder
If Not DateTimePicker1.Value >= Now Then
strQuery.Append([Ô] AND dtInicial >= [Ô])
strQuery.Append(DateTimePicker1)
End If
If Not Date.Compare(Now, DateTimePicker1.Value) Then
strQuery.AppendFormat(([Ô]AND dtInicial >= {0}[Ô] & Environment.NewLine), DateTimePicker1.Value)
End If
Sacou? Você [Ô]monta[Ô] sua query antes de dispará-la dentro do seu OleDbDataAdapter.
Depois você pode substituir aqui:
da = New OleDbDataAdapter(strQuery.ToString(), conn)
Use uma [Ô]StringBuilder[Ô] para construir isto.
Veja mais sobre String Buider em:
=======================================
VB.NET StringBuilder Examples
http://www.dotnetperls.com/stringbuilder-vbnet
=======================================
StringBuilder : tratando Strings de modo mais eficiente.
http://www.macoratti.net/vbn_strb.htm
=======================================
Usando a classe StringBuilder no .NET Framework
http://msdn.microsoft.com/pt-br/library/2839d5h5(v=vs.110).aspx
=======================================
Veja se você consegue.
[][ô]s,
Tunusat.
Tunusat., boa tarde
Não consegui fazer isso, tentei de todas as maneiras, mas não funcionou. Outra coisa dtInicial ?, não entendi, se eu tenho DateTimePicker1
Não consegui fazer isso, tentei de todas as maneiras, mas não funcionou. Outra coisa dtInicial ?, não entendi, se eu tenho DateTimePicker1
CRCJ,
[Ô]dtInicial[Ô] é para você trocar com o nome de seu campo no banco de dados.
Você coloca mais uma restrição na sua cláusula WHERE, dai você associa o nome do seu campo no banco de dados com sua datetimepicker.
Dá uma olhada neste artigo:
==================================================================
Trabalhando com datas no SQL Server
http://imasters.com.br/artigo/229/sql-server/trabalhando-com-datas-no-sql-server/#
==================================================================
Com o BETWEEN você pode colocar duas datas também, veja o exemplo:
http://msdn.microsoft.com/pt-br/library/ms187922.aspx
[][ô]s,
Tunusat.
[Ô]dtInicial[Ô] é para você trocar com o nome de seu campo no banco de dados.
Você coloca mais uma restrição na sua cláusula WHERE, dai você associa o nome do seu campo no banco de dados com sua datetimepicker.
Dá uma olhada neste artigo:
==================================================================
Trabalhando com datas no SQL Server
http://imasters.com.br/artigo/229/sql-server/trabalhando-com-datas-no-sql-server/#
==================================================================
Com o BETWEEN você pode colocar duas datas também, veja o exemplo:
http://msdn.microsoft.com/pt-br/library/ms187922.aspx
USE AdventureWorks2012;
GO
SELECT BusinessEntityID, RateChangeDate
FROM HumanResources.EmployeePayHistory
WHERE RateChangeDate BETWEEN [ô]20011212[ô] AND [ô]20020105[ô];
[][ô]s,
Tunusat.
Tópico encerrado , respostas não são mais permitidas