MSFLEXGRID SERA QUE ALGUEM ME PODE AJUDAR?

PROGRAMADORVB6 15/03/2005 13:36:07
#73079
Olá pessoal estou na mesma encruzilhada em que me encontrava alguns dias atrás, quando coloquei esta pergunta no forum aos utilizadores; e á qual algumas almas generosas me tentaram ajudar, mas nao consegui safar-me , talvez agora exponha o meu problema com os devidos detalhes,tenho uma base de dados de nome: Faltas.mdb com a chave primária no campo" Chave" (onde ele insere o campo "Data" e "Nome" ex: Chave = Date() & "-" & Nome) e tenho a Data1 ligado á tabela MSflexrid1 , eu tenho uma tabela com seis colunas : são elas : [Data,Numcol,Nome,Horas,Faltas,Chave]. Os campos definidos são : Data (Date);Numcol(numéric);Nome(Text);Horas(numeric);Faltas (numéric) ; Chave(Text); e queria que no final ao carregar no botao total que se encontra no form ele me indica-se o total de Horas feitas e me asinala-se com uma barra a vermelho ao longo de todos os campos na Msflexgrid todos os dias que o colaborador Faltou, será que você me pode ajudar?
obrigado desde já pela sua atenção.
USUARIO.EXCLUIDOS 15/03/2005 15:53:17
#73108
Olá,

Para destacar linhas e coluna no msflexgrid use grid1.CellBackColor = vbRed
PROGRAMADORVB6 17/03/2005 10:14:28
#73359
E como eu faço para detectar na coluna [ faltas] quando o Valor for igual a 1 me assinale a vermelho todos os campos correspondentes a essas faltas ?
USUARIO.EXCLUIDOS 17/03/2005 13:39:16
#73403
Resposta escolhida
Vamos ver se eu entendi...para "detectar" na coluna e assinalar em vermelho faça assim:

  Sub MarcarValores(flxFlexGrid As MSFlexGrid, Coluna As Long, Valor As String, Cor As ColorConstants)
Dim r As Long
For r = 0 To flxFlexGrid.Rows - 1
If flxFlexGrid.TextMatrix(r, Coluna) = Valor Then
flxFlexGrid.Row = r
flxFlexGrid.Col = Coluna
flxFlexGrid.CellBackColor = Cor
End If
Next r
End Sub


EXEMPLO:
Para chamar a rotina, marcando todas as celulas da coluna 3 com a cor VERMELHA, caso possua o valor "1" em alguma das células desta coluna:

  Private Sub Command1_Click()
MarcarValores flxMeuFlex, 3, "1", vbRed
End Sub


Estou a disposicao!
Valeu!
PROGRAMADORVB6 18/03/2005 07:32:38
#73511
vou exprimentar, desde já agradeço a colaboração direi + tarde alguma coisa.
PROGRAMADORVB6 19/03/2005 12:06:20
#73712
olá natocaio , de facto o código exposto por voce está um beleza! 5 estrelas, mas tenho outro problema como fazer a mesma rotina para somar valores( positivos e negativos) numa determinada coluna ?
tentei adaptar mas o que me envias-te mas não deu.
Quero agradecer desde já a todos os que tem colaborado.
TONARE25 20/03/2005 17:58:38
#73899
Para somar as colunas do grid no mesmo LOOP que o natocaio postou vc pode adicionar o comando abaixo:

VALOR = VALOR + VAL(flxFlexGrid.textmatrix(r,coluna))

Não se esquecendo de declarar a variavel VALOR de acordo com a sua necessidade antes do FOR
Assim ao final do LOOp o campo valor tera a soma de todos os valores da linha (r) e da coluna especificada (coluna).. OK!

QQ Coisa me mande uma MSG Interna!!!
PROGRAMADORVB6 22/03/2005 09:54:07
#74216
A todos os que parteciparam neste meu problema , aqui vai o meu obrigado.[S96]
Tópico encerrado , respostas não são mais permitidas