Popular Grid VB6

Asked

Viewed 864 times

0

I have a form that receives user information and would like to display them on a datagrid. I already have Datasource which is a Query that is assigned to a String variable called SQL. She returns the information I need and would like you to help me make the grid populated.

Dim rsEstoque As ADODB.Recordset
Dim rsProduto As ADODB.Recordset
Dim vsSql As String
Dim CodEstoque As String
Dim SQL As String
Dim DataFinal As Date
Dim DataInicio As Date

Private Sub AtribuiVal()
mesInicio = cbMeses
mesFinal = cboMeses1

End Sub



Private Sub cmdPrint_Click()

    If txtAnoInicio.Text = "" Then
        MsgBox "O Campo 'Ano' no Periodo Inicial está vazio", vbExclamation
        txtAnoInicio.SetFocus
        Exit Sub
    End If

    If txtAnoInicio.Text < 2006 Then
        MsgBox "O Campo 'Ano' no Periodo Inicial não pode ser menor que 2006", vbExclamation
        txtAnoInicio.SetFocus
        Exit Sub
    End If

    If frmMovimento.txtAnoFinal.Text = "" Then
        MsgBox "O Campo 'Ano' no Periodo Final está vazio", vbExclamation
        txtAnoFinal.SetFocus
        Exit Sub
    End If

      If txtAnoFinal.Text < 2006 Then
        MsgBox "O Campo 'Ano' no Periodo Final não pode ser menor que 2006", vbExclamation
        txtAnoFinal.SetFocus
        Exit Sub
    End If

    If txtAnoInicio.Text > txtAnoFinal.Text Then
        MsgBox "O Campo 'Ano' no Periodo Inicial não pode ser maior que o Campo 'Ano' do Periodo Final", vbExclamation
        Exit Sub
    End If


    If txtAnoInicio.Text = txtAnoFinal.Text Then
       If cbMeses.ListIndex > cboMeses1.ListIndex Then
            MsgBox "O Mês no Periodo Inicial não pode ser maior que o Mês do Periodo Final no mesmo Ano", vbExclamation
            Exit Sub
      End If
    End If


    If frmMovimento.dcEstoque.BoundText = "" Then
        MsgBox "Selecione algum Estoque", vbExclamation
        frmMovimento.dcEstoque.SetFocus
        Exit Sub
    End If

    If frmMovimento.dtProdutos.BoundText = "" Then
        MsgBox "Selecione algum Produto", vbExclamation
        frmMovimento.dtProdutos.SetFocus
        Exit Sub
    End If

   'Data Inicial
    Dim Index As Integer
    Index = frmMovimento.cbMeses.ListIndex ' pego o valor selecionado do combobox
    Dim ValorcbMeses As String



    'Case para pegar index do Combobox e passar uma string de data
    Select Case Index
        Case 0
         ValorcbMeses = "-01-31 00:00:00"
        Case 1
         ValorcbMeses = "-02-01 00:00:00"
        Case 2
         ValorcbMeses = "-03-01 00:00:00"
        Case 3
        ValorcbMeses = "-04-01 00:00:00"
        Case 4
        ValorcbMeses = "-05-01 00:00:00"
        Case 5
        ValorcbMeses = "-06-01 00:00:00"
        Case 6
        ValorcbMeses = "-07-01 00:00:00"
        Case 7
        ValorcbMeses = "-08-01 00:00:00"
        Case 8
        ValorcbMeses = "-09-01 00:00:00"
        Case 9
        ValorcbMeses = "-10-01 00:00:00"
        Case 10
        ValorcbMeses = "-11-01 00:00:00"
        Case 11
        ValorcbMeses = "-12-01 00:00:00"
   End Select


   DataInicio = frmMovimento.txtAnoInicio.Text + ValorcbMeses

  'Data Final
    Dim Index1 As Integer
    Index1 = frmMovimento.cboMeses1.ListIndex ' pego o valor selecionado do combobox
    Dim ValorcbMeses1 As String

     Select Case Index1
        Case 0
         ValorcbMeses1 = "-01-31 00:00:00"
        Case 1
         ValorcbMeses1 = "-02-28 00:00:00"
        Case 2
        ValorcbMeses1 = "-03-31 00:00:00"
        Case 3
        ValorcbMeses1 = "-04-30 00:00:00"
        Case 4
        ValorcbMeses1 = "-05-31 00:00:00"
        Case 5
        ValorcbMeses1 = "-06-01 00:00:00"
        Case 6
        ValorcbMeses1 = "-07-31 00:00:00"
        Case 7
        ValorcbMeses1 = "-08-31 00:00:00"
        Case 8
        ValorcbMeses1 = "-09-30 00:00:00"
        Case 9
        ValorcbMeses1 = "-10-31 00:00:00"
        Case 10
        ValorcbMeses1 = "-11-30 00:00:00"
        Case 11
        ValorcbMeses1 = "-12-31 00:00:00"
   End Select


   DataFinal = frmMovimento.txtAnoFinal.Text + ValorcbMeses1

   'Query SQL

