COPIAR TODOS OS REGISTROS DE UMA TABELA

JOYYY 03/07/2016 22:57:26
#464451
Boa noite Pessoal,

Gostaria de saber como copiar todos os valores da TABELA A (por exemplo) para a TABELA A mesmo, ou seja duplicar todos os dados da tabela A. Estou tentando com a rotina abaixo, mas esta dando erro na linhda banco.Execute (dizendo que o objeto é obrigatório).

  Dim sSQL As String
sSQL = [Ô][Ô]
sSQL = [Ô]INSERT INTO ContasAnalíticas(NúmeroConta,ContaReferencial, Nível1,Nível2,Nível3, Nível4, Nível5,Nível6, NomeConta, Descrição, Hierarquia, Saldo, Flag) [Ô]
sSQL = sSQL & [Ô]SELECT NúmeroConta,ContaReferencial, Nível1,Nível2,Nível3, Nível4, Nível5,Nível6, NomeConta, Descrição, Hierarquia, Saldo, Flag FROM ContasAnalíticas[Ô]
banco.Execute (sSQL)


Enfim, alguém sabe me dizer se estou no caminho certo, ou se existe alguma rotina para realizar o procedimento que eu citei.

Obrigada desde já
JABA 04/07/2016 00:53:14
#464453
Resposta escolhida
Sua consulta parece correta. Talvez o erro seja na hora de chamar [txt-color=#e80000]banco.Execute (sSQL)[/txt-color]. Veja os parâmetros que ele exige, ou então, faça assim pra ver se vai:

 Dim sSQL As String
sSQL = [Ô][Ô]
sSQL = [Ô]INSERT INTO ContasAnalíticas(NúmeroConta,ContaReferencial, Nível1,Nível2,Nível3, Nível4, Nível5,Nível6, NomeConta, Descrição, Hierarquia, Saldo, Flag) [Ô]
sSQL = sSQL & [Ô]SELECT * FROM ContasAnalíticas[Ô]
Call banco.Execute (sSQL)
KERPLUNK 04/07/2016 01:59:39
#464454
Só uma observação evite usar acentuação em nomes de campos.
JOYYY 04/07/2016 10:04:08
#464458
bom dia JABA, não rodou. Deu o mesmo erro. 424 Tempo de Execução. Dizendo que o objeto é obrigatório na linha [Ô]Call banco.Execute (sSQL)[Ô]
ADEMIRAS217 04/07/2016 10:35:19
#464460
Bom dia JOYYY,
Quando eu comecei a aprender a usar SQL tomei uma surra para fazer funcionar!
Quanto coloquei o campo String entre [ô] [Ô] [ô] parênteses a coisa funcionou.
Text1. Text = [Ô]ADEMIR[Ô]
Fiz uma função Quote(Text1.text)
Text1.text = [Ô][Ô]ADEMIR[Ô][Ô] (INCLUI CHR(34) no início e no fim. Resolveu o problema.
Espero ter dado uma luz!
Um abraço,
AAS
MILTONSILVA94 04/07/2016 20:40:08
#464479
Utilizo por exemplo esta maneira:

*TABELA - MEDICOS
*COLUNAS - MEDICO, NOME, CODIGO_CR, CR, UF
*PEGO OS REGISTROS DE UMA TABELA, COPIO PARA OUTRA E DEPOIS RENOMEIO A MESMA

SELECT DISTINCT
(SELECT TOP 1 X.MEDICO FROM MEDICOS X WHERE X.UF = Y.UF AND X.CR = Y.CR) AS MEDICO,
(SELECT TOP 1 X.NOME FROM MEDICOS X WHERE X.UF = Y.UF AND X.CR = Y.CR) AS NOME,
Y.CODIGO_CR,
Y.CR,
Y.UF
INTO MEDICOS_1
FROM MEDICOS Y
WHERE 1=1 --UF = [ô]RS[ô]

--exec sp_rename MEDICOS_1, MEDICOS_ATUAL


JOYYY 11/07/2016 01:51:23
#464702
Olá Pessoal,

Obrigada pelas sugestões. Avancei um pouco, mas ainda não consegui. JABA acho que agora coloquei os parâmetros necessários, mas apareceu outro erro. Segue abaixo a rotina como ficou e a imagem do erro.

Será que é porque existem campos em branco na tabela?

Dim sSQL1
sSQL1 = [Ô][Ô]
sSQL1 = [Ô]INSERT INTO base(NumeroConta, ContaReferencial, Nível1, Nível2, Nível3, Nível4, Nível5, Nível6, NomeConta, Descrição, Hierarquia, Saldo, Flag)[Ô]
sSQL1 = sSQL1 & [Ô]SELECT NumeroConta, ContaReferencial, Nível1, Nível2, Nível3, Nível4, Nível5, Nível6, NomeConta, Descrição, Hierarquia, Saldo, Flag FROM ContasAnalíticas[Ô]
banco.Execute sSQL1



JOYYY 11/07/2016 02:06:43
#464703
Consegui, era um campo com nome errado. Obrigada a todos.
Tópico encerrado , respostas não são mais permitidas