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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Localizando registros ...
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 23/05/2007 12:38 hs            
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>.

     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 23/05/2007 14:22 hs            

Um campo vazio em um tabela é um campo nulo... ou vc faz esta consistência:

isnull (TBAnd("Devolução")) Then...

ou esta:

TBAnd("Devolução") & "" = "" then...

 

Eu geralmente uso SQL para estas consistências:

SELECT CAMPO1, CAMPO2 FROM TABELA WHERE DEVOLUCAO IS NULL

aí vc escolhe... espero que ajude!

at+

     
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 23/05/2007 16:38 hs            
Valeu, Ghost. Vou mudar o filtro, de IsEmpty para IsNull. Qq. coisa, retorno. A idéia do comando em SQL parece-me interessante. Se persistir não conseguindo do jeito que fiz, partirei para ela.
Obrigado, amigão.
Chico.
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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