Postada em 13/06/2007 11:38 hs
Oi pessoal. Estou precisando de uma dica de vocês... Meu sistema está OK (locadora). Falta apenas complementar o código, quando o usuário digitar o número de um filme: se ele estiver emprestado, a função <AtualizaFormulário> exibe os dados do filme e do cliente na tela, informando que o filme está emprestado... Entretanto, um filme que sofreu diversos movimentos de saída e devolução não está deixando minha query posicionar o ponteiro no último registro por data de saída (assim, um filme que saiu e voltou diversas vezes, e cujo último andamento foi um empréstimo, deveria indicar que está emprestado...). Eis o código que <deveria> fazer o sistema funcionar corretamente (a tabela chama-se Andamento, e os campos <Retirada> e <NumFilme> são da data da saída e do código do filme. E a tabela TBCliente tem os registros dos clientes):
Private Sub txtCodCli_LostFocus() Dim SQL As String txtCodCli.Text = Format(txtCodCli.Text, "00") TbCliente.Seek "=", txtCodCli 'SQL = "SELECT Max(Retirada) FROM Andamento" 'SQL = "SELECT * FROM Andamento WHERE NumFilme" = txtCodFita & "ORDER BY Retirada asc" SQL = "SELECT * FROM Andamento WHERE NumFilme" = txtCodFita & "ORDER BY Max(Retirada)"
'SQL não posiciona o ponteiro no registro com data mais recente... 'Tentar uma maneira de fazer a seleção de dois registros de um mesmo filme, 'pela data mais recente... If TbCliente.NoMatch = True Then MsgBox "Cliente não cadastrado. Operação cancelada" CancelaDigitação Exit Sub Else lblCliente = TbCliente("NomedoCliente") TbAndamento.AddNew End If End Sub
Agradeço a gentileza. Chico.
|