SQL = " ;WITH CTE AS (SELECT ROW_NUMBER() OVER (ORDER BY X.NF) as ID, X.* FROM " & _
    " (SELECT P.Descricao AS Descricao, ESI.Id_Doc AS NF, ESI.Cod_Estoque AS Cod_Estoque, ESI.Cod_Produto AS Cod_Produto, ESI.Cod_Empresa AS Cod_Empresa, S.Dta_Entrada  AS Data, ESI.Qtde AS Qtde, ESI.V_Unitario AS V_Unitario, ESI.V_Total AS V_Total " & _
    "  FROM dbo.Entrada_Itens AS ESI INNER JOIN dbo.Produtos AS P ON ESI.Cod_Empresa = P.Cod_Empresa AND ESI.Cod_Estoque = P.Cod_Estoque AND ESI.Cod_Produto = P.Cod_Produto INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc " & _
    "   WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between  '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "') " & _
    "   UNION " & _
    "   SELECT P.Descricao AS Descricao, ESI.Id_Doc AS NF, ESI.Cod_Estoque AS Cod_Estoque, ESI.Cod_Produto AS Cod_Produto, ESI.Cod_Empresa AS Cod_Empresa, S.Dta_Entrada  AS Data, -ESI.Qtde AS Qtde, ESI.V_Unitario AS V_Unitario, -ESI.V_Total AS V_Total " & _
    "   FROM dbo.Saida_Itens AS ESI INNER JOIN dbo.Produtos AS P ON ESI.Cod_Empresa = P.Cod_Empresa AND ESI.Cod_Estoque = P.Cod_Estoque AND ESI.Cod_Produto = P.Cod_Produto INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc " & _
    "   WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between  '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "') " & _
    "  ) AS X ) " & _
