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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Recuperando o último registro da tabela...
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 14/06/2007 15:41 hs            
'Olá. Desculpem-me o retorno. Todavia, ainda não consegui resolver 'satisfatoriamente meu problema. Consiste no seguinte: Um filme é 'retirado (e devolvido) diversas vezes. Da última vez que foi retirado, 'ainda não foi devolvido. Logo, o campo <Devolução> está nulo para a 'última movimentação desse filme.
'Se eu tentar incluir uma nova movimentação para esse mesmo filme (que 'ainda não foi devolvido), a procura é feita pelo método SEEK. Só que, 'ao invés de mostrar o último movimento desse filme, o ponteiro é 'posicionado no primeiro registro (certamente esse primeiro registro 'terá uma data de devolução, senão o sistema exibiria uma msgbox 'informando que ele estaria emprestado). Logo, tendo uma data de 'devolução no primeiro registro, mas sem retorno no último registro 'desse filme, o sistema aceita um novo empréstimo...(?!?)
'Eis o código associado ao evento <GotFocus> do próximo campo do form:

Private Sub txtCodCli_GotFocus()
    Dim SQL As String
'Tentativas de filtrar os registros, ordenando-os pela última movimentação do filme:
'SQL = "SELECT * FROM Andamento WHERE NumFilme=" & txtCodFita & "ORDER BY Retirada desc"
'SQL = "SELECT Max!Retirada FROM Andamento WHERE NumFilme=" & txtCodFita & "ORDER BY Retirada desc"
    TbAndamento.Seek "=", txtCodFita
    If IsNull(TbAndamento![Devolução]) Then
        MsgBox "Filme emprestado!..."
        AtualizaFormulario
        Frame1.Enabled = False
        cmdIncluir.Enabled = True
        cmdAlterar.Enabled = True
        cmdConsultar.Enabled = True
        cmdExcluir.Enabled = True
        cmdGravar.Enabled = False
        cmdAnterior.Enabled = True
        cmdPróximo.Enabled = True
        cmdDevolve.Enabled = True
        Exit Sub
    Else
        SendKeys "{home}+{end}"
    End If
End Sub


Agradeço se alguém puder colaborar...

     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 14/06/2007 17:33 hs            
Para usar o SEEK o seu campo devolução tinha que ser indexado. Como, pelo que vc passou, está procurando pelo código do filme então não vai dar certo como vc pode comprovar :). A SQL para este caso seria:
 
SQL = "SELECT NUMFILME FROM ANDAMENTO WHERE NUMFILME =" & TxtCodFita & " AND DEVOLUÇÃO IS NULL
 
'setando recordset com consulta SQL
...
 
IF NOT RS.NoMatch then...
 
ou
 
IF NOT RS.EOF Then
 
MSGBOX "FILME NÃO DEVOLVIDO!",VBCRITICAL
 
Ah, não se esqueça que para o seek costuma-se passar o index antes. Não lembro agora se para um único index precisa passar o index antes do seek...Emoções. Bom, dê uma olhada aí amigo. E se caso o campo "numfilme" for texto não se esqueça de passar entre apóstrofos.
 
Qualquer dúvida você posta de novo.
 
at+
   
Álvaro
Pontos: 2843
GUARULHOS
SP - BRASIL
Postada em 19/06/2007 09:40 hs            
http://www.vbweb.com.br/forum_resp.asp?Codigo=215010Da uma olhada nesse tópico, onde é comentado o uso do seek, no caso dele é uma gravação, más ele quer fazer primeiro a consulta para depois gravar. Eu coloquei como que ele pode fazer pelo seek e pelo sqlQualquer dúvida posta ai

Abraço e que DEUS te abençõe, espero poder ter te ajudado
Eu sou o Senhor, o DEUS de vocês;
eu os seguro pela mão e lhes digo;
Não fiquem com medo, pois eu os ajudo
Isaias 41:13
     
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