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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro lógico - só pode!!!! hehehe
Leolima
PORTO ALEGRE
RS - BRASIL
Postada em 03/09/2004 16:50 hs            
Tenho um msflexgrid!!!!!
e um botão para deletar registro!!!
quando o usuário clica na grid ele joga os dados de um dos campos para uma variavel
já tentei com tipo data e com tipo string!!!
 
quando vai deletar ele pega o valor da variavel para pesquisar um campo no banco de dados.
 
vai ai a rotina!!
 
Private Sub msflex_data_Click()
        deletadado01 = msflex_data.TextMatrix(msflex_data.Row, 1)
End Sub
 
 
Private Sub cmd_deletar_reg_grid_Click()
    rs_hora.Open "SELECT * FROM tb_horas WHERE data_da_hora = #" & CDate(deletadado01) & "#", conn, adOpenKeyset, adLockOptimistic
    If rs_hora.BOF Then
        MsgBox "Selecione a data a ser deletada na tabela!", vbCritical, "Atenção!"
        rs_hora.Close
        Exit Sub
    End If
    rs_hora.Delete
    rs_hora.Close
     
 End Sub
da como bof=true??? onde esta o erro??
     
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
Postada em 03/09/2004 17:23 hs            
Sera que vc ta pegando o criterio no grid da celula correte?lembre que comeca com zero,ai no teu caso vc ta pegando da segunda celula.se tiver certo tente assim.
 
dim deletadado01 as date
 
rs_hora.Open "SELECT * FROM tb_horas WHERE data_da_hora = #" & format(deletadado01,"mm/dd/yyyy") & "#", conn, adOpenKeyset, adLockOptimistic
     
Burro do Sherek
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
PRESIDENTE PRUDENTE
SP - BRASIL
Postada em 03/09/2004 21:52 hs            
Creio que o problema nem esteja no código e sim na forma, porque guardar o valor numa variavel? Se a pessoa clicar no grid ele vai pegar um valor, agora se depois disso ela se locomover pelas teclas seu código já vai falhar, pois o click não vai ser acionado, teria quer ser o EnterCel (ou coisa parecida, não lembro).
O correto é vc já pegar direto do grid, assim não tem erro de variavel suja (valor errado).
Faça tipo assim:
 
'verifica se tem uma linha selecionada
if msflex_data.textmatrix(msflex_data.row, msflex_data.col) = "" then
   msgbox "Não foi escolhida uma linha valida"
   exit sub
endif
 
 rs_hora.Open "SELECT * FROM tb_horas WHERE data_da_hora = #" & CDate(msflex_data.textmatrix(msflex_data..row, coluna_desejada) & "#", conn, adOpenKeyset, adLockOptimistic
    If rs_hora.BOF Then
        MsgBox "Selecione a data a ser deletada na tabela!", vbCritical, "Atenção!"
        rs_hora.Close
        Exit Sub
    End If
    rs_hora.Delete
    rs_hora.Close
 
     
Leolima
PORTO ALEGRE
RS - BRASIL
Postada em 08/09/2004 20:19 hs            
Valeu a mão ai pessoal mas resolvi de forma mais simples!!!
 
dim soma as date
 
    soma = msflex_data.TextMatrix(msflex_data.Row, 1)
    rs_hora.Open "SELECT * FROM tb_horas WHERE matric = " & lbl_matric.Caption & " AND data_da_hora = #" & soma & "#", conn, adOpenKeyset, adLockOptimistic
    rs_hora.Delete
    rs_hora.Close
     
Página(s): 1/1    

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