Ir para conteúdo

POWERED BY:

Arquivado

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

crauller

Problemas com MSFlexGrid!!!

Recommended Posts

Fala ae pessoal... Estou aki novamente postando uma das milhares de dúvidas que tenho sobre preenchimento manual de grids e lists que tenho....Dessa vez fiz um programinha eu consigo preencher as 2 primeiras linhas da grid ...na terceira linha ocorre o erro:"Subscript out of range"o que é isso?Como posso resolver....tem como eu conseguir preencher um grid copm um valor nulo?(existente na base de dados)O code é o seguinte: MSFlexGrid1.Cols = 4MSFlexGrid1.ColWidth(0) = 1000 For i = 0 To Resultado.Fields.Count - 1 MSFlexGrid1.ColAlignment(i) = vbCenter MSFlexGrid1.ColWidth(i) = 1500 MSFlexGrid1.TextMatrix(0, i) = Resultado.Fields(i).Name Next MSFlexGrid1.Rows = Resultado.RecordCount + 1 i = 0 Do While Not Resultado.EOF MSFlexGrid1.TextMatrix(i, 0) = Resultado(0) MSFlexGrid1.TextMatrix(i, 1) = Resultado(1) MSFlexGrid1.TextMatrix(i, 2) = Resultado(2) MSFlexGrid1.TextMatrix(i, 3) = Resultado(3) i = i + 1 Resultado.MoveNext LoopResultado.CloseNota:Estou utilizando a DAO 3.51...abração....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dessa vez fiz um programinha eu consigo preencher as 2 primeiras linhas da grid ...na terceira linha ocorre o erro:"Subscript out of range"

Terceira linha do codigo ou terceira linha do registro ?Verifique se seu contador não esta se referenciando a um registro que não existe. você já tentou debugar o codigo para ver em qual linha do codigo o problema aparece ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dessa vez fiz um programinha eu consigo preencher as 2 primeiras linhas da grid ...

na terceira linha ocorre o erro:"Subscript out of range"

Terceira linha do codigo ou terceira linha do registro ?

 

Verifique se seu contador não esta se referenciando a um registro que não existe. você já tentou debugar o codigo para ver em qual linha do codigo o problema aparece ?

 

caro preda...

 

o err aparece na seguinte linhaMSFlexGrid1.Cols = 4

MSFlexGrid1.ColWidth(0) = 1000

 

For i = 0 To Resultado.Fields.Count - 1

 

MSFlexGrid1.ColAlignment(i) = vbCenter

MSFlexGrid1.ColWidth(i) = 1500

MSFlexGrid1.TextMatrix(0, i) = Resultado.Fields(i).Name

 

Next

 

MSFlexGrid1.Rows = Resultado.RecordCount + 1

 

i = 0

 

Do While Not Resultado.EOF

 

MSFlexGrid1.TextMatrix(i, 0) = Resultado(0)

MSFlexGrid1.TextMatrix(i, 1) = Resultado(1)

MSFlexGrid1.TextMatrix(i, 2) = Resultado(2)

MSFlexGrid1.TextMatrix(i, 3) = Resultado(3)

 

i = i + 1

 

Resultado.MoveNext

Loop

 

 

abração....

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá..

 

bom, esse err: "Subscript out of range" pode estar acontecendo por 2 motivos:

 

1° - a célula da Grid onde você está tentando atribuir algum valor não existe.

 

2° - o campo do registro atual do Recordset que você está tentando acessar não existe.

 

quando o VB apontar o erro, posicione o mouse sobre a propriedade .TextMatrix da Grid para ver oq aparece, e dps posicione o mouse sobre o Recordset q contém o valor q você está tentando jogar para a Grid e veja oq aparece...

 

em qual dos dois aparece a mensagem "Subscript out of range" ??

 

resolvido o problema!

 

se aparecer a mensagem referente a célula da Grid, quer dizer q a célula q atual naum existe, então você está cometendo algum erro ao inserir o numero de linhas necessárias na grid. (*obs: dependendo do select utilizado para a pesquisa do Recordset o a propriedade .RecordCount pode naum retornar o valor correto!)

 

se aparecer a mensagem referente ao conteúdo do Recordset, axo meio dificil, pois nesse while não há possibilidade disso, ao menos q o nome do campo esteja errado.

 

*bom, e para atribuir um valor numero é simples,, é só você verificar se o valor do registro atual eh nulo, se sim atribua vazio.. ex:

Grid.TextMatrix(1,1) = IIF(IsNull(Recordset("campo"), "", Recordset("campo")

 

espero ter ajudado,, qlq dúvida posta ae q a gente tenta ajudar..

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá camarada!!!REalmente....O problema está no ;preenchimento da célula e valor do resultado, está preenchido corretamanete......como resolvo isso hein..abração..]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, para resolver isso, tem outro método, possivelmente vai ser o que voce precisa;vai nas propriedades do componente FlexGrid, na opção: CustomAltere as propriedades de coluna e linhas (Rows e Cols)O erro de Subscript out of Range no meu caso solucionou.Abraços

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.