" SELECT *, (SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')) AS V_SE, " & _
          " (SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "'))*(V_Unitario) AS V_SEV, " & _
          " (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')) AS V_SS, " & _
          " (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "'))*(V_Unitario) AS V_SSV, " & _
          " ((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND  (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (S.Dta_Entrada < '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "')) - (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada < '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "'))) AS V_DQ, " & _
          " ((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND  (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (S.Dta_Entrada < '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "')) - (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada < '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "')))*(V_Unitario) AS V_DV, " & _
          " Final_Qtde = (SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND  (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')) -(SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND(ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND(S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')), " & _
          " (SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "'))-(SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')) AS Estoque, " & _
          " V_Acum = (SELECT SUM(V_Total) FROM CTE WHERE ID <= C.ID), " & _
          " QtdeEntrada = (SELECT sum (dbo.Entrada_Itens.Qtde) AS Qtde_entrada FROM dbo.Produtos AS P INNER JOIN dbo.Entrada_Itens ON P.Cod_Empresa = dbo.Entrada_Itens.Cod_Empresa AND P.Cod_Estoque = dbo.Entrada_Itens.Cod_Estoque AND P.Cod_Produto = dbo.Entrada_Itens.Cod_Produto INNER JOIN dbo.Entrada ON dbo.Entrada_Itens.Cod_Empresa = dbo.Entrada.Cod_Empresa AND dbo.Entrada_Itens.Id_Doc = dbo.Entrada.Id_Doc WHERE (p.Cod_Empresa = '" & Sys.Empresa & "') AND (P.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (P.Cod_Produto = '" & dtProdutos.BoundText & "') AND (Entrada.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')), " & _
          " ((SELECT sum (dbo.Entrada_Itens.Qtde) AS Qtde_entrada FROM dbo.Produtos AS P INNER JOIN dbo.Entrada_Itens ON P.Cod_Empresa = dbo.Entrada_Itens.Cod_Empresa AND P.Cod_Estoque = dbo.Entrada_Itens.Cod_Estoque AND P.Cod_Produto = dbo.Entrada_Itens.Cod_Produto INNER JOIN dbo.Entrada ON dbo.Entrada_Itens.Cod_Empresa = dbo.Entrada.Cod_Empresa AND dbo.Entrada_Itens.Id_Doc = dbo.Entrada.Id_Doc WHERE (p.Cod_Empresa = '" & Sys.Empresa & "') AND (P.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (P.Cod_Produto = '" & dtProdutos.BoundText & "') AND (Entrada.Dta_Entrada Between '" & Format(DataInicio, "yyyy-mm-dd 00:00:00") & "' AND '" & Format(DataFinal, "yyyy-mm-dd 00:00:00") & "')) * (V_Unitario)) AS EntVal" & _
          " FROM CTE AS C " & _
          "ORDER BY NF "




Dim MesInicial As String
Dim mesFinal As String
Dim Texto As String
Texto = " a "
MesInicial = frmMovimento.cbMeses.Text + "/" + frmMovimento.txtAnoInicio.Text
mesFinal = frmMovimento.cboMeses1.Text + "/" + frmMovimento.txtAnoFinal.Text
Dim Desc_meses As String
Desc_meses = MesInicial + Texto + mesFinal

Sys.Desc_Estoque = frmMovimento.dcEstoque.Text
Sys.Desc_Periodo = Desc_meses

End Sub


Private Sub dcEstoque_LostFocus()
    frmMovimento.dtProdutos.BoundText = ""
    LoaddtProtudos
End Sub

Private Sub Form_Load()
    frmMovimento.txtAnoInicio.Text = Sys.Ano
    frmMovimento.txtAnoFinal.Text = Sys.Ano
    frmMovimento.SpinButton1.Value = Sys.Ano
    frmMovimento.SpinButton2.Value = Sys.Ano

    LoadcbMeses1
    LoadCbMeses
    LoaddcEstoque

    Set myRst = New ADODB.Recordset


End Sub
Private Sub LoaddtProtudos()
    Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb
    Dim Cod_Estoque As String

    'Cod_Estoque = cbEstoque.ItemData(frmMovimento.cbEstoque.ListIndex)
     Cod_Estoque = dcEstoque.BoundText
    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT Cod_Empresa, Cod_Estoque, Cod_Produto, PartNumber, Descricao, Cod_Categoria, Cod_Marca, Cod_Tipo, Dta_Atualizado, sta_ativado From Produtos WHERE (Cod_Empresa = '" & Sys.Empresa & "') AND (Cod_Estoque = '" & Cod_Estoque & "') AND (sta_ativado = 1) ORDER BY Descricao"

    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...
    dtProdutos.DataField = "Produtos"    ' the bound field in master table
    dtProdutos.BoundColumn = "Cod_Produto"         ' the bound field in detail table
    dtProdutos.ListField = "Descricao"  ' the display field in detail table
    Set dtProdutos.RowSource = rs ' the detail table
   'Set dtProdutos.DataSource = rsOrder   ' the master table

