USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Gravar dados do GRID com dia/mês/ano.
fjralberto
SANTO ANDRÉ
SP - BRASIL
Postada em 09/06/2008 10:22 hs            
Bom dia pessoal!

Eu estou com uma certa dificuldade em armazenar dados de uma GRID!

Tenham certeza que assim que eu terminar esse programa, eu o colocarei a disposição!

Bom, é o seguinte!



Eu tenho 3 combos, cboNome; cboMes_Ano; cboDemanda (projeto).

1º Eu escolho o nome do Profissional na combo Nome; (Estes dados veem de uma tabela com apenas os dados desse profissional - TAB_PROF).
2º Depois na combo Mês_Ano, eu escolho o Mês/Ano, e ao escolher, é gerado um GRID onde o primeiro campo é o campo que irá abrigar os dados do ID da demanda que o profissional está trabalhando, e os demais campos são campos que possuem todos os dias daquele mês, ou seja, se eu escolher JANEIRO/2008, será gerado um grid assim!

ID da Demanda | 1  |   2  |  3   |   4  | até o ultimo dia do mês, e assim para os outros meses.

Os dados que geram esse GRID vem de uma tabela que contem os campos, ID_MES; Mes_ANO; QTD_DIAS.

e por fim, depois que eu escolho o Mes/Ano, eu irei escolher o ID da demanda que este profissional está trabalhando! E importante eu dizer que o profissional NAO consegue escolher o msm ID 2 vezes no mesmo Mes/Ano.



Depois disso tudo, eu tenho um botão que eu inclue linhas no grid, esse botão ele pega o conteúdo da combo ID Demanda, compara os o que já existe na primeira coluna do grid, caso não for repetido ele insere uma nova linha e o coloca o ID na primeira coluna da grid, e as outras colunas do grid ele repete os dias do mês!

BOM AGORA VEM O PROBLEMA! (QUE É O QUE EU NÃO ESTOU CONSEGUINDO FAZER).

Bom, o usuário deverá digitar nos campos dos dias a quantidade de horas trabalhadas, mas as horas devem ser digitadas em decimal, tipo, 8,5 (oito horas e meia) ou 168,0 (cento e sessenta e oito horas), e assim ele vai fazendo isso dentro destes dias, para uma demanda, caso ele tenha trabalhado em outra demanda, ele irá inserir uma nova linha após escolher uma nova demanda, e continuará fazendo a mesma coisa!

Eu quero que após ele terminar essas inserções, ele armazene tudo isso na base de dados (ACCESS) sendo que o nome da tabela é TAB_TIME e as únicas colunas existentes nesta tabela são:

ID_PROF (id do profissional) | ID_DEMANDA (id do projeto) | DT_LANCAM (data do lançamento) | QTD_HORAS (quantidade de horas trabalhadas em decimal).


E A INTENÇÃO TAMBÉM É QUE O USUÁRIO ALÉM DE GRAVAR NA BASE DE DADOS, POSSA CONSULTAR OS DADOS POR ELE LANÇADOS E FAZER ALTERAÇÕES CASO NECESSÁRIO!

AÍ MEUS GRANDES AMIGOS EU TERMINO ESSE PROGRAMA!

Como eu faço isso...

Um grande abraços a todos que até aqui me ajudaram!

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
TÓPICO EDITADO
   
fjralberto
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 09/06/2008 14:28 hs            
Pessoal... Dêem uma forcinha pra mim... rs...

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
   
Treze
não registrado
ENUNCIADA !
Postada em 09/06/2008 14:30 hs   
alberto já estou fazendo uns teste no que você pediu logo posto o resultado
 
   
fjralberto
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 09/06/2008 14:33 hs            
Muito obrigado Treze!!!

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
   
fjralberto
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 09/06/2008 17:42 hs            
Amigo Treze! Fico no aguardo!

Obrigado pela força nessa empreitada!

Abraços!

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
TÓPICO EDITADO
 
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 09/06/2008 18:01 hs            
Mano fiz a adaptação para você editar o flexgrid veja o código
 
primeiro altere o esta função no Keypress do grid
 
Private Sub Grid_KeyPress(KeyAscii As Integer)
On Error Resume Next
With Grid
If KeyAscii = 13 Or KeyAscii = 9 Then
.Col = .Col + 1
KeyAscii = 0
ElseIf KeyAscii = 8 Then
.Text = Left(.Text, Len(.Text) - 1)
KeyAscii = 0
End If
'Se quiser colocar condições tipo númrico ou não
'If .Col > 0 And Not IsNumeric(Chr(KeyAscii)) Then
'.Text = .Text & Chr(KeyAscii)
'End If
End With
Select Case KeyAscii
Case vbKeyReturn, vbKeyTab
'move para a proxima celula.
With Grid
  If .Col + 1 <= .Cols - 1 Then
     .Col = .Col + 1
  Else
     If .Row + 1 <= .Rows - 1 Then
         .Row = .Row + 1
         .Col = 0
     Else
         .Row = 1
         .Col = 0
     End If
  End If
End With
Case vbKeyBack
   With Grid
   'remove o ultimo caractere
      If Len(.Text) Then
         .Text = Left(.Text, Len(.Text) - 1)
      End If
   End With
Case Is < 32
Case Else
    With Grid
       .Text = .Text & Chr(KeyAscii)
    End With
End Select
End Sub
 
' agora acrescente isso
 

Private Sub Grid_Click()
With Grid
 .CellBackColor = &HFFFFC0
End With
End Sub
 
 
Private Sub Grid_LeaveCell()
With Grid
 .CellBackColor = vbWhite
End With
End Sub
 
pronto até aqui nos conseguimos editar o grid, o que está faltando salvar estes dados no bd, é isso.
 
     
Página(s): 1/4      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página