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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Apontando para o registro mais recente (...)
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 14/10/2008 16:46 hs            
Galera, tenho um programinha simples de cadastro de fitas. Uso método DAO para acesso aos dados (Access 7.0).
O banco tem várias tabelas. Na de Andamento, registro as fitas emprestadas. E na de Transações, um form exibe um Grid mostrando a movimentação das retiradas e das devoluções.
Como utilizo o método SEEK na rotina de registrar a data de devolução, para procura de registros na segunda tabela, a tabela Transações só consigna uma única data de retorno, no primeiro registro de movimento gerado (o ponteiro aponta para o primeiro registro. Contudo, uma fita pode ser emprestada e devolvida várias vezes).
Tem como fazer a segunda tabela (Transações) aceitar as datas de devolução para diversos registros de uma mesma fita, na rotina abaixo?
Eis o trecho do código (evento LostFocus da textbox <Data da Devolução>) onde uma rotina atualiza os dados da primeira tabela (Andamento) e o campo de devolução na segunda tabela (Transações):

TbAndamento("Devolucao") = txtDataRetorno   'Preenche o campo <Devolução> com conteúdo da textbox
TbAndamento.Update                                     'Atualiza a tabela <Andamento>
TbTransações.Seek "=", txtCodFita                  'Procura na tabela <Transações>
                                                                    'pelo nº do filme (textbox)
TbTransações.Edit                                          'Coloca a tabela <Transações>
                                                                    'em modo de Edição
TbTransações("Retorno") = txtDataRetorno      'Preenche o campo com o conteúdo 'da  textbox
TbTransações.Update
(No evento Load do form de Andamento, todas as tabelas utilizadas são carregadas como DbOpen Table, conforme abaixo):

Set TbAndamento = BancoDeDados.OpenRecordset("Andamento", dbOpenTable)
Set TbTransações = BancoDeDados.OpenRecordset("Transações", dbOpenTable)
TbAndamento.Index = "IndFita"
TbTransações.Index = "CodFita"
     
Ash Katchup
CAXIAS DO SUL
RS - BRASIL
Postada em 15/10/2008 08:19 hs            
Tem sim, faça com que a data de devolução seja também chave primária no banco.

__________________

"It is the way of men to make monsters...and it is the nature of
monsters to destroy their makers."

-F.E.A.R. (First Encounter Assault Recon )
     
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 16/10/2008 00:50 hs            
Não consegui, Ash...
Mesmo porque, se eu criar a chave primária para esse campo <Devolução>, será que o sistema vai aceitar 'n' registros para uma mesma data (primária e única)? Ou deve ser apenas <primária>, sem ser única?
Tem como vc me mostrar como ficaria o código no exemplo que coloquei acima?
     
Ash Katchup
CAXIAS DO SUL
RS - BRASIL
Postada em 16/10/2008 08:29 hs            
Vc tem que fazer uma chave primária composta, ou seja, pegar as tuas chaves primárias e colocar mais essa.

Eu não sei como consistir isso usando DAO, pois sempre uso recordsets, então não vou poder lhe dar um exemplo de código.

E toda chave primária sempre é única.
TÓPICO EDITADO
   
Macaubal
não registrado
ENUNCIADA !
Postada em 16/10/2008 10:22 hs   
Não tem necessidade de criar o campo como chave primária, mas voce deverá criar um indice (la no raio) para os campos Fita e DataDevolucao, ai onde voce usa .SEEK vc vai ter que colocar
RecordSet.index = "NomeIndiceCriado"
RecordSet.Seek "=" Fita, DataDevolucao
   
ChicoVieira
CRUZEIRO
SP - BRASIL
ENUNCIADA !
Postada em 16/10/2008 11:14 hs            
OK. Vou ver se 'quebro' a cabeça para encontrar a solução, baseado nas dicas que vcs me passaram. Grato.
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