Oi. Estou apanhando para montar um programa para uma pequena locadora. Quase tudo está funcionando OK. Apenas quando vou registrar um movimento em um form de movimentação, é que não estou conseguindo concluir.
Nesse form, o usuário entra com um número 'x' de um filme. O sistema pesquisa no banco de dados, numa tabela de cadastro <CadastrodeFilmes>. Se localiza o registro, joga esse número na textbox <txtCodFita>. Ao tabular para fora dessa textbox, é acionado o evento <GotFocus> para a próxima textbox <txtCodCodCli>.
Nesse evento, o sistema deveria procurar pelo campo <Devolução> (tabela Andamento) que estivesse vazio. Estando vazio, então informaria que o filme está emprestado, executando a função <CancelaDigitação> (que desabilita as textbox e chama a função <AtualizaFormulario>, mostrando o registro. Já tentei de diversas maneiras modificar a rotina <GotFocus> dessa textbox <txtCodCli>, mas não consegui um resultado (abaixo, transcrevi as rotinas Load, cmdIncluir e a função AtualizaFormulario). Se alguém puder ajudar, agradeço.
Chico.
Private Sub txtCodCli_GotFocus()
'Código novo. Verificar. Não está funcionando para filmes emprestados... O evento GotFocus abaixo é procedido pelo evento <CmdIncluir>, cujo código segue abaixo.
If TBAnd.NoMatch = False And IsEmpty(TBAnd.Fields("Devolução")) Then
MsgBox "Filme emprestado..."
CancelaDigitação
End If
End Sub
Private Sub cmdIncluir_Click()
Dim Novo As String
LimpaFormulario
cmdIncluir.Enabled = False
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
cmdExcluir.Enabled = False
cmdGravar.Enabled = False
cmdAnterior.Enabled = False
cmdPróximo.Enabled = False
Frame1.Enabled = True
cmdDevolve.Enabled = False
Novo = InputBox("Entre o nome do filme:")
TBFil.Seek "=", Novo ‘Procura na tabela CadastrodeFilmes.
If TBFil.NoMatch = True Then
MsgBox "Filme não cadastrado..."
Unload Me
Else
txtCodFita.SetFocus
txtCodFita = Novo
End If
End Sub
Private Function AtualizaFormulario()
On Error Resume Next
txtCodCli = TBAnd("NumCliente")
txtCodFita = TBAnd("NumFilme")
txtdatasaída = TBAnd("Retirada")
txtdataretorno = TBAnd("Devolução")
TBFil.Seek "=", txtCodFita.Text
TBCli.Seek "=", txtCodCli.Text
lblCliente = TBCli("NomedoCliente")
lblFilme = TBFil("NomedoFilme")
End Function
Private Sub Form_Load()
Set BancoDeDados = OpenDatabase(App.Path & "FilmesVHS.mdb")
Set TBCli = BancoDeDados.OpenRecordset("CadastrodeClientes", dbOpenTable)
Set TBFil = BancoDeDados.OpenRecordset("CadastrodeFilmes", dbOpenTable)
Set TBAnd = BancoDeDados.OpenRecordset("Andamento", dbOpenTable)
TBCli.Index = "IndCódigo"
TBFil.Index = "IndCódigo"
TBAnd.Index = "IndAnda"
cmdGravar.Enabled = False
Frame1.Enabled = False
If TBAnd.EOF = False Then
AtualizaFormulario
End If
End Sub
‘Tabela Andamento – Index <IndAnda> - campos indexados: <NumFilme> e <Devolução>.