End Sub
'Preemcher combobox com um recordset
 Private Sub LoadcbProdutos()
    Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb
    Dim Cod_Estoque As String

    Cod_Estoque = cbEstoque.ItemData(frmMovimento.cbEstoque.ListIndex)

    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT Cod_Empresa, Cod_Estoque, Cod_Produto, PartNumber, Descricao, Cod_Categoria, Cod_Marca, Cod_Tipo, Dta_Atualizado, sta_ativado From Produtos WHERE (Cod_Empresa = '" & Sys.Empresa & "') AND (Cod_Estoque = '0' + '" & Cod_Estoque & "') AND (sta_ativado = 1) ORDER BY Descricao"

    Caminho = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\database.mdb" & ";" '--->Define o caminho da base de dados(esta forma serve para dar acesso à base de dados esteje ela em que directoria estiver)

    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...
    While Not rs.EOF '--->enquanto não chegar ao fim do recordset (tradução)
    cbProduto.AddItem rs!descricao '--->Adicionar ao combobox os valores
    cbProduto.ItemData(frmMovimento.cbProduto.NewIndex) = rs!Cod_Produto
    rs.MoveNext '--->mover para o proximo recordset
    Wend '--->fim
End Sub
Private Sub LoaddcEstoque()
 Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb


    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT Cod_Empresa, Cod_Estoque, Descricao FROM Tipo_Estoque WHERE Cod_Empresa = '" & Sys.Empresa & "' ORDER BY Descricao"


    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...
    dcEstoque.DataField = "Tipo_Estoque"    ' the bound field in master table
    dcEstoque.BoundColumn = "Cod_Estoque"         ' the bound field in detail table
    dcEstoque.ListField = "Descricao"  ' the display field in detail table
    Set dcEstoque.RowSource = rs ' the detail table

End Sub

'Popular ComboBox usando recordset cboMeses
Private Sub LoadCbMeses()
    Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb


    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT  Cod_Mes, Nom_Mes, Abreviacao FROM Mes ORDER BY Cod_Mes"

    Caminho = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\database.mdb" & ";" '--->Define o caminho da base de dados(esta forma serve para dar acesso à base de dados esteje ela em que directoria estiver)

    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...
    While Not rs.EOF '--->enquanto não chegar ao fim do recordset (tradução)
    cbMeses.AddItem rs!Nom_Mes '--->Adicionar ao combobox os valores
    rs.MoveNext '--->mover para o proximo recordset
    Wend '--->fim
    frmMovimento.cbMeses.ListIndex = 0

End Sub

'Popular ComboBox cboMeses1
Private Sub LoadcbMeses1()
    Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb


    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT  Cod_Mes, Nom_Mes, Abreviacao FROM Mes ORDER BY Cod_Mes"

    Caminho = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\database.mdb" & ";" '--->Define o caminho da base de dados(esta forma serve para dar acesso à base de dados esteje ela em que directoria estiver)

    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...
    While Not rs.EOF '--->enquanto não chegar ao fim do recordset (tradução)
    cboMeses1.AddItem rs!Nom_Mes '--->Adicionar ao combobox os valores
    rs.MoveNext '--->mover para o proximo recordset
    Wend '--->fim
    frmMovimento.cboMeses1.ListIndex = 0

