MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Ajuda Quebra de Linha SQL No VBA

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Ajuda Quebra de Linha SQL No VBA

    Mensagem  ronaldojr1 6/2/2013, 12:22

    bom dia a todos

    tenho uma instrução sql que está em uma única linha e funciona perfeitamente. só q como ela está muito grande não consigo adicionar mais campos. Ja tentei de varios
    jeitos quebrar a linha e sempre da esse erro:

    erro em tempo de execução '3067: A entrada de consulta deve ter pelo menos uma tabela ou consulta.

    nao entendo pq da esse erro. Alguem ai no forum pode me ajudar a fazer minha SQL funcionar com quebra de linha? abaixo segue os codigos:

    'Instrução sql q da o erro:

    strSQL1 = "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco, Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla, DataAtualização ) "
    strSQL1 = strSQL1 & "SELECT [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, Last(Mala2013.Tratamento) AS ÚltimoDeTratamento, Last(Mala2013.CódigoCliente) AS ÚltimoDeCódigoCliente, Last(Mala2013.Log) AS ÚltimoDeLog, Last(Mala2013.Endereço) AS ÚltimoDeEndereço, Last(Mala2013.Número) AS ÚltimoDeNúmero, Last(Mala2013.Compl) AS ÚltimoDeCompl, Last(Mala2013.Bairro) AS ÚltimoDeBairro, Last(Mala2013.Cidade) AS ÚltimoDeCidade, Last(Mala2013.Estado) AS ÚltimoDeEstado, Last(Mala2013.Cep) AS ÚltimoDeCep, Last(Mala2013.Devolução) AS ÚltimoDeDevolução, Last(Mala2013.FisicaJuridica) AS ÚltimoDeFisicaJuridica,Last(Mala2013.sigla) AS ÚltimoDesigla,Last(Mala2013.DataAtualização) AS ÚltimoDeDataAtualização"
    strSQL1 = strSQL1 & "FROM 1_SemDup INNER JOIN Mala2013 ON [1_SemDup].EmpresaNome = Mala2013.EmpresaNome"
    strSQL1 = strSQL1 & "GROUP BY [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato;"

    docmd.runSQL strSQL1
    'Fim
    '-------------------
    'Meu Codigo Original q funciona mais não da pra adicionar mais Campos:

    DoCmd.RunSQL "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco, Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla ) SELECT [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, Last(Mala2013.Tratamento) AS ÚltimoDeTratamento, Last(Mala2013.CódigoCliente) AS ÚltimoDeCódigoCliente, Last(Mala2013.Log) AS ÚltimoDeLog, Last(Mala2013.Endereço) AS ÚltimoDeEndereço, Last(Mala2013.Número) AS ÚltimoDeNúmero, Last(Mala2013.Compl) AS ÚltimoDeCompl, Last(Mala2013.Bairro) AS ÚltimoDeBairro, Last(Mala2013.Cidade) AS ÚltimoDeCidade, Last(Mala2013.Estado) AS ÚltimoDeEstado, Last(Mala2013.Cep) AS ÚltimoDeCep, Last(Mala2013.Devolução) AS ÚltimoDeDevolução, Last(Mala2013.FisicaJuridica) AS ÚltimoDeFisicaJuridica,Last(Mala2013.sigla) AS ÚltimoDesigla FROM 1_SemDup INNER JOIN Mala2013 ON [1_SemDup].EmpresaNome = Mala2013.EmpresaNome GROUP BY [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato"


    desde ja grato pela colaboração de todos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  criquio 6/2/2013, 12:29

    Para quebra de linhas, você faria algo assim:

    Código:
    DoCmd.RunSQL "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco," & _
    "Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla ) SELECT [1_SemDup].EmpresaNome," & _
    "[1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, Last(Mala2013.Tratamento) AS " & _
    ...


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  Cláudio Más 6/2/2013, 12:37

    A quebra de linhas mencionada pelo Criquio facilita o entendimento do código.

    O erro no seu código é que falta um espaço em branco ao concatenar a variável strSQL1:

    strSQL1 = "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco, Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla, DataAtualização ) "
    strSQL1 = strSQL1 & "precisa de um espaço em branco aquiSELECT [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, Last(Mala2013.Tratamento) AS ÚltimoDeTratamento, Last(Mala2013.CódigoCliente) AS
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  ronaldojr1 6/2/2013, 13:01

    bom dia

    Criquio mudei meu codigo para o jeito q vc sujeriu, mas continua com o mesmo erro(3067).
    Claudio tb tentei a solução q vc sujeriu, mas deu esse erro:
    Erro em tempo de execução '3129':
    Instrução SQL Inválida. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' OU 'UPDATE' esperado.

    Código:

    DoCmd.RunSQL "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco," & _
    "Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla, DataAtualização )" & _
    "SELECT [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, " & _
    "Last(Mala2013.Tratamento) AS ÚltimoDeTratamento, Last(Mala2013.CódigoCliente) AS ÚltimoDeCódigoCliente, " & _
    "Last(Mala2013.Log) AS ÚltimoDeLog, Last(Mala2013.Endereço) AS ÚltimoDeEndereço, Last(Mala2013.Número) AS ÚltimoDeNúmero, " & _
    "Last(Mala2013.Compl) AS ÚltimoDeCompl, Last(Mala2013.Bairro) AS ÚltimoDeBairro, Last(Mala2013.Cidade) AS ÚltimoDeCidade, " & _
    "Last(Mala2013.Estado) AS ÚltimoDeEstado, Last(Mala2013.Cep) AS ÚltimoDeCep, Last(Mala2013.Devolução) AS ÚltimoDeDevolução, " & _
    "Last(Mala2013.FisicaJuridica) AS ÚltimoDeFisicaJuridica, Last(Mala2013.sigla) AS ÚltimoDesigla, Last(Mala2013.DataAtualização) AS ÚltimoDeDataAtualização" & _
    "FROM 1_SemDup INNER JOIN Mala2013 ON [1_SemDup].EmpresaNome = Mala2013.EmpresaNome" & _
    "GROUP BY [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato"

    A ultima linha ta certa do meu codigo?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  criquio 6/2/2013, 13:05

    Sempre que colocar um FROM ou um GROUP BY ou IN ou outro operador, ele precisa ficar separado do que vem antes e do que vem depois. Precisa tem um espaço entre ele o restante do processo.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  Cláudio Más 6/2/2013, 13:17

    DoCmd.RunSQL "INSERT INTO MalaOK ( EmpresaNome, Nome_Contato, Cod_Int, Tratamento, Cod_Cli, Log, Endereco," & _
    "Numero, Compl, Bairro, Cidade, Estado, Cep, devolucao, fisicaJuridica, sigla, DataAtualização )" & _
    "falta um espaço aquiSELECT [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato, Last(Mala2013.CódigoInteresse) AS ÚltimoDeCódigoInteresse, " & _
    "Last(Mala2013.Tratamento) AS ÚltimoDeTratamento, Last(Mala2013.CódigoCliente) AS ÚltimoDeCódigoCliente, " & _
    "Last(Mala2013.Log) AS ÚltimoDeLog, Last(Mala2013.Endereço) AS ÚltimoDeEndereço, Last(Mala2013.Número) AS ÚltimoDeNúmero, " & _
    "Last(Mala2013.Compl) AS ÚltimoDeCompl, Last(Mala2013.Bairro) AS ÚltimoDeBairro, Last(Mala2013.Cidade) AS ÚltimoDeCidade, " & _
    "Last(Mala2013.Estado) AS ÚltimoDeEstado, Last(Mala2013.Cep) AS ÚltimoDeCep, Last(Mala2013.Devolução) AS ÚltimoDeDevolução, " & _
    "Last(Mala2013.FisicaJuridica) AS ÚltimoDeFisicaJuridica, Last(Mala2013.sigla) AS ÚltimoDesigla, Last(Mala2013.DataAtualização) AS ÚltimoDeDataAtualização" & _
    "FROM 1_SemDup INNER JOIN Mala2013 ON [1_SemDup].EmpresaNome = Mala2013.EmpresaNome" & _
    "falta um espaço aquiGROUP BY [1_SemDup].EmpresaNome, [1_SemDup].Nome_Contato"
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  ronaldojr1 6/2/2013, 13:21

    Vlw criquio e Claudio vcs são muito fera, se eu te contar q eu estou desde ontem me matando pra fazer isso.kkk


    criquio e claudio so uma duvida rápida:
    O objetivo dessa consulta é copiar os dados de 1 tabela e jogar em outra
    sem duplicar(Uso dois criterios). O total de registros da tabela hoje é de
    274929 e com isso minha consulta demora + ou - 50 segundos para executar.
    Quando ela executa a tabela 2 fica com 219311.

    na sua opniao se eu conseguir transformar essa sql em codigo vba vai ser
    mais rapido o resultado?


    obrigado e tenha um bom dia
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  Cláudio Más 6/2/2013, 13:32

    Não acredito que isso torne o processo mais rápido. Adianta reduzir de 50 para 40 segundos? Com o tempo, chega a 50 novamente.
    O que talvez possa ser otimizado é o conjunto de registros a ser inserido na tabela destino, reduzindo os atuais 274929.

    Talvez reestruturando sua consulta, para inserir na tabela destino somente os novos registros, utilizando uma consulta do tipo "localizar não coincidente".

    Isso sem questionar o processo de ter que gerar essa segunda tabela (o que eu acho altamente questionável...)
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  ronaldojr1 6/2/2013, 13:58

    A pessoa q mexe no banco disse q a 2 segunda tabela tem q existir pois nela os registros podem ser deletados, e alterados sem problema de compremeter o registro original. Esclarecendo q é nessa tabela que a Mala Direta vai ser baseada.

    A ideia é boa de usar uma consulta Localizar não coincidente, mas ai eu vou ter q me preocupar em sincronizar os dados quando a tabelaOriginal sofrer alterações de registro.

    Acho q vale pena tentar, obrigado pelo esclarecimento claudio.

    e tenha um bom dia
    vlw
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  Cláudio Más 6/2/2013, 14:03

    De nada.
    Bom dia

    Conteúdo patrocinado


    [Resolvido]Ajuda Quebra de Linha SQL No VBA Empty Re: [Resolvido]Ajuda Quebra de Linha SQL No VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:38