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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Não consigo gravar
JlArrais
VISEU
PT - PORTUGAL
ENUNCIADA !
Postada em 07/05/2007 12:28 hs            
Oipessoal!!
Eu tenho uma aplicação feita em visual basic, com bases de dados em access e uso Data environement e tenho um problema de gravação de dados.
O meu problema é que a tabela que estou a utilizar tem muitos campos(alias, tem o maximo de campos possivel numa tabela de access), e aquando da gravação dá um erro que diz que foram definidos muitos campos e que é impossivel gravar os dados!
Eu para tentar fugir a esse erro criei dois "Command" no data envirenement, nos quais tenho a tabela dividida em dois.
no inicio eu tenho este código:
Form Load()
   Set DETabA = Nothing
   Set DETabA = New ADODB.Recordset
   Set DETabA = DEGeral.rsTblA
   Set DETabB = Nothing
   Set DETabB = New ADODB.Recordset
   Set DETabB = DEGeral.rsTblB
end sub
*******************************************
Depois quando faço novo:
   DETabA.AddNew
   DETabA("Ano").Value = Year(Now)
   DETabA("Nipc").Value = "123456789"
mas nesta situação ele não faz o addnew aos campos da segunda tabela e ao fazer o guardar ele não guarda na linha correcta, pq não sei como fazer para o relacionar com a primeira tabela sem fazer o addnew à segunda tabela, pq caso eu faça o Addnew à segunda tabela ele vai criar dois registos do mesmo ano!!
No guardar faço:
DETabA.Update
DETabB.Update
Se alguem me puder ajudar agradeço imenso!!
Obrigado!
   
Barata
não registrado
ENUNCIADA !
Postada em 07/05/2007 12:37 hs   
Fala aí, cara pra ser cincero nunca utilizei esta forma de gravação por isso não posso tentar t ajudar seguindo esta linha de código. Vc já tentou executar gravação utilizando o INSERT INTO? Na época q eu trab. com o access nós mudamos de ADDNEW para INSERT INTO, não lembro bem o motivo, mas posso t garantir q não ocorria erros deste tipo.
   
Labroskas
VISEU
PT - PORTUGAL
Postada em 07/05/2007 12:40 hs            
Eu sei fazer o INSERT INTO, mas são muitos campos, por isso é que eu não utilizo essa instrução!!Tinha que fazer um insert com 250 campos!!!Imaginas isso??dá uma trabalhadeira tremenda!!Mas obrigado pela resposta, caso saibas outra  solução, diz-me!!
Obrigado
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 07/05/2007 16:12 hs            
Bem, na verdade, por que não divide a tabela?
Ou, então após o AddNew, ou Insert Into, faça uma consulta do registro e use o Update.
 
vlu//
     
Labroskas
VISEU
PT - PORTUGAL
ENUNCIADA !
Postada em 08/05/2007 08:25 hs            
O problema é que eu tenho dois comands no data environement, criei atraves de dois selects, assim posso dividir a tabela em dois e já me permite gravar os dados, mas existe um problema, eu quando faço "NOVO" não posso fazer o AddNew para os dois comandos, senão vai criar dois registos iguais na tabela!
Quando faço novo so posso fazer:
DeTabA.AddNew
Depois quando Guardo e se tiver mais registos na tabela ele não sabe em que registo alterar os dados e grava tudo errado:
DeTabA.UPDATE
***se executar a mensagem ele retorna por ex. o ano 2006
MsgBox DETabA.Fields("Ano").Value
'****Mas nesta parte de baixo eu não como indicar ou redireccionar o caminho para o registo certo:
***Se executar a mensagem ele retorna outro ano (talvez o primeiro que tiver inserido na tabela) Ex. 2004, e vai guardar os campos do DETabB no ano de 2004 em vez de gravar no ano de 2006
MsgBox DETabB.Fields("Ano").Value
DeTabB.UPDATE
*****************************************************
Já tentei fazer isto, mas nem assim...
DETabB.Find "Ano = " & DETabA.Fields("Ano").Value, , adSearchForward, 1
se alguém souber o que fazer, agradeço ajuda!
   
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