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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Gravar Dados
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 25/05/2004 15:43 hs            
Pessoal, surgil um problema não sei se é facil resolver, é o seguinte. Tenho dois bancos sendo SaldoInicial e Materiais. Sendo o  cadastro de um novo registro gravo todos os seus dados no banco Materiais, más devo pegar o código do material e a quantidade e gravar também no banco SaldoInicial. Com a rotina abaixo gravo normalmente, más quando vou alterar, cancelar ou buscar dados de um determinado material da erro. Alguem pode analizar e mostrar onde estou errando?
Private Sub CmdIncluir_Click()
TxtCod.Text = ""
TxtDesc.Text = ""
TxtLc1.Text = ""
TxtLc2.Text = ""
TxtLc3.Text = ""
TxtLc4.Text = ""
TxtQT.Text = ""
TxtUn.Text = ""
TxtUnit.Text = ""
Desativar
On Error Resume Next
Posição = tbloc.Bookmark
Posição = tbQuant.Bookmark
tbloc.AddNew
tbQuant.AddNew
TxtCod.SetFocus
End Sub
 
Private Sub CmdConfirmar_Click()
If MsgBox("Você confirma a inclusão ou alteração deste registro?", vbYesNo + vbExclamation) = vbYes Then
  
   tbloc!Código = Trim(TxtCod.Text)
   tbloc!Descrição = Trim(TxtDesc.Text)
   tbloc!Localização1 = Trim(TxtLc1.Text)
   tbloc!Localização2 = Trim(TxtLc2.Text)
   tbloc!Localização3 = Trim(TxtLc3.Text)
   tbloc!Localização4 = Trim(TxtLc4.Text)
   tbloc!Quantidade = Trim(TxtQT.Text)
   tbloc!Unidade = Trim(TxtUn.Text)
   tbloc!Unitario = Trim(TxtUnit.Text)
   tbQuant!codigo = Trim(TxtCod.Text) campos do SaldoInicial
   tbQuant!qt = Trim(TxtQT.Text)
   tbloc.Update
   tbQuant.Update
  
   Ativar
Else
   CmdCancelar_Click 'Executa os comandos do botão cancelar.
End If
End Sub
 
Private Sub UserForm_Initialize()
   Set bdMat = OpenDatabase("C:EstoqueMateriais.mdb")
   Set bdQuant = OpenDatabase("C:EstoqueSaldoInicial.mdb")
   Set tbloc = bdMat.OpenRecordset("Localizacao", dbOpenTable)
   Set tbQuant = bdQuant.OpenRecordset("Saldo", dbOpenTable)
   FrmLoca.Lb_Contar1.Caption = tbloc.RecordCount
   tbloc.Index = "iCod"
   tbloc.Index = "iDesc"
   On Error Resume Next
   tbloc.MoveMin 
   tbQuant.MoveMin
   Atualizar
End Sub
     
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
Postada em 25/05/2004 16:31 hs            
Primeiramente, devo lhe dizer que naum concordo com a forma como esta gravando os dados de suas Tabelas.
Naum pelo fato de ter separado a tabela de Materiais e a de Saldo, mas pq vc colocou-as em Bancos de Dados diferentes (Foi isso mesmo que entendi ???Emoções).
Quando ha 2 tabelas com dados que se relacionam, a maneira mais segura de fazer com que fucione eh Relaciona-las(Emoções)  no Menu Ferramentas/Relacionamento do ACCESS, onde vc ira definir o tipo de Integridade Referencial do Relacionamento.
Feito isso Cria-se rotinas de Salvar/Alterar/Excluir no VB de Acordo com os relacionamentos. Por Exemplo:
  Quando vc Inserir Um Material na Tabela de Materiais ira inserir Tambem o Saldo desse Material na Tabela de Saldo, mas quando vc Excluir um Material ira fazer o que?
  Exlcuir o Saldo Tambem ou avisar que nao eh possivel excluir pq existe uma tabela 'depentente dessa informacao'?
  Existem outras coisas tb para se pensar ao estruturar um Banco de Dados, e um banco bem estruturado evita muita dor de cabeca.
 
Agora, vamos ao seu problema.
Quando tenho 2 tabelas relacionadas Gravo a 'Tabela Mestre' Normalmente e depois abro a 'Tabela Dependente', gravo e fecho a 'Tabela Dependente'.
Nao abro 2 recordsets juntos, prefiro localizar o registro da 2ª tabela apenas quando necessario.
Tente usar comandos SQL para abrir seus recordsets que facilita muito.
 
_________________
Qualquer duvida Post
 
Te +
 
TÓPICO EDITADO
   
Página(s): 1/1    

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