End Sub
'Preenchendo combobox sem acesos ao banco de dados
Private Sub LoadCombos()

    frmMovimento.cboMeses1.AddItem "Janeiro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 1

    frmMovimento.cboMeses1.AddItem "Fevereiro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 2

    frmMovimento.cboMeses1.AddItem "Março"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 3

    frmMovimento.cboMeses1.AddItem "Abril"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 4

    frmMovimento.cboMeses1.AddItem "Maio"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 5

    frmMovimento.cboMeses1.AddItem "Junho"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 6

        frmMovimento.cboMeses1.AddItem "Julho"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 7

    frmMovimento.cboMeses1.AddItem "Agosto"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 8

    frmMovimento.cboMeses1.AddItem "Setembro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 9

        frmMovimento.cboMeses1.AddItem "Outubro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 10

    frmMovimento.cboMeses1.AddItem "Novembro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 11

    frmMovimento.cboMeses1.AddItem "Dezembro"
    frmMovimento.cboMeses1.ItemData(frmMovimento.cboMeses1.NewIndex) = 12


    frmMovimento.cboMeses1.ListIndex = 0

End Sub

Private Sub SpinButton1_Change()
'Muda os valores  nos textbox refrente ao ano
 frmMovimento.txtAnoInicio = frmMovimento.SpinButton1.Value
End Sub

Private Sub SpinButton2_Change()
    frmMovimento.txtAnoFinal = frmMovimento.SpinButton2.Value
End Sub

` Form VB6

1 answer

1

If it is only to display the data and not requiring grid editing, I suggest using the Listview component. The code for popular Listview would look like this:

    lvwItens.ListItems.Clear

    While Not rsProduto.EOF

        Set lstItem = lvwItens.ListItems.Add(, , "")

        lstItem.SubItems(1) = rsProduto("ProdutoDescricao")
        lstItem.SubItems(2) = rsProduto("ProdutoCodigo")
        lstItem.SubItems(3) = rsProduto("ProdutoUnidade")
        rs.MoveNext
    Wend

If there is a lot of data that should be presented (many lines), the idella is to make the Listview component invisible, popular the data as shown above and only then display the Listview component again.

Updated

After adding the Listview component to the form, do the following:

In the Form_load event of your form, you create the Listview columns: Note: lvwItens is the Listview name you have configured in the component properties

With lvwItens.ColumnHeaders
    .Add , , "Código", 1000, 1
    .Add , , "Produto/Serviço", 3000
    .Add , , "Un.", 500
End With

Listview now has 3 columns, the first with size 1000, the second with size 3000 and the third with size 500. The descriptions "Code", "Product/Service" and "Un." are the information that will be shown in the header.

After creating the columns, this would be the population code:

Private Sub LoadLvwProdutos()
    Dim rs As Recordset '--->dá o nome de rs ao recordset
    Dim Caminho As String '--->esta variavel(caminho) vai ser utilizada para definir o caminho da base de dados
    Dim SQL As String '--->esta variavel(sql) serve para utilizar o código em sql no vb

    Set rs = New Recordset '--->define rs como um recordset
    '--->Código SQL
    SQL = "SELECT Cod_Empresa, Cod_Estoque, Cod_Produto, PartNumber, Descricao, Cod_Categoria, Cod_Marca, Cod_Tipo, Dta_Atualizado, sta_ativado From Produtos WHERE (Cod_Empresa = '" & Sys.Empresa & "') AND (Cod_Estoque = '" & Cod_Estoque & "') AND (sta_ativado = 1) ORDER BY Descricao"

    rs.Open SQL, CN, adOpenStatic, adLockOptimistic '--->Abre o recordset, o caminho,etc...


    lvwItens.ListItems.Clear

    While Not rsProduto.EOF

        Set lstItem = lvwItens.ListItems.Add(, , "")

        lstItem.SubItems(1) = rsProduto("Cod_Produto")
        lstItem.SubItems(2) = rsProduto("Descricao")
        lstItem.SubItems(3) = rsProduto("Unidade")
        rs.MoveNext
    Wend


End Sub

I used part of your code as an example, don’t forget to make the appropriate adaptations.

  • Friend, thanks for the tip. I did not understand the listview. I need to display in the grid 7 columns and populate them according to the Query I showed above. i can do this with listview. Sorry but could you help me with one more example? Thanks

Browser other questions tagged

You are not signed in. Login or sign up in order to post.