|
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...
|
|
|
|
|
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...  . 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+
|
|
|
|
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
|
|
|
|