Welter Postado Agosto 6, 2011 Denunciar Share Postado Agosto 6, 2011 Estou de volta, abusando da boa vontade e paciência dos amigos.Ao executar o procedimento a seguir, na instrução Banco.Execute "Delete from dyTbNE where NumNE=enúmeroocorre erro, com a mensagem de que não foi possível localizar a tabela/consulta dyTbNE. Tentei também informar o nome da tabela TbNE, mas ocorre o mesmo erro.Eis o procedimento:Private Sub Comando7_Click()ecódigo = Comb0.Column(0)enúmero = Comb0.Column(1)dCódigo = Comb0.Column(2)eValor = Comb0.Column(3)DoCmd.Close acTable, "TbNE", acSaveYesDoCmd.Close acForm, "AcertosNE", acSaveYesDim Banco As DAO.DatabaseSet Banco = OpenDatabase("c:\Orcamento")Dim TbND As DAO.TableDefDim TbNE As DAO.TableDefDim dyTbND As DAO.RecordsetDim dyTbNE As DAO.RecordsetSet dyTbND = Banco.OpenRecordset("TbND", DB_OPEN_DYNASET)Set dyTbNE = Banco.OpenRecordset("TbNE", DB_OPEN_DYNASET)Banco.Execute "delete from dyTbNE where NumNE=enúmero"With dyTbNDarg = "código=" & dCódigodyTbND.FindFirst arg.EditdyTbND("SdoND") = dyTbND("SdoND") + eValordyTbND("Valor") = dyTbND("Valor") + eValordyTbND("ValOld") = dyTbND("ValOld") + eValor.UpdateEnd WithEnd SubAh, sim, faltou dizer que uso o ACCESS 2007 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Agosto 7, 2011 Denunciar Share Postado Agosto 7, 2011 rode em modo debug verificando cada variavel, até pra ver se o banco ta sendo conectado, se a tabela ta sendo encontrada..o arquivo do seu bd não tem extensão accdb ou mdb ?e outra dica muito importante, evite o uso de caracteres especiaisó é etc Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Welter Postado Agosto 7, 2011 Autor Denunciar Share Postado Agosto 7, 2011 Já fiz o teste no modo debug. Fiz também uma transação para verificar se o dynaset está ativo e ele está. A extensão do meu BD é accdb.O interessante de se notar é que em outro procedimento consigo deletar todos os registros de uma tabela, mas neste não. Muito estranho.Grato pelo interesse em resolver meu problema, que, infelizmente, ainda persiste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Welter Postado Agosto 7, 2011 Autor Denunciar Share Postado Agosto 7, 2011 Caso resolvido.Possivelmente o comando não funciona porque no formulário base tenho também um sub-formulário, onde estão os dados que trato no procedimento.O botão que acessa este procedimento está fora do sub-formulário, porque preciso dos dados da combobox(que está no formulário), para o processamento.Assim, para resolver, criei um campo status na tabela e, no procedimento, marco o record para deleção em rotina posterior.Sofrendo, aprendendo e passando experiência para os demais colegas.Muito grato a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Welter Postado Agosto 8, 2011 Autor Denunciar Share Postado Agosto 8, 2011 Ainda estou aprendendo, apesar de ter 70 anos.A propósito, como faço referência a uma combobox em procedimento de outro formulário?Algo assim: forms!formuláriotal.combo...????Grato a todos Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Welter
Estou de volta, abusando da boa vontade e paciência dos amigos.
Ao executar o procedimento a seguir, na instrução Banco.Execute "Delete from dyTbNE where NumNE=enúmero
ocorre erro, com a mensagem de que não foi possível localizar a tabela/consulta dyTbNE.
Tentei também informar o nome da tabela TbNE, mas ocorre o mesmo erro.
Eis o procedimento:
Private Sub Comando7_Click()
ecódigo = Comb0.Column(0)
enúmero = Comb0.Column(1)
dCódigo = Comb0.Column(2)
eValor = Comb0.Column(3)
DoCmd.Close acTable, "TbNE", acSaveYes
DoCmd.Close acForm, "AcertosNE", acSaveYes
Dim Banco As DAO.Database
Set Banco = OpenDatabase("c:\Orcamento")
Dim TbND As DAO.TableDef
Dim TbNE As DAO.TableDef
Dim dyTbND As DAO.Recordset
Dim dyTbNE As DAO.Recordset
Set dyTbND = Banco.OpenRecordset("TbND", DB_OPEN_DYNASET)
Set dyTbNE = Banco.OpenRecordset("TbNE", DB_OPEN_DYNASET)
Banco.Execute "delete from dyTbNE where NumNE=enúmero"
With dyTbND
arg = "código=" & dCódigo
dyTbND.FindFirst arg
.Edit
dyTbND("SdoND") = dyTbND("SdoND") + eValor
dyTbND("Valor") = dyTbND("Valor") + eValor
dyTbND("ValOld") = dyTbND("ValOld") + eValor
.Update
End With
End Sub
Ah, sim, faltou dizer que uso o ACCESS 2007
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.