Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kdhlinha

VB - MSFlexGrid!!!!

Recommended Posts

E ai galera beleza??Eu to criando um programinha onde no meu formDefault eu quero mostrar todos os pedidos pendentes que eu cadastrei num outro form, mas pra isso eu li que preciso utilizar o MSFlexGrid mas acontece que eu nunca mechi nele e nem sei como colocar cada coisa no seu devido lugar!!!Tipo, no db eu tenho a tabela com as seguintes opsoes, data - pedido - fornecedor.Como eu inciro a tabela nele??Agradeceria muito??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas pra usas o DataGrid são os mesmos codigos que se uso no FlexGrid?????Se não for você sabe me dizer como eu usso sendo que eu to usando uma DB ACCESS 97???????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas pra usas o DataGrid são os mesmos codigos que se uso no FlexGrid?????Se não for você sabe me dizer como eu usso sendo que eu to usando uma DB ACCESS 97???????

Faz um tempinho que não mexo com isso, eu quis dizer DBGrid e não DataGrid, esse eu vi no link que te passei. De qualquer forma fiz um teste com o MSFlexGrid aqui e deu certo.Supondo que tenho uma tabela de nome “Tabela”, vou usar 5 campos, o MSFlexGrid de nome Flex, e uma variável, “Linha” que será incrementada ao final de cada linha preenchida.
Flex.Rows = Tabela.RecordCount + 1 'Objeto MSFexGrid com o mesmo número de linhas da tabela+1 para o cabeçalhoFlex.FixedRows = 1 '1 linha fixa para o cabeçalhoFlex.Cols = 5 'número de colunas = ao número de campos que vai usar     Flex.TextMatrix(0, 1) = Tabela.Fields("Nome”)   'Coloca o Label no cabeçalho das colunas Flex.TextMatrix(0, 1) = Tabela.Fields("Endereço”) Flex.TextMatrix(0, 2) = Tabela.Fields("Telefones”) Flex.TextMatrix(0, 3) = Tabela.Fields("Nascimento”) Flex.TextMatrix(0, 4) = Tabela.Fields("CPF”)         Linha = 1 ‘inicia a variável em 1 pra primeira linha     While Tabela.EOF = False ‘Enquanto não chegar ao fim da tabela....        Flex.TextMatrix(Linha, 0) = Tabela.Fields("Nome”) ‘....Coloca os dados  no FlexGrid        Flex.TextMatrix(Linha, 1) = Tabela.Fields("Endereço”)        Flex.TextMatrix(Linha, 2) = Tabela.Fields("Telefones”)        Flex.TextMatrix(Linha, 3) = Tabela.Fields("Nascimento”)        Flex.TextMatrix(Linha, 4) = Tabela.Fields("CPF”)        Linha = Linha + 1 ‘incrementa a variável Linha em 1         Tabela.MoveNext ‘move para o próximo registro Wend ‘finaliza o While

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu testei ele mas da um erro!!Run-time erro '424'Object RequiredPra essa linhaFlex.Rows = Produto.RecordCount + 1 'Objeto MSFexGrid com o mesmo número de linhas da tabela+1 para o cabeçalhovocê saberia me dizer qual eh o erro!!!! Eu acho que tenho que incluir um componente mas eu não sei qual eh!!!você pode me ajudar????AGRADECERIA MUITO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu testei ele mas da um erro!!

 

Run-time erro '424'

 

Object Required

 

Pra essa linha

 

Flex.Rows = Produto.RecordCount + 1 'Objeto MSFexGrid com o mesmo número de linhas da tabela+1 para o cabeçalho

 

você saberia me dizer qual eh o erro!!!! Eu acho que tenho que incluir um componente mas eu não sei qual eh!!!

 

 

você pode me ajudar????

 

AGRADECERIA MUITO

você setou a tabela do banco de dados?

Set Produto = [banco de Dados].OpenRecordSet ([nome da tabela], [Type])

Isso tem que ser feito antes de tentar usar propriedades da tabela, como o RecordCount

Outra coisa, aqui dá um pequeno erro, quando abro a tabela ele não conta todos os registros, tenho que mandar pro último e voltar pro primeiro antes de pedir o RecordCount, ficaria algo assim

Set Produto = [Banco de Dados].OpenRecordSet ([nome da tabela], [Type])Produto.MoveLastProduto.MoveFirst
Fazendo isso você pode verificar o RecordCount da tabela que deverá funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja como esta meu codigo!!!

 

Eu criei o banco de dados com nome BancoDeDados e minha tabela com nome Produtos!!!!!

 

Onde esta meu erro????????????

 

Option Explicit    Dim BancoDeDados As Database    Dim Produtos As RecordsetPrivate Sub Form_Load()    Set Produtos = BancoDeDados.OpenRecordset("Produtos", dbOpenTable)    Produtos.MoveLast    Produtos.MoveFirstEnd SubPrivate Sub Flex_Click()    Flex.Rows = Produtos.RecordCount + 1 'Objeto MSFexGrid com o mesmo número de linhas da tabela+1 para o cabeçalho    Flex.FixedRows = 1 '1 linha fixa para o cabeçalho    Flex.Cols = 5 'número de colunas = ao número de campos que vai usar           Flex.TextMatrix(0, 1) = Produtos.Fields("Código")   'Coloca o Label no cabeçalho das colunas    Flex.TextMatrix(0, 2) = Produtos.Fields("Produto")    Flex.TextMatrix(0, 3) = Produtos.Fields("ValrVenda")    Flex.TextMatrix(0, 4) = Produtos.Fields("Obs")       Linha = 1 'inicia a variável em 1 pra primeira linha   While Produtos.EOF = False 'Enquanto não chegar ao fim da tabela....       Flex.TextMatrix(Linha, 1) = Produtos.Fields("Código") '....Coloca os dados  no FlexGrid       Flex.TextMatrix(Linha, 2) = Produtos.Fields("Produto")       Flex.TextMatrix(Linha, 3) = Produtos.Fields("ValorVenda")       Flex.TextMatrix(Linha, 4) = Produtos.Fields("Obs")       Linha = Linha + 1 'incrementa a variável Linha em 1       Produtos.MoveNext 'move para o próximo registroWend 'finaliza o WhileEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que notei você não abriu o banco de dados, inclui no código, se abriu em outro form provavelmente não foi carregado antes. Veja se é esse o problema. As alterações estão em negrito.

Option Explicit

  Dim BancoDeDados As Database

  Dim Produtos As Recordset

  Dim Linha as Integer

 

Private Sub Form_Load()

  Set BancoDeDados = OpenDataBase ("Caminho do banco de dados", False)

  Set Produtos = BancoDeDados.OpenRecordset("Produtos", dbOpenTable)

  Produtos.MoveLast

  Produtos.MoveFirst

End Sub

 

Private Sub Flex_Click()

  Flex.Rows = Produtos.RecordCount + 1 'Objeto MSFexGrid com o mesmo número de linhas da tabela+1 para o cabeçalho

  Flex.FixedRows = 1 '1 linha fixa para o cabeçalho

  Flex.Cols = 5 'número de colunas = ao número de campos que vai usar

     

  Flex.TextMatrix(0, 1) = Produtos.Fields("Código")  'Coloca o Label no cabeçalho das colunas

  Flex.TextMatrix(0, 2) = Produtos.Fields("Produto")

  Flex.TextMatrix(0, 3) = Produtos.Fields("ValrVenda")

  Flex.TextMatrix(0, 4) = Produtos.Fields("Obs")

     

Linha = 1 'inicia a variável em 1 pra primeira linha

 

While Produtos.EOF = False 'Enquanto não chegar ao fim da tabela....

      Flex.TextMatrix(Linha, 1) = Produtos.Fields("Código") '....Coloca os dados  no FlexGrid

      Flex.TextMatrix(Linha, 2) = Produtos.Fields("Produto")

      Flex.TextMatrix(Linha, 3) = Produtos.Fields("ValorVenda")

      Flex.TextMatrix(Linha, 4) = Produtos.Fields("Obs")

      Linha = Linha + 1 'incrementa a variável Linha em 1

      Produtos.MoveNext 'move para o próximo registro

Wend 'finaliza o While

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.