Tenho um botão atualizar base de dados e ao clicar ele importa dados txt para uma tabela e redistribui para outras três. Mas consigo fazer este processo apenas uma vez ao tentar uma segunda com dados diferentes não dá certo, assim necessito fechar e abrir novamente o formulário para funcionar. O que está a ocorrer? Peço ajuda aos especialistas
Meu código:
Parte de conexão:
Option Compare Database
Public Comando As String ' variável para comandos SQL
Public banco As Database ' variavel que irá fazer a conexão entre a aplicação e o banco de dados, por meio dela faremos os comandos select, delete e update
Public dataset As recordset ' variavel cria uma cópia na memória da tabela
Function Conecta()
Set banco = CurrentDb ' inicializa a várial banco local
End Function
Function Valida_selecao()
Set dataset = banco.OpenRecordset(Comando, dbOpenDynaset) ' incializa dataset, e executa o comando passado pela variável comando e preenche o dataset na memória
End Function
Parte da inserção de dados na base:
Private Sub cmdAtual_Enter()
'Importar o arquivo txt para a tabela Dados_SIALF
DoCmd.TransferText acImportDelim, "SIALF", "Dados_SIALF", "\SIALF.txt", -1
'atualiza os dados das tabelas tb_execucao, tb_dados_auxiliares e descarta os dados da Dados_SIALF
Comando = "INSERT INTO tb_execucao ( id_oficio, ss, contrato, mutuario, cartorio, CidCartorio, UFCartorio, despachante, valServico) SELECT OFICIO, SS, CTR, MUTUARIO, NO_CARTORIO, CIDADE_IMO, UF_IMO, DESPACHANTE, VALOR FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "INSERT INTO tb_ss (id_ss, dtSS, Serv)SELECT SS, DATA, TIPO FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "INSERT INTO tb_dados_auxiliares (id_contrato, co_sr, girec, co_ag, no_ag, nome_coob1, nome_coob2, nome_coob3, nome_coob4, matricula, ABR_LOGR_IMO, LOGR_IMO, NU_IMO, COMPL_IMO, BAIR_IMO, CIDADE_IMO, UF_IMO, CEP) SELECT CTR, CO_SR, GIREC, CO_AG, NO_AG, NOME_COOB1, NOME_COOB2, NOME_COOB3, NOME_COOB4, MATRICULA, ABR_LOGR_IMO, LOGR_IMO, NU_IMO, COMPL_IMO, BAIR_IMO, CIDADE_IMO, UF_IMO, CEP_IMO FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "DELETE * FROM Dados_SIALF"
banco.Execute (Comando)
MsgBox ("dados atualizados"), vbInformation + vbOKOnly, "Pesquisa"
txtoficio.SetFocus
End Sub
Agradeço a ajuda
Meu código:
Parte de conexão:
Option Compare Database
Public Comando As String ' variável para comandos SQL
Public banco As Database ' variavel que irá fazer a conexão entre a aplicação e o banco de dados, por meio dela faremos os comandos select, delete e update
Public dataset As recordset ' variavel cria uma cópia na memória da tabela
Function Conecta()
Set banco = CurrentDb ' inicializa a várial banco local
End Function
Function Valida_selecao()
Set dataset = banco.OpenRecordset(Comando, dbOpenDynaset) ' incializa dataset, e executa o comando passado pela variável comando e preenche o dataset na memória
End Function
Parte da inserção de dados na base:
Private Sub cmdAtual_Enter()
'Importar o arquivo txt para a tabela Dados_SIALF
DoCmd.TransferText acImportDelim, "SIALF", "Dados_SIALF", "\SIALF.txt", -1
'atualiza os dados das tabelas tb_execucao, tb_dados_auxiliares e descarta os dados da Dados_SIALF
Comando = "INSERT INTO tb_execucao ( id_oficio, ss, contrato, mutuario, cartorio, CidCartorio, UFCartorio, despachante, valServico) SELECT OFICIO, SS, CTR, MUTUARIO, NO_CARTORIO, CIDADE_IMO, UF_IMO, DESPACHANTE, VALOR FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "INSERT INTO tb_ss (id_ss, dtSS, Serv)SELECT SS, DATA, TIPO FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "INSERT INTO tb_dados_auxiliares (id_contrato, co_sr, girec, co_ag, no_ag, nome_coob1, nome_coob2, nome_coob3, nome_coob4, matricula, ABR_LOGR_IMO, LOGR_IMO, NU_IMO, COMPL_IMO, BAIR_IMO, CIDADE_IMO, UF_IMO, CEP) SELECT CTR, CO_SR, GIREC, CO_AG, NO_AG, NOME_COOB1, NOME_COOB2, NOME_COOB3, NOME_COOB4, MATRICULA, ABR_LOGR_IMO, LOGR_IMO, NU_IMO, COMPL_IMO, BAIR_IMO, CIDADE_IMO, UF_IMO, CEP_IMO FROM Dados_SIALF"
banco.Execute (Comando)
Comando = "DELETE * FROM Dados_SIALF"
banco.Execute (Comando)
MsgBox ("dados atualizados"), vbInformation + vbOKOnly, "Pesquisa"
txtoficio.SetFocus
End Sub
Agradeço a ajuda